STATUPDATE がオフのときに Amazon Redshift が COPY ANALYZE プロセスを実行するのはなぜですか?

所要時間1分
0

COPY コマンドを使用して Amazon Redshift の新しいテーブルにデータをロードしようとしました。COMPUPDATE OFF パラメータも追加しました。COPY ANALYZE がまだ実行されているのはなぜですか?

簡単な説明

Amazon Redshift でテーブルを作成する前に、テーブルのディストリビューションスタイルを選択します。テーブルがディストリビューションスタイルを指定しない場合、デフォルトで AUTO ディストリビューションになります。その後、Amazon Redshift の AUTO ディストリビューション機能は COPY ANALYZE プロセスを使用して、テーブルで EVEN または ALL ディストリビューションを使用するかどうかを判断します。

注: COMPUPDATE OFF パラメータは、引き続き AUTO ディストリビューションスタイルを使用するテーブルで COPY ANALYZE を実行します。STATUPDATE OFF パラメータは COPY ANALYZE コマンドを無効にしたり、抑制したりしません。

解決方法

1.    SHOW TABLE を実行して、テーブルの現在の分散スタイルを確認します。

SHOW TABLE [schema_name.]table_name

注: デフォルトでは、CREATE TABLE ステートメントでディストリビューションスタイルが指定されていない場合、Amazon Redshift は AUTO ディストリビューションを適用します。

2.    AUTO ディストリビューションがオンになっている場合は、定義されたディストリビューションスタイルを使用してテーブルを作成します。ディストリビューションスタイルを指定すると、COPY ANALYZE が実行されなくなります。

次の例では、EVEN ディストリビューションスタイルを指定します。

create table rs_example_test (id int)diststyle even;

ディストリビューションスタイルの詳細については、「データディストリビューションスタイルの操作」を参照してください。

3.    COPY コマンドを使用してデータをテーブルにロードし、STATUPDATE OFF パラメータを追加します。

注: 個別の INSERT ステートメントを使用する代わりに、COPY コマンドを使用して大量のデータをロードすることをお勧めします。これにより、パフォーマンスの問題が発生するリスクを最小限に抑えることができます。

4.    SVL_STATEMENTTEXT システムテーブルに対してクエリを実行し、セッションに関連するプロセス ID (PID) でフィルタリングします。

select userid, xid, pid, trim(label) as label, starttime, endtime, sequence, trim(type) as type, left(text,60) text from svl_statementtext where pid = 26815 order by xid, starttime, sequence;

上記の構文は、COPY ANALYZECOPY トランザクションの一部として実行されたかどうかをチェックします。

出力は次のようになります。

userid      xid            pid    label      starttime            endtime               sequence     type      text
100       78915    26815   default      2019-03-19  14:06:19    2019-03-19 14:06:21   0             QUERY      copy rs_test3 from 's3://xxxxx-rs-log/AWSLogs/rs_test2.csv'\
100       78915    26815   default      2019-03-19  14:06:21    2019-03-19 14:06:21   0             UTILITY  COMMIT

これにより、COPY ANALYZECOPY トランザクションの一部として実行されなくなったことが確認されます。


関連情報

ステージングテーブルを使用したマージ (アップサート) の実行

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