メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

一時的に使用するステージングテーブルを作成する

ステージングテーブルは、ターゲットテーブルを変更 (更新、挿入含む) する際に使用するデータすべてを一時的に保持するためのテーブルです。

マージ操作では、ステージングテーブルとターゲットテーブルを結合する必要があります。結合する列をコロケーションするには、ステージングテーブルの分散キーを、ターゲットテーブルの分散キーと同じ列に設定する必要があります。たとえば、ターゲットテーブルが分散キー列に外部キーを使用している場合には、ステージングテーブルの分散キーと同じ列を使用する必要があります。CREATE TABLE LIKE ステートメントを使用してステージングテーブルを作成すると、ステージングテーブルが親テーブルから分散キーを継承します。CREATE TABLE AS ステートメントを使用する場合、新しいテーブルは分散キーを継承しません。詳細については、「データ分散スタイルの選択」を参照してください。

分散キーがプライマリキーと異なり、マージ操作の一環として分散キーが更新されない場合には、分散キー列の冗長結合述語を追加し、コロケーテッド結合を実現します。(例:

Copy
where target.primarykey = stage.primarykey and target.distkey = stage.distkey

クエリでコロケーテッド結合を使用するかどうかを確認するには、EXPLAIN を使用してクエリを実行し、結合すべてに DS_DIST_NONE があるかどうかを確認します。詳細については、「クエリプランの評価」を参照してください。