其他
干货 | Elasticsearch、Kibana数据导出实战
1、问题引出
问题1、kibana怎么导出查询数据?
问题2:elasticsearch数据导出
就像数据库数据导出一样,elasticsearch可以么?
或者找到它磁盘上存放数据的位置,拷贝出来,放到另一个es服务器上或者转成自己要的数据格式?
根据数据源的不同,基本可以借助:
1、程序写入 2、数据同步 logstash/flume/cana/es_hadoopl等来实现关系型数据库(如:Oracle、mysql)、非关系型数据库(如:Mongo、Redis)、大数据(Hadoop、Spark、Hive)到Elasticsearch的写入。
2、期望导出数据格式
3、Kibana导出工具
3.1 Kibana 官方导出
步骤2:左侧选择数据,筛选字段;
步骤3:右侧点击:share->csv reports。
步骤4:菜单栏:选择Management->Reporting->下载。
3.2 数据透视表pivot-kibana
4、Elasticsearch导出工具
4.1 es2csv
es2csv 可以查询多个索引中的批量文档,并且只获取选定的字段,这可以缩短查询执行时间。
官方最新更新支持5.X版本,实际验证6.X版本也可以使用,导出效率高。
五星,
4.2 elasticsearch-dump
导出索引、检索结果、别名或模板为Json
导出索引为gzip
支持导出大文件切割为小文件
支持统一集群不同索引间或者跨索引数据拷贝
支持Json数据、S3数据导入Elasticsearch。
2 --input=http://production.es.com:9200/my_index \
3 --output=query.json \
4 --searchBody='{"query":{"term":{"username": "admin"}}}'
早期1.X版本没有reindex操作,使用elasticdump解决跨集群数据备份功能。效果可以。
五星。
4.3 logstash_output_csv
2Validating logstash-output-csv
3Installing logstash-output-csv
4Installation successful
核心的:输入input,输出ouput,中间处理filter都在如下的配置文件中。
输入:指定ES地址,索引,请求query语句;
输出:csv输出地址,输出字段列表。
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}
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>"}
5、小结
更短时间更快习得更多干货!