注意:这里介绍的是高级版应用的流程。
索引重建(全量数据)

由上图所示,触发索引重建后,新版本从开始构建到正常使用需要经过3个阶段:
1.OpenSearch离线将数据从DB拉取到本地(也称DB全量),此时为减轻用户数据库的负载压力,限制数据拉取速度不超过20M/s
2. 当数据库里的数据全部同步到OpenSearch离线后,会继续追加增量数据,增量数据可以包含两部分:
API推送的增量,用户在除了DB新增或者更新的数据外,还通过调用OpenSearch流量接口,将部分其他数据推送到OpenSearch中
构建中的增量,新版本在构建中此时用户的DB或者API也可能会有部分数据进入OpenSearch中
3. 离线服务会对数据进行加工(打宽表、做标记),然后将附带元数据信息的数据同步到引擎中,此时为了保护引擎,限制数据推送量不得超过20M/s(注意:这里数据经加工已经附带了元数据,实际的量可能会超过数据库数据的2-3倍)
指标如下:
阶段 | 相关限制 | 备注 |
---|---|---|
索引重建-从数据源读入数据 | 20MB/s | 数据源原始数据 |
索引重建-追实时的数据 | 10MB/s | |
索引重建-从离线->引擎 | 20MB/s | 加入元数据 |
实时同步(增量数据)

由上图所示,增量数据一共有两部分(DB更新的和API推送的),新数据从源到opensearch一共有3个步骤:
1.用户更新DB(通过DTS服务订阅数据库的binlog实现)或者调用API接口将数据推送到OpenSearch离线,此时主+辅表有1500tps的限制
2. 当数据抵达离线后,会将增量数据更新到已有的大宽表中,此时由于主辅表为N:1的关系,辅表更新一条数据可能会触发主表的多条数据更新,当触发量>=1500tps时,为保证主表的时效性,会将辅表的更新量限速【注:多表join引发的数据同步延迟可点击此处进行查看】
3. 离线将带有元数据信息的数据写入到引擎(注:加入元数据后,数据可能会膨胀2-3倍),此时为保护引擎,写入量最大为10M/s
指标如下:
阶段 | 相关限制 | 备注 |
---|---|---|
源->离线 主辅表一起的tps。不加trigger | 1500 | |
实时增量数据从离线写入引擎 | 10MB | 加入元数据 |
辅表更新触发主表更新tps | 1500 |
在文档使用中是否遇到以下问题
更多建议
匿名提交