我正在使用Sybex官方学习指南学习Amazon Redshift,第173页有几个短语:
您可以配置表的分配方式,以便为Amazon RS提供有关如何对数据进行分区以最好地满足查询模式的提示。运行查询时,优化程序会根据需要将行移动到计算节点以执行任何连接和聚合。
这引出了一些问题?
1)"优化器&#34 ;?的作用是什么?是否跨计算节点重新安排数据以提高每个新查询的性能?
2)如果1)为真并且执行了新的查询完全不同:计算节点中的旧数据会发生什么?
3)你能更好地向我解释3种分配方式(偶数,关键,全部),特别是KEY风格。
额外问题:
1)领导者节点是否有记录?
答案 0 :(得分:0)
澄清一些事情:
know about the Optimizer唯一需要的是:
查询优化工具
Amazon Redshift查询执行引擎包含一个支持MPP的查询优化器,并且还利用了面向列的数据存储。 Amazon Redshift查询优化器实现了用于处理复杂分析查询的重要增强和扩展,这些查询通常包括多表连接,子查询和聚合。
来自Data Warehouse System Architecture:
领导者节点
领导节点管理与客户端程序的通信以及与计算节点的所有通信。它解析并开发执行计划以执行数据库操作,特别是获取复杂查询结果所需的一系列步骤。根据执行计划,领导节点编译代码,将编译的代码分发给计算节点,并将一部分数据分配给每个计算节点。
只有当查询引用存储在计算节点上的表时,leader节点才会将SQL语句分发到计算节点。所有其他查询仅在领导节点上运行。 Amazon Redshift旨在仅在领导节点上实现某些SQL功能。如果使用任何这些函数的查询引用驻留在计算节点上的表,则会返回错误。
领导者节点不包含任何数据(除非您启动单节点群集,在这种情况下,相同的服务器用作领导节点和计算节点)。
有关分配方式的信息,请参阅:Distribution Styles
如果您真的想了解Redshift,请阅读Redshift Database Developer Guide。如果您只是在攻读解决方案架构师考试,上述链接将足以满足Redshift知识的水平。