本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從已壓縮和未壓縮的檔案載入資料
載入壓縮的資料時,建議您將每個資料表的資料分割為多個檔案。當您載入未壓縮的分隔資料時,COPY命令會使用大規模平行處理 (MPP) 和掃描範圍,從 Amazon S3 儲存貯體中的大型檔案載入資料。
從多個壓縮的檔案載入資料
如果您有壓縮的資料,建議您將每個資料表的資料分割為多個檔案。COPY 命令可以平行載入多個檔案的資料。您可以透過為集合指定通用字首或字首索引鍵,或在資訊清單檔案中明確列出檔案來載入多個檔案。
將您的資料分割為檔案,使得檔案的數量為您的叢集中配量數量的倍數。以該方式,Amazon Redshift 可以在配量間平均分割資料。每一節點的配量數目取決於叢集的節點大小。例如,每個 dc2.large 運算節點有兩個層,每個 dc2.8xlarge 運算節點有 16 個層。如需每個節點大小有多少配量的相關資訊,請參閱《Amazon Redshift 管理指南》中的關於叢集和節點。
節點全部會參與在執行的平行查詢中,以處理盡可能平均地分佈於配量的資料。如果您有具有兩個 dc2.large 節點的叢集,您可以將資料分割為四個檔案或四個檔案的倍數。Amazon Redshift 在分割工作負載時,不會考量檔案大小。因此,您需要確定壓縮後的檔案大小大致相同 (從 1 MB 到 1 GB)。
若要使用物件字首來識別載入檔案,將每個檔案以通用字首命名。例如,venue.txt
檔案可以分割為四個檔案,如下所示。
venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4
如果您將多個檔案放入儲存貯體的資料夾中,並將資料夾名稱指定為字首, 會COPY載入資料夾中的所有檔案。如果您使用資訊清單檔案明確列出要載入的檔案,檔案可以位在不同的儲存貯體或資料夾中。
如需資訊清單檔案的相關資訊,請參閱Example: COPY from Amazon S3 using a manifest。
從未壓縮的已分隔檔案載入資料
當您載入未壓縮的分隔資料時,COPY命令會使用 Amazon Redshift 中的大規模平行處理 (MPP) 架構。Amazon Redshift 會自動使用平行運作的配量,以從 Amazon S3 儲存貯體中的大型檔案中載入資料範圍。檔案必須已分隔,才能進行平行載入。例如,以縱線字元分隔。使用 COPY命令的自動平行資料載入也可用於 CSV 檔案。您可以藉由在資料表上設定分佈索引鍵來利用平行處理。如需分佈索引鍵的相關資訊,請參閱查詢最佳化的資料分佈。
當COPY查詢包含下列任何關鍵字時,不支援自動REMOVEQUOTES平行資料載入:ESCAPE、 和 FIXEDWIDTH。
來自檔案的資料會載入到目標資料表,每個資料列一行。資料檔案中的欄位會依次與資料表資料欄對應,由左至右。資料檔案中的欄位可以是固定寬度或以字元分隔;預設的分隔符號為管線 (|)。依預設,所有資料表資料欄已載入,但您可以選擇性地定義以逗點分隔的資料欄清單。如果 COPY命令中指定的資料欄清單中不包含資料表資料欄,則會載入預設值。如需詳細資訊,請參閱載入預設的欄位值。
如果資料未壓縮也未分隔時,請遵循以下一般程序從 Amazon S3 載入資料:
-
將檔案上傳至 Amazon S3。
-
執行COPY命令以載入資料表。
-
驗證資料已正確載入。
如需COPY命令的範例,請參閱 COPY 範例。如需載入 Amazon Redshift 的資料相關資訊,請檢查 STL_LOAD_COMMITS 和 STL_LOAD_ERRORS 系統資料表。
如需有關節點及每個節點所含配量的相關資訊,請參閱《Amazon Redshift 管理指南》中的關於叢集和節點。