如何使用 INFINI Gateway 增量迁移 ES 数据
本文介绍了如何通过INFINIGateway实现条件查询下的增量数据迁移。在原有迁移配置基础上,通过在pipeline中增加query_dsl字段指定时间范围条件,即可仅迁移符合要求的文档数据。演示案例显示,297,482条全量数据中成功迁移了符合时间条件的21条记录。该方法特别适合带有时间字段的数据增量迁移场景,使数据迁移过程更加灵活可控。更多功能可参考官方文档。
之前介绍过如何使用 INFINI Gateway迁移数据,但是迁移的是整个索引的全量数据。如果我只想迁移符合查询条件的数据,该怎么做呢?别小看这个需求,因为有了这个功能再结合时间条件检索,我们就能实现增量数据迁移,当然前提是数据有时间字段。
话不多说,我们来 demo 。
测试环境
|
软件 |
版本 |
|
Easysearch |
1.13.1 |
|
Elasticsearch |
7.10.2 |
|
Gateway |
1.29.8 |
迁移实战
迁移步骤与之前一样,只是 Gateway 配置里多了查询条件。
pipeline 部分我们增加 query_dsl 写入过滤条件。
pipeline:
- name: source_scroll
auto_start: true
keep_running: false
processor:
- es_scroll:
slice_size: 1
batch_size: 5000
indices: "nginx"
elasticsearch: source
output_queue: source_index_dump
partition_size: 1
scroll_time: "5m"
query_dsl: "{ \"query\": { \"bool\": { \"filter\": [ { \"range\": { \"timestamp\": { \"gte\": \"2024-11-16T23:59:50+08:00\", \"lte\": \"2024-11-16T23:59:59+08:00\" } } } ] } }}"
我们先看看源端 nginx 索引全量数据有多少,297482 条。

再看看 nginx 索引中符合查询条件的文档有多少,21 条。

也就是说这次我们只会迁移 21 条数据,运行 Gateway 进行“增量”数据迁移。


迁移完成。结合查询条件可以使 INFINI Gateway 更加灵活,当然 Gateway 还有更多实用功能,欢迎大家查阅官方文档。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)