Python 操作 elasticsearch 如何实现 bulk 写入时,如何实现超时就写入?

2019-10-21 11:07:46 +08:00
 itskingname

在使用 Python 操作 Elasticsearch 的第三方库 elasticsearch-py 时,我使用 helpers.bluk 来批量更新数据,代码如下:

data = DataGenerator()
helpers.bulk(es, data, index='xxx')

其中,DataGenerator()返回一个生成器,对它进行迭代,每次返回一条数据。

在默认情况下,bulk 每凑够 500 条数据就更新一次。但有时候,数据获取得比较慢,凑够 500 条需要几十分钟。所以我希望实现:

  1. 在 1 分钟内,只要凑够 500 条数据就写入到 ES
  2. 即使没有凑够 500 条,每分钟也写入 ES

大家有什么好的设计方案吗?

1074 次点击
所在节点    问与答
2 条回复
laimailai
2019-10-21 12:57:09 +08:00
参考 es java 的 bulkprocessor
itskingname
2019-10-21 13:17:07 +08:00
@laimailai 感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611303

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX