将文档导出为JSON或CSV

时间:2017-06-06 10:55:29

标签: elasticsearch

我知道这可能是一个基本问题,但我相信每个人都必须从某个方面学习。

我正在努力学习Elasticsearch,并且正在浏览本页面的文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/_exploring_your_data.html

我学习了如何加载JSON数据并形成索引。但后来我脑子里出现了一个问题,我怎样才能将我创建的整个索引(这里是银行)导出为CSV或JSON。由于我无法在Kibana中找到解决方案,因此我搜索了Github并发现了这个python脚本' es2csv'。

https://pypi.python.org/pypi/es2csv/2.4.11

我安装了它,但是我无法将输出格式化为应该出现在CSV文件中的格式。拜托,您能帮我理解我应该做些什么,并澄清我应该采取的步骤,因为这对我来说至关重要。

非常感谢!

2 个答案:

答案 0 :(得分:1)

我最近发布了这个脚本,听起来它与上面的es2csv.py有类似的目标,但就像使用jq和json2csv.js的单个bash脚本一样。

这是一个要点:

https://gist.github.com/nzjess/23cbab0fbb3b1b3a63c30e468119612b

这就是我从ELK堆栈编写CSV导出的脚本。文档是内联的。

答案 1 :(得分:0)

这似乎是最高级别的选项 - 它会从elasticsearch下载所有索引,而不只是一个(来自docs)。

es2csv -q 'host: localhost' -o database.csv

或指定索引,使用-i和索引名称:

es2csv -i indexname -q 'host: localhost' -o database.csv

更好的方法可能是使用kibana来构建可视化。然后,您可以使用kibana中可视化下方的按钮将数据导出为RawFormatted

这可能会更好,特别是如果您构建数据表,因为数据将被“展平” - 而不是嵌套在json结构中,当您直接转换为csv时这可能没什么用处。

enter image description here