欄映射選項 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

欄映射選項

根據預設,COPY 會依欄位在資料檔案中出現的同樣順序,將值插入目標資料表的欄。如果預設欄順序不適用,您可以指定欄清單或使用 JSONPath 表達式,將來源資料欄位映射至目標欄。

資料欄清單

您可以指定逗號分隔的欄名稱清單,以便將來源資料欄位載入特定的目標欄。COPY 語句中的欄可以是任何順序,但從庫存檔 (例如 Amazon S3 儲存貯體) 載入時,欄的順序必須符合來源資料的順序。

從 Amazon DynamoDB 資料表載入時,訂單並不重要。COPY 命令會將從 DynamoDB 資料表中檢索到的項目中的屬性名稱,與 Amazon Redshift 資料表中的欄名稱進行比對。如需詳細資訊,請參閱「」從 Amazon DynamoDB 資料表載入資料

欄清單的格式如下。

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

如果從欄清單中省略目標資料表的某一欄,COPY 會載入目標欄的 DEFAULT 表達式。

如果目標欄沒有預設值,COPY 會嘗試載入 NULL。

如果 COPY 嘗試將 NULL 指派給定義為 NOT NULL 的欄,COPY 命令會失敗。

如果IDENTITY列中包含在列列表中,則EXPLICIT_IDS;如果 IDENTITY 欄遭省略,則不能指定 EXPLICIT_IDS。如果未指定欄清單,則命令的行為會如同已指定完整、按順序的欄清單一樣,而如果也未指定 EXPLICIT_IDS,則會 IDENTITY 欄會遭到省略。

如果資料欄是使用 GENERATED BY DEFAULT AS IDENTITY 定義的,則可以複製它。值是利用您提供的值來產生或更新。EXPLICIT_IDS 不是必要選項。COPY 不會更新身分高浮水印。如需詳細資訊,請參閱 GENERATED BY DEFAULT AS IDENTITY

JSONPaths 檔案

從格式為 JSON 或 Avro 的資料檔案載入時,COPY 會自動將 JSON 或 Avro 來源資料中的資料元素映射至目標資料表的欄。為此,請將 Avro 結構描述中的欄位名稱與目標資料表或欄清單中的欄名稱進行比對。

在某些情況下,欄名稱和欄位名稱不符,或您需要映射至資料階層中更深的層級。在此類情況下,您可以使用 JSONPaths 檔案,以明確地將 JSON 或 Avro 資料元素映射至欄。

如需詳細資訊,請參閱 JSONPaths 檔案