小码农

好记性不如烂笔头....

Elasticsearch大量数据写入优化

接到一个任务,咱有个模型,输入是微博内容[评论内容],微博发布时间[评论发布时间],微博阅读数、转发数、评论数(评论都传0),等等一些参数,输出是一个DataFrame。字段什么的就不说了,反正有个很长很长的字符串

现在是需要我从Elasticsearch中的两个索引(微博内容索引,评论索引)读取数据调用模型训练得出结果,再把结果写入另一个索引

估算了一下,写入数据量大概10-20亿条左右(好庞大啊…),读取量也是好几个亿

直接最后的方案吧(已经累到不想写文章了):

读取:采用深分页scroll方式每次读取1w条数据进行处理,两个索引都是如此

写入: 1w条来源数据大概会生成7-8w条目标数据,采用bulk方法批量写入索引

索引配置:写之前把索引刷新间隔( refresh_interval )改为“不刷新”,并且让索引分片不备份( number_of_replicas ),这样可以大大提高写入速度

《Elasticsearch大量数据写入优化》

中间还是踩了不少坑,结果还可以,10个进程跑的飞起。。。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注