OpenSearch同步数据原理

更新时间:
复制 MD 格式

实时同步(增量数据)

2

由上图所示,增量数据一共有两部分(DB更新的和API推送的),新数据从源到opensearch一共有3个步骤:

1.用户更新DB(通过DTS服务订阅数据库的binlog实现)或者调用API接口将数据推送到OpenSearch离线,此时主+辅表有1500tps的限制

2. 当数据抵达离线后,会将增量数据更新到已有的大宽表中,此时由于主辅表为N:1的关系,辅表更新一条数据可能会触发主表的多条数据更新,当辅表更新触发主表更新tps触发量>=1000tps时,为保证主表的时效性,会将辅表的更新量限速【注:多表join引发的数据同步延迟可点击此处进行查看

3. 离线将带有元数据信息的数据写入到引擎(注:加入元数据后,数据可能会膨胀2-3倍),此时为保护引擎,写入量最大为10M/s

指标如下

阶段

相关限制

备注

源->离线主辅表一起的tps。不加trigger

1500

实时增量数据从离线写入引擎

10MB

加入元数据

辅表更新触发主表更新tps

1000

同步异常排查

当数据源无法同步时,按以下步骤排查:

控制台检查

  1. 查看同步延迟:前往云监控控制台,在指标和事件中心中找到开放搜索(OpenSearch)的应用实时处理延迟app_realtime_write_latency)指标,单位为 ms,可判断主表的同步延迟情况。

  2. 检查 DTS 同步状态:前往 DTS 控制台查看数据同步任务列表,确认运行状态运行阶段信息(库表结构同步/全量同步/增量同步)。

  3. 检查存储使用:在 OpenSearch 控制台的实例管理页面查看存储使用(G)列,存储满会导致自动同步停止。

数据验证

  1. 主键数据比对:通过主键值分别在数据库和 OpenSearch 中查询,比对结果是否一致。

  2. 配置一致性确认:在 OpenSearch 实例配置向导Step3 数据源页面,确认 RDS 实例 ID、数据库、表名与 DTS 订阅配置一致。

  3. 字符集检查:DTS 不支持 utf8mb3 字符集,需使用 utf8mb4。

恢复操作

  1. 重建索引:存储满时需重建索引并全量导入。具体操作可参考 DTS 实时同步文档和数据源配置文档。