从Elasticsearch导出数据到文件工具Python 和 elasticdump 对比【自己的体验】

工作中从Elasticsearch导出大批量数据到文件,因为Elasticsearch导出有限制,一次性最多导出10000条,虽然可以调大这个数值,但是对于Elasticsearch集群上千万甚至上亿条数据导出,这个参数调整就没什么意义了。

所以我使用了两种方式,一个是用Python模块elasticsearch的helpers.scan来导出数据,另一种使用elasticdump工具来导出数据

说一下这两种方式的体验

方式一: python helpers.scan

优点:在导出数据过程中可以对数据进行处理,对于Elasticsearch上存储的脏数据导出友好,速度还可以

缺点:在对Elasticsearch上规整的数据单纯导出时候,速度有点慢,因为查询的返回结果是unicode格式,还是个数组,输出到文件要稍微处理一下。

方式二:elasticdump

优点:因为是主要为Elasticsearch 备份功能实现的工具,在数据转移的功能上是挺丰富的,使用也简单,速度稍微快一点

缺点:导出过程中无法处理数据,所以最好导出规整的数据到文件。

测试

在导出8300万条数据大小46G到文件时,helpers.scan方式,对数据进行格式化,处理不规则字符,速度慢到无法忍受。

只导出数据时helpers.scan导出完数据要15个小时左右,使用elasticdump也没快多少,只用了13.5小时。

如果有人知道什么好方法,请告知。

 

 

 

 

你可能感兴趣的:(Elasticsearch)