【问题标题】:New to Redshift: Basic Query Tuning QuestionsRedshift 新手:基本查询调优问题
【发布时间】:2018-05-02 14:20:49
【问题描述】:

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

来了……

  1. 分发与广播操作:
    到目前为止,我还没有在手册中找到任何可以最终告诉我区别的内容。我从计划中注意到的是,如果我选择 ALL 分发方式,我仍然会看到 BCAST 操作正在发生。有人可以解释一下这些操作之间的区别吗?
  2. 节点与切片:
    我注意到手册,在分发操作的上下文中,有一点表明数据分布在节点之间,另一方面表明数据分布在切片之间。我正在一个节点和两个切片的开发环境中分析计划。这是我的松散形式的解释: 优化器与节点无关;它关心切片。可以将数据分发到与该目标节点驻留的切片相关的节点。有人可以证实或反驳这一点吗?
  3. 高基数连接 我正在尝试使用多个高基数连接操作(无主键/外键)调整两个大型事务表。除了阅读一些关于调优的博客之外,还经历了几次涉及 dist 样式和排序键的多样化迭代。
    松散形式的解释:Redshift 擅长作为星形/雪花模式,其中连接通常是低基数(Dims 和事实表),但与事务表相冲突。有人可以证实或反驳这一点吗?

感谢您的见解。

谢谢!

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    这个主题可能过于广泛,无法在一个问答中解决。

    1. dist all 的广播不同于其他广播 - 数据已经在每个节点上。分发意味着,为了完成连接,Redshift 重新使用新的 dist 键将数据分布到所有切片中。
    2. 节点被细分为片。大多数查询运算符都在切片级别工作。
    3. Redshift 可以比我使用过的任何其他系统 (YMMV) 更快地完成对磁盘驻留数据的大量连接。为了获得最大速度,应该在具有相同 dist 和排序键的表上完成巨大的连接 - 使用 dist 和排序键列。 See the "Merge Join" note here.

    From a previous answer,这些链接应该提供您需要的解释:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2011-08-26
      相关资源
      最近更新 更多