Elasticsearch:如何把Elasticsearch中的数据导出为CSV格式的文件
本教程向您展示如何将数据从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文件。我们可以打开这个文件,并看到像这样的文档:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!