讓時空大數(shù)據(jù)不再神秘——如何直連使用ArcGIS時空大數(shù)據(jù)存儲

ArcGIS的時空大數(shù)據(jù)采用Elasticsearch作為其存儲技術(shù)熔吗。首先了解一下ElasticSearch。

如果只想了解如何連接請?zhí)^基礎(chǔ)章節(jié)直接ctrl+F"如何連接ArcGIS時空大數(shù)據(jù)存儲中的Elasticsearch"

Elasticsearch基礎(chǔ)

Elasticsearch有幾個核心概念。從一開始理解這些概念會對整個學(xué)習(xí)過程有莫大的幫助沾瓦。

接近實時(NRT)

Elasticsearch是一個接近實時的搜索平臺。這意味著,從索引一個文檔直到這個文檔能夠被搜索到有一個輕微的延遲(通常是1秒)萧恕。

集群(cluster)

一個集群就是由一個或多個節(jié)點組織在一起,它們共同持有你整個的數(shù)據(jù)肠阱,并一起提供索引和搜索功能票唆。一個集群由一個唯一的名字標(biāo)識,這個名字默認(rèn)就是“elasticsearch”屹徘。這個名字是重要的走趋,因為一個節(jié)點只能通過指定某個集群的名字,來加入這個集群噪伊。在產(chǎn)品環(huán)境中顯式地設(shè)定這個名字是一個好習(xí)慣簿煌,但是使用默認(rèn)值來進(jìn)行測試/開發(fā)也是不錯的。

節(jié)點(node)

一個節(jié)點是你集群中的一個服務(wù)器鉴吹,作為集群的一部分姨伟,它存儲你的數(shù)據(jù),參與集群的索引和搜索功能豆励。和集群類似夺荒,一個節(jié)點也是由一個名字來標(biāo)識的,默認(rèn)情況下肆糕,這個名字是一個隨機(jī)的漫威漫畫角色的名字般堆,這個名字會在啟動的時候賦予節(jié)點。這個名字對于管理工作來說挺重要的诚啃,因為在這個管理過程中淮摔,你會去確定網(wǎng)絡(luò)中的哪些服務(wù)器對應(yīng)于Elasticsearch集群中的哪些節(jié)點。

一個節(jié)點可以通過配置集群名稱的方式來加入一個指定的集群始赎。默認(rèn)情況下和橙,每個節(jié)點都會被安排加入到一個叫做“elasticsearch”的集群中仔燕,這意味著,如果你在你的網(wǎng)絡(luò)中啟動了若干個節(jié)點魔招,并假定它們能夠相互發(fā)現(xiàn)彼此晰搀,它們將會自動地形成并加入到一個叫做“elasticsearch”的集群中。

在一個集群里办斑,只要你想外恕,可以擁有任意多個節(jié)點。而且乡翅,如果當(dāng)前你的網(wǎng)絡(luò)中沒有運行任何Elasticsearch節(jié)點鳞疲,這時啟動一個節(jié)點,會默認(rèn)創(chuàng)建并加入一個叫做“elasticsearch”的集群蠕蚜。

索引(index)

一個索引就是一個擁有幾分相似特征的文檔的集合尚洽。比如說,你可以有一個客戶數(shù)據(jù)的索引靶累,另一個產(chǎn)品目錄的索引腺毫,還有一個訂單數(shù)據(jù)的索引。一個索引由一個名字來標(biāo)識(必須全部是小寫字母的)挣柬,并且當(dāng)我們要對對應(yīng)于這個索引中的文檔進(jìn)行索引潮酒、搜索、更新和刪除的時候凛忿,都要使用到這個名字澈灼。

在一個集群中,如果你想店溢,可以定義任意多的索引。

類型(type)

