メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

列のマッピングオプション

デフォルトでは、COPY はデータファイルで発生したフィールドと同じ順序でターゲットテーブルの列に値を挿入します。デフォルトの列順序が機能しない場合は、列リストを指定するか、JSONPath 式を使用してソースデータフィールドをターゲット列にマッピングできます。

列リスト

ソースデータフィールドを特定のターゲット列にロードするには、列名のカンマ区切りリストを指定します。COPY ステートメントで列は任意の順序に指定できますが、Amazon S3 バケットなどにあるフラットファイルからロードする場合、ソースデータの順序に一致する必要があります。Amazon DynamoDB テーブルからロードする場合、順序は関係ありません。

列リストの形式は次のとおりです。

Copy
COPY tablename (column1 [,column2, ...])

ターゲットテーブルの列が列リストから削除された場合は、ターゲット列の DEFAULT 式がロードされます。

ターゲット列にデフォルトがない場合は、COPY は NULL をロードします。

COPY を実行し、NOT NULL として定義されている列に NULL を割り当てようとすると、COPY コマンドは失敗します。

列リストに IDENTITY 列が含まれている場合、EXPLICIT_IDS も指定する必要があります。IDENTITY 列を省略した場合、EXPLICIT_IDS は指定できません。列リストを指定しない場合、コマンドは、完全で順序正しい列リストが指定されたように動作します。EXPLICIT_IDS も指定しなかった場合、IDENTITY 列は省略されます。

JSONPaths ファイル

データファイルを JSON または Avro 形式でロードする場合、COPY は Avro スキーマのフィールド名をターゲットテーブルまたは列リストの列名と一致させることで、JSON または Avro ソースデータのデータ要素をターゲットテーブルに自動的にマッピングします。

列名とフィールド名が一致しない場合、またはデータ階層のより深いレベルまでマッピングする場合は、JSONPaths ファイルを使用して明示的に JSON または Avro のデータ要素を列にマッピングできます。

詳細については、「JSONPaths file」を参照してください。

このページの内容: