本教程向您展示如何将数据从Elasticsearch导出到CSV文件。 想象一下,您想要在Excel中打开一些Elasticsearch中的数据,并根据这些数据创建数据透视表。 这只是一个用例,其中将数据从Elasticsearch导出到CSV文件将很有用。

方法一

其实这种方法最简单了。我们可以直接使用Kibana中提供的功能实现这个需求。

我们首先来准备数据:

再接着选择Add data。这样我们的Elasticsearch中就会有我们的eCommerce索引了。

我们接着选择Discover,并选择我们刚才建立的eCommerce索引。

我们同时要记得在time picker里选择我们所需要的时间段:

我们可以做一些我们想要的搜索:

我们点击左上角的Save按钮:

接下来,我们点击Share按钮:

这样我们就可以得到我们当前搜索结果的csv文件。我们只需要在Kibana中下载即可:

方法二

我们可以使用Logstash提供的功能来做这个。这个的好处是可以通过编程的方式来进行。Logstash不只光可以把数据传上Elasticsearch,同时它还可以把数据从Elasticsearch中导出。

我们首先必须安装和Elasticsearch相同版本的 Logstash。如果大家还不指定如安装Logstash的话,请参阅我的文章“如何安装Elastic栈中的Logstash”。

我们可以进一步查看我们的Logstash是否支持csv的output:

./bin/logstash-plugin list --group output

显示:

logstash-output-cloudwatch
logstash-output-csv
logstash-output-elastic_app_search
logstash-output-elasticsearch
logstash-output-email
logstash-output-file
logstash-output-graphite
logstash-output-http
logstash-output-lumberjack
logstash-output-nagios
logstash-output-null
logstash-output-pipe
logstash-output-rabbitmq
logstash-output-redis
logstash-output-s3
logstash-output-sns
logstash-output-sqs
logstash-output-stdout
logstash-output-tcp
logstash-output-udp
logstash-output-webhdfs

显然logstash-ouput-csv是在列表中。也就是说我们logstash支持csv格式的输出。

我们建立如下的Logstash的配置文件:

convert_csv.conf

input {
elasticsearch {
hosts => "localhost:9200"
index => "kibana_sample_data_ecommerce"
query => '{
"query": {
"bool": {
"must": [
{
"match": {
"currency": "EUR"
}
},
{
"match": {
"products.quantity": 1
}
}
]
}
}
}'
}
} output {
csv {
# This is the fields that you would like to output in CSV format.
# The field needs to be one of the fields shown in the output when you run your
# Elasticsearch query fields => ["category", "customer_birth_date", "customer_first_name", "customer_full_name", "day_of_week"] # This is where we store output. We can use several files to store our output
# by using a timestamp to determine the filename where to store output.
path => "/Users/liuxg/tmp/csv-export.csv"
}
}

请注意上面的path需要自己去定义时候自己环境的路径。这里我们在fields里定义了我们想要的字段。

然后,我们可以运行我们的Logstash应用:

./bin/logstash -f ~/data/convert_csv.conf

这样在我们定义的文件路径/Users/liuxg/tmp/csv-export.csv可以看到一个输出的csv文件。我们可以打开这个文件,并看到像这样的文档:

Elasticsearch:如何把Elasticsearch中的数据导出为CSV格式的文件的更多相关文章

  1. 将组策略中的内容导出至CSV格式

    #将组策略首选项中的"本地用户和组"下的所有条目导出 $xml = Get-GPOReport -ReportType Xml -Name "China Desktop ...

  2. python 将json格式的数据写入csv格式的文件中

    # coding=utf-8 import json import csv # 重新进行配置读写数据时的默认编码 import sys reload(sys) sys.setdefaultencodi ...

  3. elasticsearch river 从数据库中导入数据

    Elasticsearch中使用reiver-jdbc导入数据 2014-05-13 15:10 本站整理 浏览(3384)     Elasticsearch中使用reiver-jdbc导入数据,有 ...

  4. 使用OpenXml把Excel中的数据导出到DataSet中

    public class OpenXmlHelper { /// <summary> /// 读取Excel数据到DataSet中,默认读取所有Sheet中的数据 /// </sum ...

  5. 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel

    机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...

  6. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  7. 将Datagridview中的数据导出至Excel中

        首先添加一个模块ImportToExcel,并添加引用         然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Da ...

  8. WPF-将DataGrid控件中的数据导出到Excel

    原文:WPF-将DataGrid控件中的数据导出到Excel 导出至Excel是非常常见,我们可以用很多类库,例如Aspose.NOPI.Interop,在这里我们使用微软自家的工具.我的WPF绑定的 ...

  9. 如何将存储在MongoDB数据库中的数据导出到Excel中?

    将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...

随机推荐

  1. 如何快速体验OneOS

    随便逛了逛 之前有简单了解过OneOS,今天逛了下OneOS专区,发现官方终于也在宣传方面发力了啊,很多文章都非常专业,也有开发者在专区里面提问题了.也发现,部分开发者倒在了第一步,如何编译下载运行O ...

  2. Zend Studio,php 生成报错

    Zend Studio  Description Resource Path Location Type Undefined CSS file ("../red-treeview.css&q ...

  3. 如何用天气预警API接口进行快速开发

    天气预警能够指导人们出行.同一种类的气象灾害预警信号级别不同,对应的防御措施也不尽相同,人们通过气象灾害预警信号,合理安排出行.公众要提高防范意识,养成接收和关注预警信息的习惯,了解预警信息背后的意义 ...

  4. NC20583 [SDOI2016]齿轮

    题目链接 题目 题目描述 现有一个传动系统,包含了N个组合齿轮和M个链条.每一个链条连接了两个组合齿轮u和v,并提供了一个传动比x : y. 即如果只考虑这两个组合齿轮,编号为u的齿轮转动x圈,编号为 ...

  5. jdbc 02: 连接mysql,并实现删除与更新

    jdbc连接mysql,并实现删除与更新 package com.examples.jdbc.o2_删除与更新; import java.sql.*; //连接与插入 /* jdbc删除操作 */ p ...

  6. 基于gitlab 15.1 pages 搭建内部博客一定行版本

    背景 基于 gitlab 15.1版 pages 搭建内部博客,参考官方文档,遇到一个又一个坑.之前看到别人吐槽说 gitlab 官方文档很差,我算是理解了.下面一个个说. 开始 按照官方文档的说法, ...

  7. Charles 某音最新版本抓包环境搭建

    本文仅供学习交流使用,如侵立删! Charles 某音最新版本抓包环境搭建 操作环境 google nexus5x Android 8.1 Magisk 24.3 Douyin 17.3 kaliLi ...

  8. BS架构与CS架构

    BS与CS的区别:1.BS是标准规范的,CS的协议自定义:2.BS核心运算都在服务器端,CS客户端和服务器端都可以运算:3.BS只需要部署服务器端,CS需要同时升级客户端和服务器端. CS(Clien ...

  9. Ubuntu 20.04安装Docker

    Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...

  10. 为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary?因为它是真强啊!

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...