一个实用的开源项目,可以快速将 Elasticsearch 数据导出到 csv
在实际业务中,数据导出应该算是一个强需求了,很多场景都用得到。
如果是 MySQL 的话,则无需多言,支持导出的工具一大堆,根据自己需求选择即可。
那有没有对 Elasticsearch 导出支持比较好的工具呢?
虽然没有 MySQL 那么多,但肯定是有的。如果部署了 Kibana,那一定是首选,不止导出功能强大,还有一整套可视化功能,很实用。
没有 Kibana 的话也别慌,今天就给大家推荐一款命令行导出工具:es2csv。
源码地址:https://github.com/taraslayshchuk/es2csv
该项目使用 Python 编写,既支持 Lucene 原生语法查询,也支持 DSL 语法查询。还可以在多个索引中同时检索,并且只获取自己关注的字段,非常高效。
用法介绍:
看参数就知道,功能覆盖还是相当全面的,而且作者也给了很多使用例子,相当贴心。
https://github.com/taraslayshchuk/es2csv/blob/master/docs/EXAMPLES.rst
其实,我还有一个需求,就是除了命令行导出外,希望能有一个公共方法,可以在我自己的程序中调用,然后导出文件。
所以,在原项目基础上,新增了一个程序 es2csv_lib.py。这样,如果在开发过程中,如果有从 Elasticsearch 导出的需求,直接调用公共方法即可。
此程序调用参数和命令行方式基本一致:
使用方法:
源码地址:https://github.com/yongxinz/es2csv
还有一点需要说明,源项目作者推荐使用版本是:Python 2.7.x,Elasticsearch 5.x。我新增的代码使用测试版本是:Python 3.6.8,Elasticsearch 5.6.12。
感兴趣的同学可以自己去看源码,或者给我留言都可以。
以上。
版权声明: 本文为 InfoQ 作者【AlwaysBeta】的原创文章。
原文链接:【http://xie.infoq.cn/article/d0153d3802ffa3a4ad9edadb0】。文章转载请联系作者。
评论