1、问题引出

以下两个导出问题来自Elastic中文社区。

问题1、kibana怎么导出查询数据?

问题2:elasticsearch数据导出

就像数据库数据导出一样,elasticsearch可以么?

或者找到它磁盘上存放数据的位置,拷贝出来,放到另一个es服务器上或者转成自己要的数据格式?

实际业务实战中,大家或多或少的都会遇到导入、导出问题。根据数据源的不同,基本可以借助:

  • 1、程序写入
  • 2、数据同步

logstash/flume/cana/es_hadoopl等来实现关系型数据库(如:Oracle、mysql)、非关系型数据库(如:Mongo、Redis)、大数据(Hadoop、Spark、Hive)到Elasticsearch的写入。

而数据的导出,一部分是业务场景需要,如:业务系统中支持检索结果导出为CSV、Json格式等。

还有一部分是分析数据的需求:期望借助Kibana工具将仪表盘聚合结果导出、不需要借助程序尽快将满足给定条件的结果数据导出等。

这些快速导出的需求,最好借助插件或者第三方工具实现。

本文将重点介绍Kibana/Elasticsearch高效导出的插件、工具集。

2、期望导出数据格式

一般期望导出:CSV、Json格式。

3、Kibana导出工具

3.1 Kibana 官方导出

步骤1:点击Kibana;步骤2:左侧选择数据,筛选字段;步骤3:右侧点击:share->csv reports。步骤4:菜单栏:选择Management->Reporting->下载。

以上是kibana6.5.4的实操截图。

其他常见报表数据导出:

在Dashboard的右上角点击Inspect,再点击就可以导出对应可视化报表对应的数据。

3.2 数据透视表pivot-kibana

Kibana的数据透视表——使用Kibana UI中的任何其他工具一样使用数据透视表可以极大地简化数据工作。

Flexmonster Pivot可以交叉和快速地汇总业务数据并以交叉表格式显示结果。

地址:https://github.com/flexmonster/pivot-kibana/

筛选数据效果如下:

注意:建议7.X以上版本使用。低版本不支持。

4、Elasticsearch导出工具

4.1 es2csv

1、简介:用Python编写的命令行实用程序,用于以Lucene查询语法或查询DSL语法查询Elasticsearch,并将结果作为文档导出到CSV文件中。es2csv 可以查询多个索引中的批量文档,并且只获取选定的字段,这可以缩短查询执行时间。

2、地址:https://pypi.org/project/es2csv/

3、使用方法:

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

4、使用效果:官方最新更新支持5.X版本,实际验证6.X版本也可以使用,导出效率高。

5、推荐指数:五星,

Elasticsearch导出CSV首选方案。

4.2 elasticsearch-dump

1、简介:Elasticsearch导入导出工具。

支持操作包含但不限于:

1)、数据导出

  • 导出索引、检索结果、别名或模板为Json
  • 导出索引为gzip
  • 支持导出大文件切割为小文件
  • 支持统一集群不同索引间或者跨索引数据拷贝

2)、数据导入

  • 支持Json数据、S3数据导入Elasticsearch。

2、地址:

https://github.com/taskrabbit/elasticsearch-dump

3、使用方法:

1elasticdump
2  --input=http://production.es.com:9200/my_index
3  --output=query.json
4  --searchBody='{"query":{"term":{"username": "admin"}}}'

如上,将检索结果导出为json文件。

更多导入、导出详见github介绍。

4、使用效果:早期1.X版本没有reindex操作,使用elasticdump解决跨集群数据备份功能。效果可以。

5、推荐指数:五星。

Elasticsearch导出json首选方案。

4.3 logstashoutputcsv

步骤1:安装logstashoutputcsv工具:

1D:logstash-6.5.4bin>logstash-plugin.bat  install  logstash-output-csv
2Validating logstash-output-csv
3Installing logstash-output-csv
4Installation successful

步骤2:配置conf文件核心的:输入input,输出ouput,中间处理filter都在如下的配置文件中。

  1. 输入:指定ES地址,索引,请求query语句;
  2. 输出:csv输出地址,输出字段列表。
 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.4exportcsv-export.csv"
21  }
22}

