在 Amazon Redshift 中載入資料 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

在 Amazon Redshift 中載入資料

有數種方式可將資料載入 Amazon Redshift 資料庫中。載入資料的常用來源之一,就是 Amazon S3 檔案。下表摘要說明從 Amazon S3 來源開始搭配使用的一些方法。

使用的方法 說明 需要方法時

COPY command (COPY 命令)

執行批次檔案擷取,以從 Amazon S3 檔案載入資料。此方法利用 Amazon Redshift 的平行處理功能。如需更多詳細資訊,請參閱 使用 COPY 命令載入資料表

當需要手動初始化批次檔案擷取的基本資料載入需求時,應使用此方法。此方法大多用於自訂和第三方檔案擷取管道,或一次性或臨機操作的檔案擷取工作負載。

COPY... CREATE JOB 命令 (自動複製)

在追蹤的 Amazon S3 路徑上建立新檔案時,自動執行 COPY 命令。如需更多詳細資訊,請參閱 建立 S3 事件整合,以自動從 Amazon S3 儲存貯體複製檔案

檔案擷取管道需要在 Amazon S3 上建立新檔案時自動擷取資料的情況下,應使用此方法。Amazon Redshift 會追蹤擷取的檔案,以防止資料重複。此方法需要 Amazon S3 儲存貯體擁有者進行設定。

從資料湖查詢載入

建立外部資料表,以便對 Amazon S3 檔案執行資料湖查詢,然後執行 INSERT INTO 命令,將資料湖查詢的結果載入本機資料表。如需更多詳細資訊,請參閱 Redshift Spectrum 的外部資料表

應於下列任何案例使用:

  • 從 AWS Glue 和開放資料表格式 (例如 Apache Iceberg、Apache Hudi 或 Delta Lake) 載入。

  • 需要部分擷取來源檔案 (例如,執行 WHERE 子句以擷取特定列時所需)。

  • 擷取特定欄 (如執行 SELECT 命令) 或隨時隨地進行基本資料轉換 (例如,對來源檔案的值套用基本操作或呼叫 UDF) 所需的更多彈性。

其他可考慮的方法

串流擷取

串流擷取可從 Amazon Kinesis Data Streams 和 Amazon Managed Streaming for Apache Kafka 提供低延遲、高速擷取的串流資料給 Amazon Redshift 佈建或 Redshift Serverless 具體化視觀表。如需詳細資訊,請參閱開始使用 Amazon Kinesis Data Streams 中的串流擷取開始從 Apache Kafka 來源進行串流擷取

應考慮用於資料先串流到 Amazon S3 上的檔案,再從 Amazon S3 載入的使用案例。如果不需要將資料保留在 Amazon S3 上,您通常可以考慮直接將資料串流至 Amazon Redshift。

執行資料湖查詢

直接從資料湖資料表執行查詢,而不是將資料表的內容擷取至本機資料表。如需更多詳細資訊,請參閱 Amazon Redshift Spectrum

應用於不要求 Amazon Redshift 中本機資料表查詢之效能的使用案例。

使用 Amazon Redshift 查詢編輯器 v2 分批載入

您可以在 Amazon Redshift 查詢編輯器 v2 上,以視覺化方式準備和執行批次檔案擷取工作負載。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的從 S3 載入資料

應在您要讓查詢編輯器 v2 準備 COPY 陳述式,且您想要使用視覺化工具簡化 COPY 陳述式準備程序時使用。

使用 Amazon Redshift 查詢編輯器 v2 從本機檔案載入資料

您可以從桌面直接將檔案上傳至 Amazon Redshift 資料表,而不需要手動將檔案上傳至 Amazon S3。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的從本機檔案設定和工作流程載入資料

應在您需要快速從本機電腦載入檔案以進行一次性查詢時使用。透過此方法,Amazon Redshift 查詢編輯器 v2 會將檔案暫時儲存在客戶擁有的 Amazon S3 儲存貯體上,並使用此 Amazon S3 路徑執行複製命令。

COPY 命令是載入資料表的最有效方式。您也可以使用 INSERT 命令將資料新增至您的資料表,但與使用 COPY 相較,此方式效率明顯較低。COPY 命令能夠同時從多個資料檔案或多個資料串流中進行讀取。Amazon Redshift 會將工作負載配置到 Amazon Redshift 節點並平行執行載入操作,包括排序資料列以及將資料分配到各節點切片。

注意

Amazon Redshift Spectrum 外部資料表處於唯讀狀態。您無法 COPY 或 INSERT 至外部資料表。

若要存取其他 AWS 資源上的資料,Amazon Redshift 必須具備存取這些資源和執行必要動作來存取資料的許可。您可以使用 AWS Identity and Access Management (IAM) 來限制使用者對 Amazon Redshift 資源和資料的存取權。

初始資料載入之後,如果您新增、修改或刪除大量資料,在刪除之後,您後續應該執行 VACUUM 命令來重新組織您的資料和回收空間。您也應該執行 ANALYZE 命令來更新資料表統計資料。