在一個索引中委乌,你可以定義一種或多種類型床牧。一個類型是你的索引的一個邏輯上的分類/分區(qū),其語義完全由你來定遭贸。通常戈咳,會為具有一組共同字段的文檔定義一個類型。比如說壕吹,我們假設(shè)你運營一個博客平臺并且將你所有的數(shù)據(jù)存儲到一個索引中著蛙。在這個索引中,你可以為用戶數(shù)據(jù)定義一個類型,為博客數(shù)據(jù)定義另一個類型,當(dāng)然咆槽,也可以為評論數(shù)據(jù)定義另一個類型蜕提。

文檔(document)

一個文檔是一個可被索引的基礎(chǔ)信息單元。比如绎谦,你可以擁有某一個客戶的文檔愈捅,某一個產(chǎn)品的一個文檔咧最,當(dāng)然帐偎,也可以擁有某個訂單的一個文檔逐纬。文檔以JSON(Javascript Object Notation)格式來表示,而JSON是一個到處存在的互聯(lián)網(wǎng)數(shù)據(jù)交互格式削樊。

在一個index/type里面豁生,只要你想,你可以存儲任意多的文檔漫贞。注意甸箱,盡管一個文檔,物理上存在于一個索引之中绕辖,文檔必須被索引/賦予一個索引的type摇肌。

分片和復(fù)制(shards & replicas)

一個索引可以存儲超出單個結(jié)點硬件限制的大量數(shù)據(jù)。比如仪际,一個具有10億文檔的索引占據(jù)1TB的磁盤空間围小,而任一節(jié)點都沒有這樣大的磁盤空間;或者單個節(jié)點處理搜索請求树碱,響應(yīng)太慢肯适。

為了解決這個問題,Elasticsearch提供了將索引劃分成多份的能力成榜,這些份就叫做分片框舔。當(dāng)你創(chuàng)建一個索引的時候,你可以指定你想要的分片的數(shù)量赎婚。每個分片本身也是一個功能完善并且獨立的“索引”刘绣,這個“索引”可以被放置到集群中的任何節(jié)點上。

分片之所以重要挣输,主要有兩方面的原因:

- 允許你水平分割/擴(kuò)展你的內(nèi)容容量

- 允許你在分片(潛在地纬凤,位于多個節(jié)點上)之上進(jìn)行分布式的、并行的操作撩嚼,進(jìn)而提高性能/吞吐量

至于一個分片怎樣分布停士,它的文檔怎樣聚合回搜索請求,是完全由Elasticsearch管理的完丽,對于作為用戶的你來說恋技,這些都是透明的。

在一個網(wǎng)絡(luò)/云的環(huán)境里逻族,失敗隨時都可能發(fā)生蜻底,在某個分片/節(jié)點不知怎么的就處于離線狀態(tài),或者由于任何原因消失了瓷耙,這種情況下朱躺,有一個故障轉(zhuǎn)移機(jī)制是非常有用并且是強烈推薦的刁赖。為此目的,Elasticsearch允許你創(chuàng)建分片的一份或多份拷貝长搀,這些拷貝叫做復(fù)制分片宇弛,或者直接叫復(fù)制。

復(fù)制之所以重要源请,有兩個主要原因:

- 在分片/節(jié)點失敗的情況下枪芒,提供了高可用性。因為這個原因谁尸,注意到復(fù)制分片從不與原/主要(original/primary)分片置于同一節(jié)點上是非常重要的舅踪。

- 擴(kuò)展你的搜索量/吞吐量,因為搜索可以在所有的復(fù)制上并行運行

總之良蛮,每個索引可以被分成多個分片抽碌。一個索引也可以被復(fù)制0次(意思是沒有復(fù)制)或多次。一旦復(fù)制了决瞳,每個索引就有了主分片(作為復(fù)制源的原來的分片)和復(fù)制分片(主分片的拷貝)之別货徙。分片和復(fù)制的數(shù)量可以在索引創(chuàng)建的時候指定。在索引創(chuàng)建之后皮胡,你可以在任何時候動態(tài)地改變復(fù)制的數(shù)量痴颊,但是你事后不能改變分片的數(shù)量。

