指定分佈樣式 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

指定分佈樣式

本節中指定分佈樣式的考量和建議會使用星狀結構描述做為範例。您的資料庫設計可能根據星狀結構描述、某個星狀結構描述變體,或完全不同的結構描述。Amazon Redshift 旨在與您選擇的任何架構設計有效地配合使用。本節中的原理適用於任何設計結構描述。

  1. 指定您的所有資料表的主要索引鍵和外部索引鍵。

    Amazon Redshift 不會強制執行主要索引鍵和外部索引鍵限制,但查詢最佳化器會在產生查詢計劃時使用這些限制。如果您設定主要索引鍵和外部索引鍵,則您的應用程式必須維護索引鍵的有效性。

  2. 將事實資料表與其最大維度資料表配送至它們的通用欄位。

    根據參與最常用聯結的資料集大小,而不只是資料表的大小來選擇最大維度。如果通常使用 WHERE 子句來篩選資料表,則只有其資料列的一部分參與聯結。這類資料表對重新分佈比提供更多資料的更小資料表具有更少的影響。將維度資料表的主索引鍵與事實資料表的對應外部索引鍵指定為 DISTKEY。如果多個資料表使用相同的分佈索引鍵,它們也會與事實資料表共置。您的事實資料表只能有一個分佈索引鍵。聯結其他索引鍵的任何資料表都不會與事實資料表共置。

  3. 指定其他維度資料表的分佈索引鍵。

    根據其主要索引鍵或外部索引鍵來分佈資料表,取決於它們最常與其他資料表聯結的方式。

  4. 評估是否將一些維度資料表變更為使用 ALL 分佈。

    如果維度資料表無法與事實資料表或其他重要的聯結資料表共置,您可以藉由將整個資料表發佈至所有節點,以大幅提升查詢效能。使用 ALL 分佈會增加儲存空間要求,並增加載入時間與維護操作,因此在選擇 ALL 分佈之前,您應權衡所有因素。下節說明如何評估 EXPLAIN 計劃來識別 ALL 分佈的候選者。

  5. 對其餘資料表使用 EVEN 分佈。

    如果資料表大部分去正規化且未參與聯結,或如果您未明確選擇另一個分佈樣式,請使用 EVEN 分佈。

若要讓 Amazon Redshift 選擇適當的分佈樣式,請不要明確指定分佈樣式。