如下兩個導出問題來自Elastic中文社區。mysql
問題一、kibana怎麼導出查詢數據?
問題2:elasticsearch數據導出
就像數據庫數據導出同樣,elasticsearch能夠麼?
或者找到它磁盤上存放數據的位置,拷貝出來,放到另外一個es服務器上或者轉成本身要的數據格式?
實際業務實戰中,你們或多或少的都會遇到導入、導出問題。
根據數據源的不一樣,基本能夠藉助:git
logstash/flume/cana/es_hadoopl等來實現關係型數據庫(如:Oracle、mysql)、非關係型數據庫(如:Mongo、Redis)、大數據(Hadoop、Spark、Hive)到Elasticsearch的寫入。github
而數據的導出,一部分是業務場景須要,如:業務系統中支持檢索結果導出爲CSV、Json格式等。面試
還有一部分是分析數據的需求:指望藉助Kibana工具將儀表盤聚合結果導出、不須要藉助程序儘快將知足給定條件的結果數據導出等。sql
這些快速導出的需求,最好藉助插件或者第三方工具實現。數據庫
本文將重點介紹Kibana/Elasticsearch高效導出的插件、工具集。json
通常指望導出:CSV、Json格式。segmentfault
步驟1:點擊Kibana;
步驟2:左側選擇數據,篩選字段;
步驟3:右側點擊:share->csv reports。
步驟4:菜單欄:選擇Management->Reporting->下載。服務器
以上是kibana6.5.4的實操截圖。框架
其餘常見報表數據導出:
在Dashboard的右上角點擊Inspect,再點擊就能夠導出對應可視化報表對應的數據。
Kibana的數據透視表——使用Kibana UI中的任何其餘工具同樣使用數據透視表能夠極大地簡化數據工做。
Flexmonster Pivot能夠交叉和快速地彙總業務數據並以交叉表格式顯示結果。
地址:https://github.com/flexmonste...
篩選數據效果以下:
注意:建議7.X以上版本使用。低版本不支持。
一、簡介:用Python編寫的命令行實用程序,用於以Lucene查詢語法或查詢DSL語法查詢Elasticsearch,並將結果做爲文檔導出到CSV文件中。
es2csv 能夠查詢多個索引中的批量文檔,而且只獲取選定的字段,這能夠縮短查詢執行時間。
二、地址:https://pypi.org/project/es2csv/
三、使用方法:
1es2csv -u 192.168.1.1:9200 -q '{"_source":{"excludes":["*gxn",,"*kex","vperxs","lpix"]},"query":{"term":{"this_topic":{"value":41}}}}' -r -i sogou_topic -o ~/export.csv
四、使用效果:
官方最新更新支持5.X版本,實際驗證6.X版本也可使用,導出效率高。
五、推薦指數:
五星,
Elasticsearch導出CSV首選方案。
一、簡介:Elasticsearch導入導出工具。
支持操做包含但不限於:
1)、數據導出
2)、數據導入
二、地址:
https://github.com/taskrabbit...
三、使用方法:
1elasticdump \ 2 --input=http://production.es.com:9200/my_index \ 3 --output=query.json \ 4 --searchBody='{"query":{"term":{"username": "admin"}}}'
如上,將檢索結果導出爲json文件。
更多導入、導出詳見github介紹。
四、使用效果:
早期1.X版本沒有reindex操做,使用elasticdump解決跨集羣數據備份功能。效果能夠。
五、推薦指數:
五星。
Elasticsearch導出json首選方案。
步驟1:安裝logstash_output_csv工具:
1D:\logstash-6.5.4\bin>logstash-plugin.bat install logstash-output-csv 2Validating logstash-output-csv 3Installing logstash-output-csv 4Installation successful
步驟2:配置conf文件
核心的:輸入input,輸出ouput,中間處理filter都在以下的配置文件中。
1input { 2 elasticsearch { 3 hosts => "127.0.0.1:9200" 4 index => "company_infos" 5 query => ' 6 { 7 "query": { 8 "match_all": {} 9 } 10 } 11 ' 12 } 13} 14 15output { 16 csv { 17 # elastic field name 18 fields => ["no", "name", "age", "company_name", "department", "sex"] 19 # This is path where we store output. 20 path => "D:\logstash-6.5.4\export\csv-export.csv" 21 } 22}
步驟3:執行導出
1D:\\logstash-6.5.4\bin>logstash -f ../config/logstash_ouput_csv.conf 2Sending Logstash logs to D:/2.es_install/logstash-6.5.4/logs which is now configured via log4j2.properties 3[2019-08-03T23:45:00,914][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified 4[2019-08-03T23:45:00,934][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.5.4"} 5[2019-08-03T23:45:03,473][INFO ][logstash.pipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50} 6[2019-08-03T23:45:04,241][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x34b305d3 sleep>"} 7[2019-08-03T23:45:04,307][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} 8[2019-08-03T23:45:04,740][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} 9[2019-08-03T23:45:05,610][INFO ][logstash.outputs.csv ] Opening file {:path=>"D:/logstash-6.5.4/export/csv-export.csv"} 10[2019-08-03T23:45:07,558][INFO ][logstash.pipeline ] Pipeline has terminated {:pipeline_id=>"main", :thread=>"#<Thread:0x34b305d3 run>"}
地址:
https://medium.com/@shaonshao...
根據業務場景選擇導出數據的方式。
您的業務場景有導出數據需求嗎?如何導出的?歡迎留言討論。
推薦閱讀:
爲何選擇 Spring 做爲 Java 框架?
SpringBoot RocketMQ 整合使用和監控
Elasticsearch實戰 | 必要的時候,還得空間換時間!
乾貨 |《從Lucene到Elasticsearch全文檢索實戰》拆解實踐
JVM面試問題系列:JVM 配置經常使用參數和經常使用 GC 調優策略
上篇好文: