本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
欄映射選項
依預設, 會以與資料檔案中欄位相同的順序,將值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 格式的資料檔案載入時, JSON或 Avro 來源資料中的資料元素COPY會自動對應至目標資料表中的資料欄。它會比對 Avro 結構定義中的欄位名稱與目標資料表或欄清單中的欄名稱,以達到這個目標。
在某些情況下,您的欄名稱和欄位名稱不相符,或者您需要映射至資料階層中的更深層級。在這些情況下,您可以使用JSONPaths檔案將 JSON或 Avro 資料元素明確映射至資料欄。
如需詳細資訊,請參閱JSONPaths 檔案。