全部产品

创建多表join

更新时间:2020-12-22 11:47

目前提供了 4 种方式的应用结构创建方式,同时OpenSearch高级版提供了多表支持功能,以方便业务复杂场景下调用。

主辅表数据关联关系

通过手动创建应用结构方式,为应用创建多个表时,多表之间数据关联关系描述如下:

  • 目前主辅表,仅支持 N:1 或 1:1 的关系,不支持 1:N(即多表数据关联关系中,多的一方只能是主表,且主表只能有1个)。
  • 主辅表需通过应用表外键与辅表主键进行数据关联,且表外键只能关联辅表主键。
  • 最多只支持2层关联。附表最多添加10张。

主辅表关系 关联逻辑 是否支持
表A(主表)、表B 表A(主表)-> 表B 支持
表A(主表)、表B、表C 表A(主表)-> 表B -> 表C 支持
表A(主表)、表B、表C、表D 表A(主表)-> 表B
表A(主表)-> 表C
表A(主表)-> 表D

join层级不超过2层,辅表个数不超过10个
支持
表A(主表)、表B、表C、表D 表A(主表)-> 表B -> 表C -> 表D

超过2层多表数据关联
不支持(独享型可支持3层)
表A(主表)、表B 表A->表B,表B->表A

环状多表数据关联
不支持
表A(主表)、表B、表C … 表K 表A(主表)-> 表B
表A(主表)-> 表C
..
表A(主表)-> 表K

join层级不超过2层,但辅表个数超过10个
不支持(独享型可扩展辅表个数)

数据模型

join

注意:

  • 表字段结构一致才能映射,如附表主键为INT,那么只能映射INT类型的主表字段。
  • 离线表的join逻辑是,在索引构建的过程中将主表和附表left join成一张宽表来生成索引供用户查询,因此如果附表记录和主表记录是N:1的关系,且N值比较大时,会在更新辅表时,触发放大n倍的主表更新流量,导致主附表更新延迟,因此建议N值<=10。