Redshift的新功能:基本查询调优问题

时间:2018-05-02 14:20:49

标签: amazon-redshift

我正在深入研究Redshift查询调优。我对这项技术很陌生。我有一些基本问题和一些松散形式的解释,我希望我的确认或反驳。

这就是......

  1. 分配与广播业务:
    到目前为止,我还没有在手册中找到最终告诉我差异的任何内容。我从计划中注意到的是,如果我选择分配方式ALL,我仍然会看到BCAST操作正在发生。有人可以解释一下这些操作之间的区别吗?
  2. 节点与切片:
    我注意到手册,在分发操作的上下文中,它一度指示数据分布在节点上,另一点指示数据分布在切片上。我正在开发环境中分析一个节点和两个切片的计划。这是我松散形成的解释: 优化器是节点不可知的;它关心切片。可以将数据分发到与该目标节点驻留的切片相邻的节点。有人可以确认或反驳这个吗?
  3. 高基数加入 我试图调整两个具有多个高基数连接操作(没有主/外键)的大型事务表。除了阅读几个关于调整的博客之外,还经历了几个涉及dist风格和sortkeys的杂色迭代 松散形成的解释:Redshift擅长作为星/雪花模式,其中连接通常是低基数(Dims和事实表),但与事务表斗争。有人可以确认或反驳这个吗?
  4. 感谢您的见解。

    谢谢!

1 个答案:

答案 0 :(得分:0)

此主题可能过于宽泛,无法在单个Q / A中解决。

  1. dist for broadcast all与其他广播不同 - 数据已经在每个节点上。分发意味着,为了完成连接,Redshift 重新使用新的dist键在所有切片上分配数据。
  2. 节点细分为切片。大多数查询运算符都在切片级别工作。
  3. Redshift可以比我使用的任何其他系统(YMMV)更快地完成对磁盘驻留数据的大量连接。为了获得最大速度,应使用dist和sort键列对具有相同dist和sort键的表进行大量连接。 See the "Merge Join" note here.
  4. From a previous answer,这些链接应提供您需要的解释: