在 Amazon Redshift 中使用 Diststyle ALL 的 table 应该有多小?
How small should a table using Diststyle ALL be in Amazon Redshift?
在 Amazon Redshift 中使用 Diststyle ALL 的 table 应该有多小?
这里说:http://dwbitechguru.blogspot.com/2014/11/performance-tuning-in-amazon-redshift.html
对于非常小的 tables,redshift 应该使用 diststyle ALL 而不是 EVEN 或 KEY。多小才算小?如果我要在查询的 where 子句中指定行号:select relname, reldiststyle from pg_class
我应该指定多少行?
这实际上取决于您使用的集群大小。 DISTSTYLE ALL 会将您的 table 的数据复制到所有节点 - 以减轻跨节点的数据传输要求。您可以找出 table 的大小和 Redshift 节点的可用大小,如果您有能力为每个节点复制 table 多次,那就去做吧!
此外,如果您需要非常非常频繁地使用此 table 加入其他 table,例如 70% 的查询,我认为值得 space 如果你想要更好的查询性能。
如果 tables 之间的连接键在基数方面相同,那么您还可以负担得起在该键上分发所有 tables,以便相似的键位于同一节点中,这将避免数据复制。
我建议尝试上面的两个选项,并比较平均查询 运行 次大约 10 次查询,然后再做出决定。
考虑到星型模式,分配样式 All 通常用于维度 tables。这样做有利于加快连接速度,让我们通过一个例子来解释这一点。如果我们想按国家/地区获得每个产品的销售数量,我们需要在 store_id 键上加入 fact_sales 和 dim_store table。
因此,在 dim_store 上设置 diststyle all 使我们能够并行执行 JOIN 结果,这与启用 diststyle even 时混洗的劣势相比。但是,您可以通过设置 distyle auto 让 Redshift 自动处理最佳分布样式,有关更多信息,请查看 this link.
在 Amazon Redshift 中使用 Diststyle ALL 的 table 应该有多小?
这里说:http://dwbitechguru.blogspot.com/2014/11/performance-tuning-in-amazon-redshift.html
对于非常小的 tables,redshift 应该使用 diststyle ALL 而不是 EVEN 或 KEY。多小才算小?如果我要在查询的 where 子句中指定行号:select relname, reldiststyle from pg_class
我应该指定多少行?
这实际上取决于您使用的集群大小。 DISTSTYLE ALL 会将您的 table 的数据复制到所有节点 - 以减轻跨节点的数据传输要求。您可以找出 table 的大小和 Redshift 节点的可用大小,如果您有能力为每个节点复制 table 多次,那就去做吧!
此外,如果您需要非常非常频繁地使用此 table 加入其他 table,例如 70% 的查询,我认为值得 space 如果你想要更好的查询性能。
如果 tables 之间的连接键在基数方面相同,那么您还可以负担得起在该键上分发所有 tables,以便相似的键位于同一节点中,这将避免数据复制。
我建议尝试上面的两个选项,并比较平均查询 运行 次大约 10 次查询,然后再做出决定。
考虑到星型模式,分配样式 All 通常用于维度 tables。这样做有利于加快连接速度,让我们通过一个例子来解释这一点。如果我们想按国家/地区获得每个产品的销售数量,我们需要在 store_id 键上加入 fact_sales 和 dim_store table。
因此,在 dim_store 上设置 diststyle all 使我们能够并行执行 JOIN 结果,这与启用 diststyle even 时混洗的劣势相比。但是,您可以通过设置 distyle auto 让 Redshift 自动处理最佳分布样式,有关更多信息,请查看 this link.