Amazon Redshift
データベース開発者ガイド

分散スタイル

テーブルを作成する場合は、AUTO、EVEN、KEY、または ALL という 4 つの分散スタイルのいずれかを指定します。

分散スタイルを指定しない場合、Amazon Redshift は AUTO 分散を使用します。

AUTO 分散

AUTO 分散では、Amazon Redshift はテーブルデータのサイズに基づいて最適な分散スタイルを割り当てます。たとえば、Amazon Redshift ではまず、ALL 分散を小さなテーブルに割り当て、その後テーブルが大きくなると、EVEN 分散に変更します。テーブルが ALL から EVEN 分散に変更されると、ストレージの使用率がわずかに変わる場合があります。分散の変更は、数秒内にバックグラウンドで発生します。Amazon Redshift が分散スタイルを EVEN から ALL に変更することはありません。テーブルに適用された分散スタイルを表示するには、PG_CLASS_INFO システムカタログビューに対してクエリを実行します。詳細については、「分散スタイルの表示」を参照してください。CREATE TABLE ステートメントで分散スタイルを指定しない場合、Amazon Redshift は AUTO 分散を適用します。

EVEN 分散

リーダーノードは、特定の列の値に含まれている値にかかわらず、ラウンドロビン方式によって複数のスライス間で行を分散させます。EVEN 分散は、テーブルが結合に関与していない場合や、KEY 分散と ALL 分散のどちらを選択すべきかが明確でない場合に適切なスタイルです。

キー分散

行の分散は、特定の列に含まれている値に従って行われます。リーダーノードは、複数の一致する値を同じノードスライスに配置します。結合キーに基づいてテーブルのペアを分散する場合、リーダーノードは、結合列に含まれている値に従って行をスライスにコロケーションします。これによって、共通の列からの一致する値が物理的にまとめて格納されるようになります。

ALL 分散

テーブル全体のコピーがすべてのノードに分散されます。EVEN 分散または KEY 分散によってテーブルの一部の行のみが各ノードに配置されている場合、ALL 分散を行うと、テーブルが関与しているあらゆる結合ですべての行が確実にコロケーションされるようになります。

ALL 分散では、クラスタ内のノードの数だけ必要なストレージが増えるため、データをロードまたは更新したり、複数のテーブルに挿入したりするのに時間がかかります。ALL 分散は、比較的移動の少ないテーブル、つまり、更新頻度が低く、更新範囲が広くないテーブルに適しています。サイズの小さいディメンションテーブルの場合は、再分散コストが低いため、ALL 分散を使用しても大きなメリットが得られません。

注記

列に対して分散スタイルを指定したあと、Amazon Redshift はクラスターレベルでデータ分散を処理します。Amazon Redshift は、データベースオブジェクト内でのデータのパーティション化の概念を必要とせず、また、サポートもしていません。テーブルスペースを作成したり、テーブルのパーティション化方式を定義したりする必要はありません。

シナリオによっては、テーブルの作成後にそのテーブルの分散スタイルを変更することができます。詳細については、「ALTER TABLE」を参照してください。テーブルの作成後にテーブルの分散スタイルを変更できない場合は、テーブルを再作成して新しいテーブルにディープコピーを作成できます。詳細については、「ディープコピーを実行する」を参照してください。