默認(rèn)情況下屡贺,Elasticsearch中的每個索引被分片5個主分片和1個復(fù)制蠢棱,這意味著,如果你的集群中至少有兩個節(jié)點甩栈,你的索引將會有5個主分片和另外5個復(fù)制分片(1個完全拷貝)泻仙,這樣的話每個索引總共就有10個分片。

插入與查詢

插入兩條員工數(shù)據(jù)量没,索引為megacorp饰豺,類型為employee,id為1和2

PUT /megacorp/employee/1

{

"first_name" : "John",

"last_name" :? "Smith",

"age" :? ? ? ? 25,

"about" :? ? ? "I love to go rock climbing",

"interests": [ "sports", "music" ]

}

PUT /megacorp/employee/2

{

"first_name" : "jane",

"last_name" : "smith",

"age" :? ? ? ? 32,

"about" :? ? "I like to collect rock albums",

"interests" :["music"]

}

查詢的兩種寫法

GET /megacorp/employee/_search?q=last_name:smith

GET /megacorp/employee/_search

{

? ? "query": {

? ? ? ? "match": {

? ? ? ? ? ? "last_name": "Smith"

? ? ? ? }

? ? ?}

}

查詢結(jié)果:

{

"took": 250,

"timed_out": false,

"_shards": {

"total": 5,

"successful": 5,

"failed": 0

},

"hits": {

"total": 2,

"max_score": 0.30685282,

"hits": [

{

"_index": "megacorp",

"_type": "employee",

"_id": "2",

"_score": 0.30685282,

"_source": {

"first_name": "jane",

"last_name": "smith",

"age": 32,

"about": "I like to collect rock albums",

"interests": [

"music"

]

}

},

{

"_index": "megacorp",

"_type": "employee",

"_id": "1",

"_score": 0.30685282,

"_source": {

"first_name": "John",

"last_name": "Smith",

"age": 25,

"about": "I love to go rock climbing",

"interests": [

"sports",

"music"

]

}

}

]

}

}

對查詢結(jié)果的說明:

對于這個響應(yīng)允蜈,我們看到了以下的部分:

- took —— Elasticsearch執(zhí)行這個搜索的耗時,以毫秒為單位

- timed_out —— 指明這個搜索是否超時

- _shards —— 指出多少個分片被搜索了蒿柳,同時也指出了成功/失敗的被搜索的shards的數(shù)量

- hits —— 搜索結(jié)果

- hits.total —— 能夠匹配我們查詢標(biāo)準(zhǔn)的文檔的總數(shù)目

- hits.hits —— 真正的搜索結(jié)果數(shù)據(jù)(默認(rèn)只顯示前10個文檔)

- _score和max_score —— 這個得分是與我們指定的搜索查詢匹配程度的一個相對度量饶套。得分越高,文檔越相關(guān)垒探,得分越低文檔的相關(guān)度越低妓蛮。

ArcGIS 時空大數(shù)據(jù)存儲

上面講完了Elasticsearch的相關(guān)概念,在ArcGIS時空大數(shù)據(jù)存儲中這些概念都扮演了重要的角色圾叼,這里暫且不說蛤克,日后補齊捺癞。先看下ArcGIS時空大數(shù)據(jù)存儲如何像pg庫一樣進(jìn)行連接,進(jìn)行開放构挤。

如何連接ArcGIS時空大數(shù)據(jù)存儲中的Elasticsearch

端口

連接Elasticsearch髓介,首先要知道它使用的端口。在官方文檔中進(jìn)行查詢

端口 9220 和 9320

ArcGIS Data Store 中提供的時空大數(shù)據(jù)存儲通過端口 9220 (HTTP) 和 9320 (TCP) 進(jìn)行通信筋现。如果您使用GeoEvent Server將數(shù)據(jù)寫入時空大數(shù)據(jù)存儲唐础,您需要打開這些端口。

用戶名密碼

