如何把Elasticsearch中的数据导出为CSV格式的文件

前言|

本文结合用户实际需求用按照数据量从小到大的提供三种方式从ES中将数据导出成CSV形式。本文将重点介Kibana/Elasticsearch高效导出的插件、工具集,通过本文你可以了解如下信息:

1,从kibana导出数据到csv文件

2,logstash导出数据到csv文件

3,es2csv导出数据到csv文件

一、Kibana导出工具

步骤1:点击Kibana;

步骤2:左侧选择数据,筛选字段;点击save,保存并命名

如何把Elasticsearch中的数据导出为CSV格式的文件_第1张图片

保存字段数据

如何把Elasticsearch中的数据导出为CSV格式的文件_第2张图片

命名

步骤3:右侧点击:share->csv reports。 一般根据数据文件大小,会花费不同的时间

如何把Elasticsearch中的数据导出为CSV格式的文件_第3张图片

生成CSV文件

步骤4:菜单栏:选择Management->Reporting->下载

如何把Elasticsearch中的数据导出为CSV格式的文件_第4张图片

下载并打开已存的文件

注意:当然使用Kibana导出会出现如下几个问题:比如要下载的文件太大,在保存对象生成CSV文件的过程中会出现如下信息:

下载的数据文件太大

下载的数据文件太大

如果在下载的时候出现这个问题,需要改一下Kibana配置文件,这个时候需要联系腾讯云售后给与支持。

如何把Elasticsearch中的数据导出为CSV格式的文件_第5张图片

修改kibana配置文件

当然,我们也可以使用kibana将一些其它保存在导航图的的对象下载下来,在Dashboard的右上角点击Inspect,再点击就可以导出对应可视化报表对应的数据。如下

如何把Elasticsearch中的数据导出为CSV格式的文件_第6张图片

导出可视化报表对应的数据

总结:kibana导出数据到CSV文件图形化操作方便快捷,但是操作数据不能太大,适合操作一些小型数据的导出。

二、使用logstash导出ES数据成CSV文件

步骤一:安装与ES对应版本的logstash,一般安装完后,默认就集成了logstash-output-csv插件

如何把Elasticsearch中的数据导出为CSV格式的文件_第7张图片

查看此插件

显然logstash-ouput-csv是在列表中。也就是说我们logstash支持csv格式的输出。我们建立如下的Logstash的配置文件:

如何把Elasticsearch中的数据导出为CSV格式的文件_第8张图片

定义Logstash事件配置文件

请注意上面的path需要自己去定义时候自己环境的路径。这里我们在fields里定义了我们想要的字段。通过如下命令启动logstash服务 ../bin/logstash -f ../path/convert_csv.conf

结论:Logstash不只光可以把数据传上Elasticsearch,同时它还可以把数据从Elasticsearch中导出。适合大量数据的导出。但是导出时间也会根据数据的大小而长短不一。

三、使用es2csv导出ES数据成CSV文件

可以去官网了解一下这个工具,https://pypi.org/project/es2csv/

用python编写的命令行数据导出程序,适合大量数据的同步导出,速度和效率都比较快。

安装这个过程参考上面的官方链接,如果出现无法安装pip命令,可以参考此链接:

https://www.cnblogs.com/wujf-myblog/p/9644278.html

具体的参数详解可以参考此链接:https://www.kutu66.com/GitHub/article_133864

常用参数如下:

-i 索引名

-q query dsl

-a 认证信息 格式:user: password

-u esurl 格式: http://ip:9200

-o 命名

-r qurey formated

具体执行一个命令操作一下:如下:

es2csv文件格式

es2csv文件格式

因此,执行成功后,就回出现进度条的显示信息。如上图所示。

四、总结

以上3种方法是常见的ES导出到CSV文件的方法,实际工作中使用也比较广泛。大家可以多尝试。当然。elasticsearch-dump也能导,但是比较小众,相当于Mysqldump指令。如果要将ES导出到json格式可以使用它来进行操作,这里就不多说。

你可能感兴趣的:(elasticsearch,大数据)