MPP 文档新增需求

在官方文档# 用 EXPLAIN 查看 MPP 模式查询的执行计划章节中关于Shuffle Hash Join描述如下


有几个问题请教下

  1. 在对需要join的2个表是按join字段进行hash的吧, 每个partition的大小在多少?
  2. 在hash partition数据发送给上游后,2个表的hash partition间是不是都需要进行关联?
    建议官方对mpp这块能更详细的描述些

如果这是个 文档新增需求 ,请按照下方模板提交,以便于我们更快了解到你的需求,进行优化:

  • 需求类型:新增文档

  • 需求落地链接:附上链接

  • 需求背景:比如缺少哪部分文档,对使用有什么影响

  • 期望增加哪些组件或者功能的文档,加到现有文档的哪个位置

  • 需求类型:新增文档
  • 需求落地链接:附上链接
  • 需求背景:MPP作为一项重要的功能,目前官方文档中对相关内容描述较少,且内容较为散乱,
  • 期望增加哪些组件或者功能的文档,加到现有文档的哪个位置:
    增加一个专门讲讲MPP的章节,包括但不限于:MPP原理、MPP模式和以前没有时的区别、涉及哪些线程、tidb内每种数据分发方式的具体执行过程和原理结合SQL,结合原理和过程描述相关参数、执行计划分析等内容。
1赞

已反馈给相关部分负责人,感谢你提出的有效建议~

  1. 在对需要join的2个表是按join字段进行hash的吧, 每个partition的大小在多少?
    大部分情况下,hash字段=join字段,但是理论上hash的字段只需要是join字段的子集,具体到某个sql,优化器会根据一定的规则来选择最终的hash字段。Partition的大小我理解你是指把数据分成多少个partition?目前的实现是会取a表数据所在的节点和b表数据所在节点的并集。假设a表数据在node1,node2 节点,b表数据在node2,node3 节点的话,partition的个数就是3(node1,node2,node3三个节点)
  2. 在hash partition数据发送给上游后,2个表的hash partition间是不是都需要进行关联?
    这个问题不是很懂?在hash partition数据发给上游后,每个上游节点各自进行join操作即可。
1赞

关于新增 MPP 文档章节的需求,已和相关部分的负责人沟通,因为 MPP 原理和架构偏技术和开发,所以计划今年会在官网博客版块新增一篇技术博客,详细讲解相关内容。

1赞