我在Redshift中有一个星型模式,出于某些BI目的,我试图通过将事实表与维度表连接来创建一个平面表。两个表都很大,事实表大约是1TB,维度表大约是10GB。
当我运行连接查询时,查询失败,即使我可以确认红移群集中有空间。暂时完成该过程我通过一次添加一列来运行连接。
根据我的理解,当连接查询正在运行时,空间要求非常高,一旦连接完成,空间就会停止。
有人能建议一种有效的方式来完成这种加入吗?
答案 0 :(得分:1)
您可以为查询分配更多内存,并将wlm_query_slot_count(http://docs.aws.amazon.com/redshift/latest/dg/r_wlm_query_slot_count.html)设置为更高的值。
另外,检查是否有意义使用DIST_ALL(http://docs.aws.amazon.com/redshift/latest/dg/c_choosing_dist_sort.html)在所有节点上复制维度表。它将占用更多的磁盘空间,但它会加快连接查询。
另一种选择是将大维展平为事实表,就像您在其他DWH模式中所做的那样