我想將大量資料從 Amazon Simple Storage Service (Amazon S3) 載入到 Amazon Redshift 中,並維持最佳效能。
簡短描述
若要將資料從 Amazon S3 新增至 Amazon Redshift 資料表,您可以使用 INSERT 或 COPY 命令。但是,最佳做法是使用 COPY 命令,因為它更有效率。COPY 使用大規模平行處理 (MPP) 架構,可同時從 S3 儲存貯體中的檔案載入資料。
如需使用的其他方法,請參閱在 Amazon Redshift 中載入資料。
解決方法
執行一個 COPY 命令
只執行一個 COPY 命令來載入一個資料表。如果您使用多個並行 COPY 命令從多個檔案載入一個資料表,則 Amazon Redshift 會執行序列化載入,速度可能會變慢。
準備資料檔案
若要有效地使用 COPY 命令,您還必須準備資料檔案。檔案數量及其大小會影響平行處理能力。
如果您在 COPY 命令中指定多個檔案,Amazon Redshift 會平行載入資料。若要準備資料檔案,請確定檔案大小大致相同,範圍介於 1 MB 到 1 GB。
對於 Redshift 佈建叢集,最佳做法是使用數量為切片數量倍數的檔案。對於 Amazon Redshift Serverless,最佳做法是使用 128 倍數的檔案數量。如需詳細資訊,請參閱載入資料檔案。
若要取得 Redshift 佈建叢集的切片數,請執行下列查詢:
select count(*) from STV_SLICES where type = 'D';
**注意:**當您在 COPY 命令中指定一個未壓縮的 .csv、Parquet 或 ORC 檔案時,Amazon Redshift 會分割大於 128 MB 的檔案。
監視 COPY 命令狀態
若要檢視 COPY 命令狀態,您可以查看系統資料表。
系統資料表會記錄 COPY 命令詳細資訊,包括檔案數目、檔案大小和載入的列數。您可以監視資料表,以確定可進行的效能改進,以及 COPY 命令失敗的原因。
如需 COPY 命令的詳細資訊,請參閱 SYS_LOAD_HISTORY 和 SYS_LOAD_DETAIL。
如需有關 COPY 命令錯誤的詳細資訊,請參閱 SYS_LOAD_ERROR_DETAIL。
相關資訊
Amazon Redshift 載入資料的最佳做法
使用 COPY 命令載入資料表
從壓縮和未壓縮檔案載入資料