当前位置:首页>焦点 > 正文

使用 INFINI Console 实现 Elasticsearch 的增量数据迁移

  • 2023-07-10 15:12:39来源:博客园

功能介绍 #在 INFINI Console 1.3.0 版本里,数据迁移功能增加了对增量迁移的支持。这篇文章将会介绍增量迁移的具体使用方法和实现原理。

场景介绍 #以常见的日志场景为例,假设 A 集群有一个用来记录线上 HTTP 请求记录的索引 request-logs,数据结构如下:

{"request_body": {...},"request_header": {...},"method": "POST","request_time": "2023-06-09 12:30:09+800" // 客户端记录请求的时间"@timestamp": "2023-06-09 12:30:11+800" // 请求写入ES的时间}我们希望完整导入这个索引的数据到另外一个集群 B 的 request-logs。要想确保导入的数据完整,我们首先需要考虑数据写入的延迟问题:


【资料图】

A 集群的数据写入可能会有延迟。日志往往是从不同的节点收集异步上传的,考虑到网络环境波动等情况,最终日志写入 Elasticserach 的时间会有差异。

写入 Elasticsearch 的数据并不会立刻对查询请求可见,Elasticsearch 会异步刷新写入的数据。

也就是说,我们假设每一条请求日志从采集到写入 ES 到最终可以被查询的延迟为d,每次进行增量迁移的时候,我们可以完整迁移的数据范围就是[当前时间 - 上次迁移的时间 - d, 当前时间 - d)。只要数据写入的延迟不超过d,我们就可以从集群 A 查询到完整的数据集写入集群 B。

集群 A 的数据有更新操作? #在上述的日志场景里,我们通常不会对写入的日志文档进行后续的更新操作,每一条文档写入后都是不可变的,我们只需要筛选@timestamp字段就可以找到需要迁移的数据了,而且每条数据只需要迁移一次就可以确保目标集群的数据一致。

如果源数据有更新,那我们应该如何进行增量迁移呢?通常情况下,每次更新操作我们都会记录文档更新的时间到update_time字段,这样我们就可以使用update_time字段来进行增量数据的迁移。

假设在第一次迁移的时候,索引 A 存有以下数据,我们在进行第一次迁移操作后,数据可以完整写入目标索引:

如果在第二次迁移之前,索引 A 中有一条旧的记录被更新,这个时候,迁移流程可以通过update_time字段检测到这一条数据,复制并覆盖目标集群的旧数据记录:

可以看到,即使源数据有更新,只要我们记录了每一条数据的更新时间,迁移过程最后写入集群 B 的数据依然是完整且一致的。

集群 A 的数据有删除操作? #如果源集群的数据有删除操作,基于上述的数据迁移逻辑,第二次迁移过程是无法判断已经迁移的数据是否被删除的:

如果我们希望迁移的数据完整,需要避免对源集群的数据进行删除操作。我们可以标记文档为deleted,但是不做实际删除操作,这样我们就可以通过文档删除(更新)操作的时间来进行完整的数据迁移:

使用 INFINI Console 来进行增量数据的迁移 #在 INFINI Console 里,我们可以使用 数据工具 - 数据迁移 功能来对数据进行增量迁移。作为示例,我们新建一个数据迁移任务,把.infini_requests_logging-000002索引的数据迁移到目标集群的request索引。

我们需要迁移到一个新创建的索引,在Initialize Configuration步骤,根据提示配置目标索引的mapping和setting信息。如果不需要特殊配置,可以使用Auto Optimize功能自动填充。

接下来我们需要配置数据写入的更新字段和写入的延迟。请求日志通过timestamp字段记录请求时间,通常延迟不会超过 1 分钟,我们在Migrate Setting步骤里配置相应的Incremental信息。如果历史数据量比较大或者增量任务的运行间隔较长,我们也可以配置Partition分区规则来拆分任务为更细的粒度,避免因单个任务长时间导出数据对 ES 产生过高的负载。

最后,在创建任务时,我们勾选Detect Incremental Data,然后设置任务每 15 分钟检测一次增量数据。

点击开始后,增量任务就会开始运行。第一次运行时会对历史数据进行全量迁移,后续每 15 分钟会自动检测新数据并迁移到目标索引。

总结 #除了数据一致性,迁移功能的设计也需要兼顾性能、稳定性、ES 版本兼容性等,INFINI Console 提供了一套操作简便的数据迁移解决方案,可以用于各种场景的数据迁移需求。

标签:

延伸阅读

推荐阅读

使用 INFINI Console 实现 Elasticsearch 的增量数据迁移

功能介绍 在INFINIConsole1 3 0版本里,数据迁移功能增加了对增量迁移

模仿天王唱歌!平顶山这位大哥最近火了

大象新闻记者朱力严通讯员庞寻岑最近,在河南平顶山,一位大哥模仿天王

皮皮虾app怎么聊天 皮皮虾开启私信和群聊教程

皮皮虾app怎么聊天皮皮虾开启私信和群聊教程,

上海电影董事长王健儿:出品更多新主流爆款电影 聚焦精品内容

上证报中国证券网讯(记者杨翔菲)截至7月9日,电影《消失的她》票房突

这些才是千真万确的齐白石真迹!

这些才是千真万确的齐白石真迹!

银行更新报告:银行的分红率会下降吗?

银行更新报告:银行的分红率会下降吗?

暴雨中96岁老人迷路 民警暖心护送回家

俗话说“家有一老,如有一宝”。老人在家待久了,难免想出去走走,走着

聚美万嘉全屋整装,尽显奢华之美。

生活是一种满足自己物质和精神需求的独特方式,需要轻松从容、慵懒优雅

甘肃74个国控断面水质优良断面比例达95.9%

2022年,甘肃紧盯黄河、长江、西北诸河等重点流域和祖厉河、马莲河、散

能否成为日产销量起飞关键车型?试全新一代逍客

日前,逍客(图片|配置|询价)可以说是东风日产SUV家族中的销量担当,尽

万泉美地三期买房适合养老居住吗,为啥万泉美地三期的北方人比较多?

万泉美地三期买房适合养老居住吗,为啥万泉美地三期的北方人比较多?未

怎样把多个视频剪辑合成一个视频?这些编辑软件你都知道吗?

如果你想将多个视频片段合并成一个完整的视频,你可以使用各种视频编辑

安徽拟出台土地监督检查条例

安徽拟出台土地监督检查条例-《安徽省土地监督检查条例(草案征求意见

vcl是什么 vcl是什么品牌

vcl是什么,VCL是一种缩写,它是VisualComponentLibrary的缩写,指的是

偶像是榜样?姆巴佩走C罗老路:自我意识太膨胀 不会像梅西般哭泣

偶像是榜样?姆巴佩走C罗老路:自我意识太膨胀不会像梅西般哭泣,c罗,曼

舟山市财政局持续落实完善重点税源动态监控工作机制

舟山市财政局持续落实完善重点税源动态监控工作机制为加强舟山市重点税

90后小时候玩的几款经典游戏(盘点童年的热门电子游戏)

hello大家好,我是城乡经济网小晟来为大家解答以上问题,90后小时候玩

蔡徐坤爆料女撒谎录音,3证明演技胜出

跑男泰国专场因为蔡徐坤彻底停播?狗仔再爆W女士撒谎录音——引言。【

【何以中国】文脉颂中华·国潮少年派|国粹摇身变国潮,旧曲而今畅新声

“念白抑扬含顿挫,唱腔委婉透激昂。”扮相英俊的老生捋着胡子讲起了故

台青“登陆”浙江宁波创业创新 共探直播经济发展

“甬台优品·青创来播”直播基地成立现场。宁波(前洋)直播中心供图中

莱芜大峡谷旅游景点门票(莱芜大峡谷)

1、养在深闺人未识”的九龙大峡谷堪称莱芜北部旅游风景线上的奇葩。2、

中国天楹: 关于签署法国Novasteam垃圾焚烧发电厂设备销售合同的公告

中国天楹:关于签署法国Novasteam垃圾焚烧发电厂设备销售合同的公告

应急管理部派出工作组赶赴湖北宜昌五峰县山体滑坡救援现场

7月8日16时许,湖北宜昌五峰自治县长乐坪镇月山村突发一处山顶山体滑坡

北京中考成绩今起可查,中招网上咨询系统下午1点半开通

新京报讯(记者杨菲菲)7月9日,2023年北京市初中学业水平考试成绩查询

杜玥李晖茵5连败菜花组合,无缘首冠,提高一点,未来可期!

对阵的双方是中国的杜玥 李晖茵和日本的福岛由纪 广田彩花,结果日本组

开源证券给予保利发展买入评级 公司信息更新报告:半年度业绩同比增长 投资稳健销售居首位

开源证券07月09日发布研报称,给予保利发展(600048 SH,最新价:12 8

谁还缺人?自由市场剩余优质球员:伍德、乌布雷领衔

谁还缺人?自由市场剩余优质球员:伍德、乌布雷领衔,小里弗斯,自由市场

特斯拉Model 3狂降3万+:清仓甩卖的节奏

经查,北美Model3后轮驱动版目前提供4120美元的优惠,加上美国联邦税收

群“模”大战:打的是什么?谁更有机会?

“百模大战”开打,未来谁将脱颖而出?在今年的世界人工智能大会上,大

猜您喜欢

    Copyright ©  2015-2022 东方服装网版权所有  备案号:沪ICP备2020036824号-8   联系邮箱:562 66 29@qq.com