データのロード操作 - Amazon Redshift

データのロード操作

次のパラメータを指定して、トラブルシューティングの際のロード操作のデフォルトの動作を管理したり、ロード時間を短縮します。

パラメータ
COMPROWS numrows

圧縮分析のサンプルサイズとして使用される行数を指定します。分析は各データスライスの行に対して実行されます。たとえば、COMPROWS 1000000(1,000,000) を指定し、システムに合計 4 つのスライスが含まれている場合、スライスごとに 250,000 行のみが読み取られ、分析されます。

COMPROWS を指定しない場合、サンプルサイズはデフォルトでスライスごとに 100,000 になります。COMPROWS の値がスライスごとに 100,000 行のデフォルト値より小さい場合、自動的にデフォルト値にアップグレードされます。ただし、ロードされるデータの量が有意のサンプルとしては不十分な場合、自動圧縮は実行されません。

COMPROWS 数が入力ファイルの行数より大きい場合でも、COPY コマンドは続行し、利用可能なすべての行で圧縮分析を実行します。この引数の許容範囲は 1000~2147483647 (2,147,483,647) の数値です。

COMPUPDATE [ PRESET | { ON | TRUE } | { OFF | FALSE } ]

COPY 実行中に圧縮エンコードを自動的に適用するかどうかを制御します。

COMPUPDATE が PRESET の場合、COPY コマンドを実行すると、ターゲットテーブルが空の場合、列に RAW 以外のエンコードが既に指定されていても、各列に圧縮エンコードが選択されます。現在指定されている列のエンコードは置き換えることができます。各列のエンコードは、列のデータタイプに基づきます。サンプリングされているデータはありません。Amazon Redshift では、次のように圧縮エンコードが自動的に割り当てられます。

  • ソートキーとして定義されている列には、RAW 圧縮が割り当てられます。

  • BOOLEAN、REAL、または DOUBLE PRECISION データ型として定義されている列には、RAW 圧縮が割り当てられます。

  • SMALLINT、INTEGER、BIGINT、DECIMAL、DATE、TIMESTAMP、または TIMESTAMPTZ として定義された列には AZ64 圧縮が割り当てられます。

  • CHAR または VARCHAR として定義された列には、LZO 圧縮が割り当てられます。

COMPUPDATE を削除して COPY コマンドを実行すると、ターゲットテーブルが空で、どの列にもエンコード (RAW は除く) を指定していない場合にのみ、各列に圧縮エンコードが選択されます。各列のエンコードは、Amazon Redshift によって決定されます。サンプリングされているデータはありません。

COMPUPDATE が ON (または TRUE) の場合、または COMPUPDATE がオプションなしで指定されている場合は、テーブルの列に RAW 以外のエンコードがすでに指定されていても、テーブルが空であれば COPY によって自動圧縮が適用されます。現在指定されている列のエンコードは置き換えることができます。列ごとのエンコードは、サンプルデータの分析によって異なります。詳細については、「自動圧縮ありでテーブルをロードする」を参照してください。

COMPUPDATE OFF (または FALSE) の場合、自動圧縮は無効になります。列のエンコードを変更することはできません。

圧縮を分析するシステムテーブルの詳細については、「STL_ANALYZE_COMPRESSION」を参照してください。

IGNOREALLERRORS

このオプションを指定すると、ロードオペレーション中に発生したすべてのエラーを無視します。

MAXERROR オプションを指定している場合は、IGNOREALLERRORS オプションを指定することはできません。ORC や Parquet の列形式に対しては、IGNOREALLERRORS オプションを指定できません。

MAXERROR [AS] error_count

ロードのエラー数が error_count 以上である場合、ロードは失敗します。ロードのエラーがそれより少ない場合、処理は続行され、ロードできなかった行数を示す INFO メッセージが返されます。データの形式エラーやその他の不整合のために一部の行をテーブルにロードできないときにロードを継続するには、このパラメータを使用します。

最初のエラーが発生したときにロードを失敗させる場合、この値を 0 または 1 に設定します。AS キーワードはオプションです。MAXERROR のデフォルト値は 0、そしてその限度は 100000 です。

Amazon Redshift の並列処理のため、報告される実際のエラー数が指定された MAXERROR より大きくなることがあります。Amazon Redshift クラスターのノードで MAXERROR を超えたことが検出された場合、各ノードは発生したすべてのエラーを報告します。

NOLOAD

データを実際にロードせずにデータファイルの有効性をチェックします。実際にデータロードを実行せずに、エラーなしでデータファイルがロードされることを確認するには、NOLOAD パラメータを使用します。NOLOAD パラメータと共に COPY を実行すると、ファイルを解析するだけであるため、データのロードよりはるかに高速になります。

STATUPDATE [ { ON | TRUE } | { OFF | FALSE } ]

COPY コマンドが成功したとき最後に行う自動計算とオプティマイザ統計の更新を制御します。デフォルトでは、STATUPDATE パラメータを使用しない場合、テーブルが最初は空ならば、統計は自動的に更新されます。

データを空ではないテーブルに入れるとテーブルのサイズが大きく変化する場合は、常に ANALYZE コマンドを実行するか STATUPDATE ON 引数を使用して統計を更新することをお勧めします。

STATUPDATE ON (または TRUE) の場合、テーブルが最初に空であるかどうかに関係なく、統計は自動的に更新されます。STATUPDATE を使用する場合、現在のユーザーはテーブル所有者またはスーパーユーザーであることが必要です。STATUPDATE を指定しない場合、INSERT 権限のみ必要です。

STATUPDATE OFF (または FALSE) を使用すると、統計は更新されません。

詳細については、「テーブルを分析する」を参照してください。