全部產品
Search
文件中心

OpenSearch:多表join引發的資料同步延遲

更新時間:Jul 13, 2024

目前OpenSearch支援建立多表join

如果多表配置了RDS、polarDB資料來源並且通過DTS資料訂閱的方式同步增量資料,主、輔表都可以同步到OpenSearch中,但為保障使用者資料同步的時效性,會做出如下限制:

說明

  1. 主表+輔表更新量不能超過1500tps,否則主、輔表的時效性不承諾即時

  2. 輔表更新觸發主表更新量不能超過1000tps,否則可能造成主輔表均有延遲

  3. 當主輔表的join關係是N:1時,建議N值不超過10

主輔表join邏輯

這裡以兩張表為例:

1

輔表更新邏輯

這裡以兩張表,並且主輔表對應關係為N:1為例:

2

由上圖可知

  • 在主輔表join之後,合并成為一張寬表,所有更新操作均在寬表裡進行

  • 當更新主鍵記錄時,由於主表的主鍵是唯一的,主表更新一條記錄,對應寬表更新一條記錄

  • 當更新輔表記錄時,由於輔表對應的主鍵,在主表中可以join上多條記錄(即N:1,N的值),則輔表

    更新一條記錄,可能造成

    寬表更新多條記錄

得出結論

  • 由於大量更新輔表,可能會造成主表的延遲,為保證主表的時效性,限制輔表更新觸發主表更新的最大量為1500tps

  • 輔表更新觸發主表更新超過1500tps時,輔表更新會被限速,所以不保證輔表更新時效性,如果繼續大量更新輔表可能造成更多延遲

  • 建議當主輔表的join關係是N:1時,建議N值不超過10

相關建議

  • 如果對主表的延遲可以容忍,可以提工單,開放輔表tps限速的限制

  • 如果對輔表的時效性可以容忍,且主表由於輔表的大量更新導致有較大延遲,可以提工單,限制輔表的更新量