DistributionKey的作用有哪些?

DistributionKey的作用有哪些?

展开
收起
Medusa 2021-11-12 16:09:25 531 分享 版权
1 条回答
写回答
取消 提交回答
  • 在 Hologres 里面我们会有不同的表,放到不同的 TableGroup 里面,对于 Shard 数相同的表,都会放到一个 TG 下面。

    假设两个表做关联,如果都按照关联的 Key 去设计 Distribution Key,那么这两个表的关联就可以做一个 Local Join,如上图左边所示。所有的数据不需要做额外的 Shuffle,每个表在每个 Shard上面,做完关联之后直接产生结果。

    假如数据量增大,之后可能需要扩容,我们希望在这个 TG 下面所有表都会进行扩容,这样能保证数据分布的一致性,维持住整个 Local Join,而不会因为扩容导致做不了Local Join。Local Join 相比于非 Local Join,性能差别非常大,通常会有一个数量级左右的差异。跟 Local Join 最相关的就是 Distribution Key 的设计,如果 Distribution key 设计不合理时,在 Join 时,可能引起大量的 Data Shuffle,影响效率。

    资料来源:《实时数仓“王炸组合”-实时计算》,下载链接:https://developer.aliyun.com/topic/download?id=7944

    2021-11-12 18:33:46
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理