加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 运营中心 > Apache > 正文

Apache Doris Colocate Join原理实践教程

发布时间:2023-02-17 12:58:39 所属栏目:Apache 来源:互联网
导读:我们都知道 Join 的常见连接类型分为以下几种: INNER JOIN OUTER JOIN CROSS JOIN SEMI JOIN ANTI JOIN Join 的常见算法实现包含以下几种: Nested Loop Join Sort Merge Join Hash Join 分布式系统实现 Join 数据分布的常见策略有: Shuffle Join Broadcas

    `value` varchar(8) COMMENT ""
  ) ENGINE=OLAP
  DUPLICATE KEY(`id`)
  DISTRIBUTED BY HASH(`id`) BUCKETS 10
  PROPERTIES (
  "colocate_with" = "t1"
  );
  
  
  CREATE TABLE `t2` (
    `id` int(11) COMMENT "",
    `value` varchar(8) COMMENT ""
  ) ENGINE=OLAP
  DUPLICATE KEY(`id`)
  DISTRIBUTED BY HASH(`id`) BUCKETS 10
  PROPERTIES (
  "colocate_with" = "t1"
  );
 
  Colocate Join 目前限制
  Colocate Table 必须是 OLAP 类型的表
  colocate_with 属性相同表的 BUCKET 数必须一样
  colocate_with 属性相同表的 副本数必须一样 (这个限制之后可能会去掉,但对用户应该没有实际影响)
  colocate_with 属性相同表的 DISTRIBUTED Columns 的数据类型必须一样
 
  Colocate Join 适用场景
  Colocate Join 十分适合几张表按照相同字段分桶,并高频根据相同字段 Join 的场景,比如电商的不少应用都按照商家 Id 分桶,并高频按照商家 Id 进行 Join。
 
  Colocate Join FAQ
  一句话总结,凡是不能进行 Colocate Join 的场景都会自动退化为原始的 Shuffle Join 或者 Broadcast Join。

 
  Q1: 支持多张表进行 Colocate Join 吗?
 
  A: 支持
 
  Q2: 支持 Colocate 表和正常表 Join 吗?
 
  A: 支持
 
  Q3: Colocate 表支持用非分桶的 Key 进行 Join 吗?
 
  A: 支持:不符合 Colocate Join 条件的 Join 会使用 Shuffle Join 或 Broadcast Join
 
  Q4: 如何确定 Join 是按照 Colocate Join 执行的?
 
  A: explain 的结果中 Hash Join 的孩子节点如果直接是 OlapScanNode, 没有 Exchange Node,就说明是 Colocate Join

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读