目前OpenSearch支持創建多表join:
如果多表配置了RDS、polarDB數據源并且通過DTS數據訂閱的方式同步增量數據,主、輔表都可以同步到OpenSearch中,但為保障用戶數據同步的時效性,會做出如下限制:
說明
主表+輔表更新量不能超過1500tps,否則主、輔表的時效性不承諾實時
輔表更新觸發主表更新量不能超過1000tps,否則可能造成主輔表均有延遲
當主輔表的join關系是N:1時,建議N值不超過10
主輔表join邏輯
這里以兩張表為例:
輔表更新邏輯
這里以兩張表,并且主輔表對應關系為N:1為例:
由上圖可知:
在主輔表join之后,合并成為一張寬表,所有更新操作均在寬表里進行
當更新主鍵記錄時,由于主表的主鍵是唯一的,主表更新一條記錄,對應寬表更新一條記錄
當更新輔表記錄時,由于輔表對應的主鍵,在主表中可以join上多條記錄(即N:1,N的值),則輔表
更新一條記錄,可能造成
寬表更新多條記錄
得出結論:
由于大量更新輔表,可能會造成主表的延遲,為保證主表的時效性,限制輔表更新觸發主表更新的最大量為1500tps
輔表更新觸發主表更新超過1500tps時,輔表更新會被限速,所以不保證輔表更新時效性,如果繼續大量更新輔表可能造成更多延遲
建議當主輔表的join關系是N:1時,建議N值不超過10
相關建議
如果對主表的延遲可以容忍,可以提工單,開放輔表tps限速的限制
如果對輔表的時效性可以容忍,且主表由于輔表的大量更新導致有較大延遲,可以提工單,限制輔表的更新量
文檔內容是否對您有幫助?