我知道这可能是一个基本问题,但我相信每个人都必须从某个方面学习。
我正在努力学习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文件中的格式。拜托,您能帮我理解我应该做些什么,并澄清我应该采取的步骤,因为这对我来说至关重要。
非常感谢!
答案 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中可视化下方的按钮将数据导出为Raw
或Formatted
。
这可能会更好,特别是如果您构建数据表,因为数据将被“展平” - 而不是嵌套在json结构中,当您直接转换为csv时这可能没什么用处。