其次矾飞,還需要ES的用戶名和密碼一膨。就像其他的數(shù)據(jù)庫中的用戶名密碼一樣,有了用戶名密碼才可以使用ES洒沦。在ArcGIS DataStore中豹绪,使用工具查詢manage的用戶名和密碼。工具的位置在C:\Program Files\ArcGIS\DataStore\tools\listmanageduser

查詢es用戶名密碼

實用工具

管理es的實用工具套件包括kibana和sense申眼。

kibana和es的版本有關(guān)瞒津。經(jīng)過測試,kibana-5.5因版本過高豺型,無法連接時空大數(shù)據(jù)存儲的es仲智。kibana4.5.2是可用的。其余版本沒有進(jìn)行測試姻氨。這里推薦kibana4.5.2钓辆。

可以直接輸datastore的IP:9220來查看ArcGIS Datastore中ES的版本。


時空大數(shù)據(jù)中es的版本為2.3.2

sense可以直接從github上下載肴焊。由于是master主分支前联,下載的文件名為sense-master。這是離線安裝所需要的娶眷。這里可以使用在線安裝似嗤。

在kibana目錄運行命令安裝 sense插件

./bin/kibana plugin —install elastic/sense

開始連接

工具安裝完畢后,需要修改kibana.yml中

elasticsearch.username: "els_tctb96n"

elasticsearch.password: "fpinq3kv6ez6r8pw"

elasticsearch.url: "http://ip:9220"

然后在\kibana-4.5.2-windows\bin下届宠,cmd輸入命令kibana烁落,即可運行此工具。

訪問http://localhost:5601/app/status

可以查看當(dāng)前es服務(wù)器的狀態(tài)

當(dāng)前es服務(wù)器狀態(tài)

訪問http://localhost:5601/app/sense 即可進(jìn)入sense的界面


sense界面

需要修改ip和端口為datastore機(jī)器的ip和9220端口才可以使用豌注。初次打開需要輸入用戶名密碼伤塌,即kibana.yml中的elasticsearch.username: "els_tctb96n"和elasticsearch.password: "fpinq3kv6ez6r8pw"。

在sense界面轧铁,即可輸入GET每聪、PUT、DELETE等命令與Elasticsearch進(jìn)行交互。

Elasticsearch的入門指南可以參考這本電子書Elasticsearch:權(quán)威指南

引用:Elasticsearch基礎(chǔ)教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末药薯,一起剝皮案震驚了整個濱河市绑洛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌童本,老刑警劉巖真屯,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巾陕,居然都是意外死亡讨跟,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鄙煤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晾匠,“玉大人,你說我怎么就攤上這事梯刚×构荩” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵亡资,是天一觀的道長澜共。 經(jīng)常有香客問我,道長锥腻,這世上最難降的妖魔是什么嗦董? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮瘦黑,結(jié)果婚禮上京革,老公的妹妹穿的比我還像新娘。我一直安慰自己幸斥,他們只是感情好匹摇,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甲葬,像睡著了一般廊勃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上经窖,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天坡垫,我揣著相機(jī)與錄音,去河邊找鬼画侣。 笑死葛虐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棉钧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宪卿!你這毒婦竟也來了的诵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤佑钾,失蹤者是張志新(化名)和其女友劉穎西疤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體休溶,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡代赁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了兽掰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芭碍。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孽尽,靈堂內(nèi)的尸體忽然破棺而出窖壕,到底是詐尸還是另有隱情,我是刑警寧澤杉女,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布瞻讽,位于F島的核電站,受9級特大地震影響熏挎,放射性物質(zhì)發(fā)生泄漏速勇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一坎拐、第九天 我趴在偏房一處隱蔽的房頂上張望烦磁。 院中可真熱鬧,春花似錦廉白、人聲如沸个初。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽院溺。三九已至,卻和暖如春磅轻,著一層夾襖步出監(jiān)牢的瞬間珍逸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工聋溜, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留谆膳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓撮躁,卻偏偏與公主長得像漱病,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容