步骤3:执行导出

 1D:logstash-6.5.4bin>logstash -f ../config/logstash_ouput_csv.conf2Sending Logstash logs to D:/2.es_install/logstash-6.5.4/logs which is now configured via log4j2.properties3[2019-08-03T23:45:00,914][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified4[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/@shaonshaonty/export-data-from-elasticsearch-to-csv-caaef3a19b69

5、小结

根据业务场景选择导出数据的方式。

您的业务场景有导出数据需求吗?如何导出的?欢迎留言讨论。

推荐阅读:

《深入理解 Java 内存模型》读书笔记

面试-基础篇

Spring Boot 2.0 迁移指南

SpringBoot使用Docker快速部署项目

为什么选择 Spring 作为 Java 框架?

SpringBoot RocketMQ 整合使用和监控

Spring Boot 面试的十个问题

使用 Spring Framework 时常犯的十大错误

SpringBoot Admin 使用指南

SpringBoot Kafka 整合使用

SpringBoot RabbitMQ 整合使用

Elasticsearch索引增量统计及定时邮件实现

Elasticsearch实战 | 必要的时候,还得空间换时间!干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践

JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略

Apache Flink 是如何管理好内存的?

上篇好文:

ELK 实时日志分析平台环境搭建

kibana 查看有多少索引库_干货 | Elasticsearch、Kibana数据导出实战相关推荐

  1. 2.Lucene3.6.2包介绍,第一个Lucene案例介绍,查看索引信息的工具lukeall介绍,Luke查看的索引库内容,索引查找过程

     1  Lucen目录介绍 2  lucene-core-3.6.2.jar是lucene开发核心jar包 contrib  目录存放,包含一些扩展jar包 3  案例 建立第一个Lucene项目 ...

  2. kibana 查询_干货 | Elasticsearch、Kibana数据导出实战

    1.问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据? 问题2:elasticsearch数据导出 就像数据库数据导出一样,elasticsearch可以么 ...

  3. elastic 索引库_使用Elastic Job Agents自动执行Azure SQL数据库索引维护

    elastic 索引库 In this article, I am going to explain how we can automate the index and statistics main ...

  4. elasticsearch将数据导出json文件【使用elasticdump】

    1.前提准备 需要使用npm安装,还未安装的朋友可以阅读另一篇我的博客<安装使用npm>,windows环境. 2.安装es-dump 打开终端窗口PowerShell或者cmd. 输入命 ...

  5. python缺少标准库_干货分享:Python如何自动导入缺失的库

    很多同学在写Python项目时会遇到导入模块失败的情况:ImportError: No module named 'xxx'或者ModuleNotFoundError: No module named ...

  6. python动态交互式图表库_干货 | 使用pyecharts绘制交互式动态地图

    干货 | 使用pyecharts绘制交互式动态地图 说到pyecharts,相信很多人不会陌生,一个优秀的python可视化包. pyecharts是中国人开发的,相比较matplotlib.seab ...

  7. 华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...

    1.一位工科男在拿到华为实习生offer后的面经干货 某211学校,机械学院研究生. 不得不说一下,华为的员工们真的是认真做事,因为怕我们担心下班轮不到面试.工作人员特意去休息区告诉我们,不面试完他们 ...

  8. css 解析 开源库_干货 | python库大全,全面高效

    黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题!来源丨速学Pythonhttps://mp.weixin.qq.com ...

  9. mac下查看redis安装路径_干货!win10环境下Redis安装、启动教程

    " 本文详细介绍win10环境下Redis的安装.启动方法." 01 - 下载 Redis项目不正式支持Windows.但是,Microsoft开放技术小组开发和维护一个Windo ...

最新文章

  1. super函数没有那么简单-super原理剖析
  2. VB/VBA中实现数据库与文件的存取
  3. flask v0.1 路由
  4. 思科和华为/H3C命令对比表
  5. POJ 3168 排序+扫描
  6. 消息持续积压几小时怎么办
  7. 仙人掌(cactus)
  8. AJAXSUBMIT跨域问题
  9. web前端开发学习经验分享——css,js进阶篇
  10. ubuntu18.04设置双显示器-HDMI
  11. LTE上行物理层传输机制(5)-CQI的传输方式
  12. java拼图游戏(带文档资料)
  13. Shell 脚本正则表达式(一)
  14. “妈我不想去上课!”“不行你是老师!”
  15. iOS--上传AppStore时遇到的10个大坑
  16. 使用python制作epub
  17. Node.js的卸载
  18. Proteus元器件对照表
  19. STM32F103C8移植uCOSIII(HAL库)
  20. 7 Win98 MS—DOS

热门文章

  1. Centos7 +Django的安装
  2. Python之List和Tuple类型(入门3)
  3. twitter storm源码走读之2 -- tuple消息发送场景分析
  4. 【读书笔记】《Javascript语言精粹》
  5. ASP.Net防止页面刷新重复提交
  6. Linux改变文件和目录权限-chmodchown
  7. Apache出现AH00558错误解决办法
  8. 都说Hadoop与大数据平台难懂?我就花了6分钟,但是看得明明白白
  9. 稳定的存储环境决定业务正常运作
  10. WZ132发现打CXY要么是程序员,要么是丑小鸭