开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

DistributionKey的作用有哪些?

DistributionKey的作用有哪些?

展开
收起
Medusa 2021-11-12 16:09:25 471 0
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 集群和引擎,提高作业开发运维效率。

相关电子书

更多
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载