列のマッピングオプション - Amazon Redshift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

列リスト

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

Amazon DynamoDB テーブルからロードする場合、順序は関係ありません。COPY コマンドは、DynamoDB テーブルから取得した項目の属性名と Amazon Redshift テーブルの列名を一致させます。詳細については、「Amazon DynamoDB テーブルからデータをロードする」を参照してください。

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

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

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

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

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

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

列がGENERATED BY DEFAULT AS IDENTITYで定義されている場合は、コピーできます。値は、指定した値で生成または更新されます。EXPLICIT_IDS オプションは必須ではありません。COPY は IDENTITY のハイウォーターマークを更新しません。詳細については、「GENERATED BY DEFAULT AS IDENTITY」を参照してください。

JSONPaths ファイル

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

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

詳細については、「JSONPaths ファイル」を参照してください。