1. 程式人生 > >Elasticsearch:匯入本地資料和使用Kibana管理資料(樓主親測,真實有效)

Elasticsearch:匯入本地資料和使用Kibana管理資料(樓主親測,真實有效)

匯入資料

Elasticsearch和Kibana的結合就是用來檢索和分析資料的,那麼這個資料怎麼來,肯定是匯入進去的。

一、匯入資料的說明

Elasticsearch在官方的文件探索你的資料中,有說需要將本地資料匯入到Elasticsearch中。
那麼怎麼匯入,這個就是一個問題了。

二、匯入資料

在這邊只需要匯入資料即可。ES預設會幫助我們建立Key-Value的對映,並且會給出預設的Key的型別。預設的可能不符合你的要求,請看第三步。
例如:
line_idplay_name這樣的是鍵(key)
INTString這樣的是鍵的型別。

    "line_id"
: INT, "play_name": "String", "speech_number": INT, "line_number": "String", "speaker": "String", "text_entry": "String", }

Elasticsearch文件中要求的是JSON規範的文件資料,那麼在這裡可以很方便的獲取到符合標準的JSON文件Json生成

我這邊已經有一個生成好的JSON文件資料檔案。

~/Documents/es15:02:00
$ ls
accounts.json

注意:一定要在這個檔案所在的同一路徑下執行將檔案載入到Elasticsearch叢集中。
在我機器執行示例:

~/Documents/es ⌚ 15:20:22
$ curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

命令是:我這裡的localhost是說明這個ES服務跑在我本機。

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

命令執行正確的響應結果:
當然我這裡只截取了兩條,省略了,具體的會根據你的檔案量生成響應。

{
    "took":279,
    "errors":false,
    "items":[
        {
            "index":{
                "_index":"bank",
                "_type":"_doc",
                "_id":"1",
                "_version":1,
                "result":"created",
                "forced_refresh":true,
                "_shards":{
                    "total":2,
                    "successful":1,
                    "failed":0
                },
                "_seq_no":0,
                "_primary_term":1,
                "status":201
            }
        },
        {
            "index":{
                "_index":"bank",
                "_type":"_doc",
                "_id":"1",
                "_version":1,
                "result":"created",
                "forced_refresh":true,
                "_shards":{
                    "total":2,
                    "successful":1,
                    "failed":0
                },
                "_seq_no":0,
                "_primary_term":1,
                "status":201
            }
        }
    ]
}

三、檢視匯入是否成功

資料匯入了,現在要檢視是否匯入成功。
執行一條檢視所有索引情況的命令:

curl "localhost:9200/_cat/indices?v"

得出的正確響應:
意味著我們已經將1000條資料,匯入到了索引為bank下,並且在_doc型別下。

~/Documents/es ⌚ 15:20:22
$ curl "localhost:9200/_cat/indices?v"
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   customer LtbHvkQ3R4GS_41Fi_Y_eg   5   1          6            0     20.8kb         20.8kb
yellow open   bank     XIDwelSnQZec6V_4bHIzlg   5   1       1000            0    475.1kb        475.1kb
green  open   .kibana  WZ_XKyA3RfaGIXiW3D4z-Q   1   0          1            0      3.7kb          3.7kb
yellow open   user     NnPXumxMRSGc-X7BXkDV9A   5   1          1            0      4.4kb          4.4kb

~/Documents/es ⌚ 15:30:09
$

四、在Kibana中搜索資料

1、進入Kibana

這裡寫圖片描述

2、搜尋剛剛建立的索引bank,點選下一步

這裡寫圖片描述

3、點選下一步,建立搜尋匹配符

這裡寫圖片描述

4、然後看到了這一步就可以搜尋了

這裡寫圖片描述

5、怎麼搜尋

搜尋的時候,並不是說你去搜索欄位。
比如說我bank索引下,目前有1000條資料。

這裡寫圖片描述

我匯入的資料:

這裡寫圖片描述

我現在要搜尋:
firstname欄位對應的值為Nanette
直接輸入Nanette就可以搜到結果了。
這裡寫圖片描述

6、過濾搜尋

例如搜尋balance0-20000區間的資料。

這裡寫圖片描述

那麼結果就搜尋出來啦!
這裡寫圖片描述

好啦,具體的其他的體驗,請大家根據各自的需求去調整!