干货 | Elasticsearch、Kibana数据导出实战

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 logstash_output_csv

步骤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都在如下的配置文件中。

  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.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/@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 实时日志分析平台环境搭建

原文地址:https://www.cnblogs.com/springforall/p/11379444.html

时间: 2024-10-16 11:15:26

干货 | Elasticsearch、Kibana数据导出实战的相关文章

Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么方便,需要一个插件进行数据的导出和导入进行备份和恢复操作.这里要说的插件是elasticdump. elasticdump的安装: [[email protected] ~]# yum install elasticdump 已加载插件:fastestmirror, product-id, subs

es实战之数据导出成csv文件

从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过65536, excel2007及以上版本支持1048576条数据.excel支持的数据量有限,并且生生成文件的速度比较慢. csv具有支持写入量大,文件较小的优点. 故选择csv作为导出文件类型. 导出文件的几种方式: 将数据从es中查询出来,在这个大前提下,对比导出文件的速度. 由前端处理 直接将数据返回给前端,

logstash+elasticsearch+kibana+redis 实战

写此文章和就是为了记录logstash+elasticsearch+kibana+redis搭建过程.所有程序都是运行在windows 平台下. 1. 下载 1.1 logstash, elasticsearch, kinana 从官方站点下载: https://www.elastic.co/ 1.2 redis 官方的没有windows平台的.可以从github上下载windows平台版: https://github.com/MSOpenTech/redis/releases 2. 启动各部

Redis+Logstash+Elasticsearch+Kibana多Redis日志数据流

本文描述了一个简单的case,讲解怎么在logstash进行配置,将多个日志数据流,通过redis缓存接收,再导出到elasticsearch多个索引,即一类日志数据对应一类索引. 假设有两组日志数据由日志端写入redis缓存,两组日志标记其类型为redis-data-A和redis-data-B,则编写logstash配置文件如下 input { redis { host => "127.0.0.1" type => "redis-data-A" da

Elasticsearch技术解析与实战 PDF (内含目录)

Elasticsearch技术解析与实战 下载地址:https://pan.baidu.com/s/1q46lwAqzbUMs0qbKyBNBqg 关注微信公众号获取提取码: 输入:esjs     获取提取码.                                   介绍: Elasticsearch是一个强[0大0]的搜索引擎,提供了近实时的索引.搜索.分析功能.本书作者根据自己多年的开发经验,总结了使用和开发Elasticsearch的实战经验.本书全面介绍Elasticsea

干货 | 快速实现数据导入及简单DCS的实现

干货 | 快速实现数据导入及简单DCS的实现 原创:?赵琦?京东云开发者社区??4月18日 对于多数用户而言,在利用云计算的大数据服务时首先要面临的一个问题就是如何将已有存量数据快捷的导入到大数据仓库中.本文将演示如何基于京东云数据计算服务平台,简单.快速地将数据导入数据计算服务. 我们通常说的大数据平台主要包括三部分:数据相关的产品和技术.数据资产.数据管理.京东云数据计算服务(Data Computing Service,简称:DCS)是一个全托管.低使用成本的云上数据仓库服务.通过数据工厂

lagstash + elasticsearch + kibana 3 + kafka 日志管理系统部署 02

因公司数据安全和分析的需要,故调研了一下 GlusterFS + lagstash + elasticsearch + kibana 3 + redis 整合在一起的日志管理应用: 安装,配置过程,使用情况等续 一,glusterfs分布式文件系统部署: 说明: 公司想做网站业务日志及系统日志统一收集和管理,经过对mfs, fastdfs 等分布式文件系统的调研,最后选择了 glusterfs,因为Gluster具有高扩展性.高性能.高可用性.可横向扩展的弹性特点,无元数据服务器设计使glust

logstash+elasticsearch +kibana 日志管理系统

Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志.kibana 也是一个开源和免费的工具,他可以帮助您汇总.分析和搜索重要数据日志并提供友好的web界面.他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面. 目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还

elasticsearch导入数据的几种方法

Elasticsearch一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.ElasticSearch也支持存储,查询,排序,分页等数据库的功能.Elasticsearch的数据就存储在硬盘中.当我们的访问日志非常大时,kabana绘制图形的时候会非常缓慢.而且硬盘空间有限,不可能保存所有的日志文件.如果我们想获取站点每天的重要数据信息,比如每天的访问量并希望能图像化的形式显示该如何做呢? 当然首先我们要把你想要的信息从Elasticsearch导出,然在整理后再导入Elast