將資料載入到資料庫 - Amazon Redshift

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

將資料載入到資料庫

您可以使用查詢編輯器 v2 將資料載入到 Amazon Redshift 叢集或工作群組中的資料庫。

載入範例資料

查詢編輯器 v2 隨附範例資料和筆記本,可供您載入到範例資料庫和對應的結構描述。

若要載入範例資料,請選擇與您要載入的範例資料相關聯的 External 圖示。然後,查詢編輯器 v2 便會將資料載入到資料庫 sample_data_dev 中的結構描述,並在 Notebooks 資料夾中建立已儲存筆記本的資料夾。

以下是可用的範例資料集。

tickit

Amazon Redshift 文件中的多數範例都使用名為 tickit 的範本資料。這份資料包含七個資料表:兩個事實資料表和五個維度資料表。在載入這份資料時,系統便會以範例資料更新結構描述 tickit。如需 tickit 資料的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的範例資料庫

tpch

這份資料會用於決策支援基準。在載入這份資料時,系統便會以範例資料更新結構描述 tpch。如需 tpch 資料的詳細資訊,請參閱 TPC-H

tpcds

這份資料會用於決策支援基準。在載入這份資料時,系統便會以範例資料更新結構描述 tpcds。如需 tpcds 資料的詳細資訊,請參閱 TPC-DS

從 Amazon S3 載入資料

您可以將 Amazon S3 資料載入到現有資料表或新的資料表。

將資料載入到現有資料表

查詢編輯器 v2 會使用 COPY 命令從 Amazon S3 載入資料。在查詢編輯器 v2 載入資料精靈中產生和使用的 COPY 命令,支援許多可供 COPY 命令語法從 Amazon S3 進行複製的參數。如需 COPY 命令及其用於從 Amazon S3 載入資料之選項的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的從 Amazon Simple Storage Service 進行 COPY

  1. 確認您要將資料載入到其中的資料庫內已建立資料表。

  2. 確認您已連線至查詢編輯器 v2 的樹狀檢視面板中的目標資料庫後再繼續。您可以使用內容功能表 (按一下滑鼠右鍵) 對要在其中載入資料的叢集或工作群組建立連線。

    選擇 Load 載入資料

  3. 對於資料來源,選擇從 S3 儲存貯體載入

  4. S3 URI 中選擇瀏覽 S3,以尋找要載入的資料所在的 Amazon S3 儲存貯體。

  5. 如果指定的 Amazon S3 儲存貯體與目標資料表不在同一個 AWS 區域,則選擇 S3 檔案位置以指定資料所在的 AWS 區域。

  6. 如果 Amazon S3 檔案實際上是包含多個 Amazon S3 儲存貯體 URI 的資訊清單,請選擇此檔案是資訊清單檔案

  7. 為要上傳的檔案選擇檔案格式。支援的資料格式有 CSV、JSON、DELIMITER、FIXEDWIDTH、SHAPEFILE、AVRO、PARQUET 和 ORC。根據指定的檔案格式,您可以選擇相應的檔案選項。如果資料有加密,您也可以選取資料已加密,然後輸入用來加密資料之 KMS 金鑰的 Amazon Resource Name (ARN)。

    如果您選擇 CSV 或 DELIMITER」,則也可以選擇分隔符號字元,以及是否要忽略標頭資料列 (如果指定的資料列數目實際上是資料欄名稱而非要載入的資料)。

  8. 選擇壓縮方法來壓縮檔案。預設為沒有壓縮。

  9. (選擇性) 進階設定支援各種資料轉換參數載入操作。視需要為您的檔案輸入此資訊。

    如需資料轉換和資料載入參數的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的資料轉換參數資料載入操作

  10. 選擇 Next (下一步)

  11. 選擇載入現有資料表

  12. 確認或選擇在其中載入資料的目標資料表的位置,包括叢集或工作群組資料庫結構描述以及資料表名稱。

  13. 選擇具有從 Amazon S3 載入資料所需許可的 IAM 角色

  14. (選擇性) 選擇資料欄名稱,在資料欄映射中輸入以依照輸入資料檔案的順序映射資料欄。

  15. 選擇載入資料以開始載入資料。

    當載入完成時,查詢編輯器會顯示所產生來載入資料的 COPY 命令。系統會顯示 COPY 的結果。如果成功,您便可立即使用 SQL 從所載入的資料表中選取資料。如果發生錯誤,請查詢系統檢視 STL_LOAD_ERRORS 以取得更多詳細資訊。如需有關 COPY 命令錯誤的資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 STL_LOAD_ERRORS

當您將資料載入到新的資料表時,查詢編輯器 v2 會先在資料庫中建立資料表,再於相同工作流程中以個別動作的形式載入資料。

將資料載入到新的資料表

查詢編輯器 v2 會使用 COPY 命令從 Amazon S3 載入資料。在查詢編輯器 v2 載入資料精靈中產生和使用的 COPY 命令,支援許多可供 COPY 命令語法從 Amazon S3 進行複製的參數。如需 COPY 命令及其用於從 Amazon S3 載入資料之選項的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的從 Amazon Simple Storage Service 進行 COPY

  1. 確認您已連線至查詢編輯器 v2 的樹狀檢視面板中的目標資料庫後再繼續。您可以使用內容功能表 (按一下滑鼠右鍵) 對要在其中載入資料的叢集或工作群組建立連線。

    選擇 Load 載入資料

  2. 對於資料來源,選擇從 S3 儲存貯體載入

  3. S3 URI 中選擇瀏覽 S3,以尋找要載入的資料所在的 Amazon S3 儲存貯體。

  4. 如果指定的 Amazon S3 儲存貯體與目標資料表不在同一個 AWS 區域,則選擇 S3 檔案位置以指定資料所在的 AWS 區域。

  5. 如果 Amazon S3 檔案實際上是包含多個 Amazon S3 儲存貯體 URI 的資訊清單,請選擇此檔案是資訊清單檔案

  6. 為要上傳的檔案選擇檔案格式。支援的資料格式有 CSV、JSON、DELIMITER、FIXEDWIDTH、SHAPEFILE、AVRO、PARQUET 和 ORC。根據指定的檔案格式,您可以選擇相應的檔案選項。如果資料有加密,您也可以選取資料已加密,然後輸入用來加密資料之 KMS 金鑰的 Amazon Resource Name (ARN)。

    如果您選擇 CSV 或 DELIMITER」,則也可以選擇分隔符號字元,以及是否要忽略標頭資料列 (如果指定的資料列數目實際上是資料欄名稱而非要載入的資料)。

  7. 選擇壓縮方法來壓縮檔案。預設為沒有壓縮。

  8. (選擇性) 進階設定支援各種資料轉換參數載入操作。視需要為您的檔案輸入此資訊。

    如需資料轉換和資料載入參數的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的資料轉換參數資料載入操作

  9. 選擇 Next (下一步)

  10. 選擇載入新資料表

    資料表資料欄會從輸入資料推斷而來。您可以透過新增資料欄和資料表詳細資訊,修改資料表結構描述的定義。若要還原至查詢編輯器 v2 推斷的資料表結構描述,請選擇還原為預設值

  11. 確認或選擇在其中載入資料的目標資料表的位置,包括叢集或工作群組資料庫結構描述。輸入要建立的資料表名稱。

  12. 選擇具有從 Amazon S3 載入資料所需許可的 IAM 角色

  13. 選擇建立資料表,使用所顯示的定義建立資料表。

    此時會顯示資料表定義的檢閱摘要。資料表會建立到資料庫中。稍後若要刪除資料表,請執行 DROP TABLE SQL 命令。如需詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 DROP TABLE

  14. 選擇載入資料以開始載入資料。

    當載入完成時,查詢編輯器會顯示所產生來載入資料的 COPY 命令。系統會顯示 COPY 的結果。如果成功,您便可立即使用 SQL 從所載入的資料表中選取資料。如果發生錯誤,請查詢系統檢視 STL_LOAD_ERRORS 以取得更多詳細資訊。如需有關 COPY 命令錯誤的資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 STL_LOAD_ERRORS

從本機檔案設定和工作流程載入資料

您可以將資料從本機檔案載入到現有資料表或新的資料表。

從本機檔案載入資料的管理員設定

您的查詢編輯器 v2 管理員必須在帳戶設定視窗中指定常用的 Amazon S3 儲存貯體。您必須已為帳戶使用者設定適當的許可。

  • 必要的 IAM 許可 — 從本機檔案載入資料的使用者必須具有 s3:ListBuckets3:GetBucketLocations3:putObjects3:getObjects3:deleteObject 許可。您可以指定 optional-prefix,以限制只有具有此字首的物件能透過查詢編輯器 v2 使用此儲存貯體。如果您透過查詢編輯器 v2 以外的工具使用這個相同的 Amazon S3 儲存貯體,便可以使用此選項。如需儲存貯體和字首的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的管理使用者對特定資料夾的存取。為了確保系統不會允許跨使用者的資料存取,建議查詢編輯器 v2 管理員使用 Amazon S3 儲存貯體政策來根據 aws:userid 限制物件的存取。下列範例會向字首為 aws:userid 的 Amazon S3 物件允許具有唯讀/唯寫存取權限的 <staging-bucket-name> Amazon S3 許可。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<staging-bucket-name>" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*" ] } ] }
  • 資料分隔 — 建議不要讓使用者擁有存取彼此資料的權限 (即使很短暫也不行)。從本機檔案載入的方式會使用查詢編輯器 v2 管理員所設定的暫存 Amazon S3 儲存貯體。請設定暫存儲存貯體的儲存貯體政策,以在使用者之間提供資料分隔機制。下列範例顯示的儲存貯體政策會在 <staging-bucket-name> 的使用者之間分隔資料。

    { "Version": "2012-10-17", "Statement": [ {"Sid": "userIdPolicy", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "NotResource": [ "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*" ] } ] }

從本機檔案載入資料

將本機檔案的資料載入到現有資料表

查詢編輯器 v2 管理員必須在帳戶設定視窗中指定通用的 Amazon S3 儲存貯體。查詢編輯器 v2 會自動將本機檔案上傳到您帳戶使用的通用 Amazon S3 儲存貯體,然後使用 COPY 命令載入資料。查詢編輯器 v2 的載入本機檔案視窗所產生和執行的 COPY 命令,支援許多可供 COPY 命令語法從 Amazon S3 進行複製的參數。如需 COPY 命令及其用於從 Amazon S3 載入資料之選項的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的從 Amazon S3 進行 COPY

  1. 確認您要將資料載入到其中的資料庫內已建立資料表。

  2. 確認您已連線至查詢編輯器 v2 的樹狀檢視面板中的目標資料庫。您可以使用內容功能表 (按一下滑鼠右鍵) 對要在其中載入資料的叢集或工作群組建立連線。

  3. 選擇 Load 載入資料

  4. 對於資料來源,選擇從本機檔案載入

  5. 選擇瀏覽以尋找包含要載入檔案之資料的檔案。依預設,系統會顯示副檔名為 .csv.avro.parquet.orc 的檔案,但您也可以選擇其他檔案類型。檔案大小上限為 5 MB。

  6. 為要上傳的檔案選擇檔案格式。支援的資料格式有 CSV、JSON、DELIMITER、FIXEDWIDTH、SHAPEFILE、AVRO、PARQUET 和 ORC。根據指定的檔案格式,您可以選擇相應的檔案選項。如果資料有加密,您也可以選取資料已加密,然後輸入用來加密資料之 KMS 金鑰的 Amazon Resource Name (ARN)。

    如果您選擇 CSV 或 DELIMITER」,則也可以選擇分隔符號字元,以及是否要忽略標頭資料列 (如果指定的資料列數目實際上是資料欄名稱而非要載入的資料)。

  7. (選擇性) 進階設定支援各種資料轉換參數載入操作。視需要為您的檔案輸入此資訊。

    如需資料轉換和資料載入參數的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的資料轉換參數資料載入操作

  8. 選擇 Next (下一步)

  9. 選擇載入現有資料表

  10. 確認或選擇在其中載入資料的目標資料表的位置,包括叢集或工作群組資料庫結構描述以及資料表名稱。

  11. (選擇性) 您可以選擇資料欄名稱,在資料欄映射中輸入以依照輸入資料檔案的順序映射資料欄。

  12. 選擇載入資料以開始載入資料。

    載入完成時,無論載入是否成功,系統都會顯示訊息。如果成功,您便可立即使用 SQL 從所載入的資料表中選取資料。如果發生錯誤,請查詢系統檢視 STL_LOAD_ERRORS 以取得更多詳細資訊。如需有關 COPY 命令錯誤的資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 STL_LOAD_ERRORS

    用來載入資料的 COPY 命令範本會出現在您的查詢歷史記錄中。此 COPY 命令範本會顯示一些已使用的參數,但其無法直接在編輯器索引標籤中執行。如需查詢歷史記錄的詳細資訊,請參閱檢視查詢和標籤歷史記錄

當您將資料載入到新的資料表時,查詢編輯器 v2 會先在資料庫中建立資料表,再於相同工作流程中以個別動作的形式載入資料。

將本機檔案資料載入到新的資料表

您的查詢編輯器 v2 管理員必須在帳戶設定視窗中指定常用的 Amazon S3 儲存貯體。本機檔案會自動上傳到您帳戶使用的通用 Amazon S3 儲存貯體,然後查詢編輯器 v2 會使用 COPY 命令載入資料。查詢編輯器 v2 的載入本機檔案視窗所產生和執行的 COPY 命令,支援許多可供 COPY 命令語法從 Amazon S3 進行複製的參數。如需 COPY 命令及其用於從 Amazon S3 載入資料之選項的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的從 Amazon S3 進行 COPY

  1. 確認您已連線至查詢編輯器 v2 的樹狀檢視面板中的目標資料庫。您可以使用內容功能表 (按一下滑鼠右鍵) 對要在其中載入資料的叢集或工作群組建立連線。

  2. 選擇 Load 載入資料

  3. 對於資料來源,選擇從本機檔案載入

  4. 選擇瀏覽以尋找包含要載入檔案之資料的檔案。依預設,系統會顯示副檔名為 .csv.avro.parquet.orc 的檔案,但您也可以選擇其他檔案類型。檔案大小上限為 5 MB。

  5. 為要上傳的檔案選擇檔案格式。支援的資料格式有 CSV、JSON、DELIMITER、FIXEDWIDTH、SHAPEFILE、AVRO、PARQUET 和 ORC。根據指定的檔案格式,您可以選擇相應的檔案選項。如果資料有加密,您也可以選取資料已加密,然後輸入用來加密資料之 KMS 金鑰的 Amazon Resource Name (ARN)。

    如果您選擇 CSV 或 DELIMITER」,則也可以選擇分隔符號字元,以及是否要忽略標頭資料列 (如果指定的資料列數目實際上是資料欄名稱而非要載入的資料)。

  6. (選擇性) 進階設定支援各種資料轉換參數載入操作。視需要為您的檔案輸入此資訊。

    如需資料轉換和資料載入參數的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的資料轉換參數資料載入操作

  7. 選擇 Next (下一步)

  8. 選擇載入新資料表

  9. 確認或選擇在其中載入資料的目標資料表的位置,包括叢集或工作群組資料庫結構描述。輸入要建立的資料表名稱。

  10. 選擇建立資料表,使用所顯示的定義建立資料表。

    此時會顯示資料表定義的檢閱摘要。資料表會建立到資料庫中。稍後若要刪除資料表,請執行 DROP TABLE SQL 命令。如需詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 DROP TABLE

  11. 選擇載入資料以開始載入資料。

    載入完成時,會顯示訊息以指出載入是否成功。如果成功,您便可立即使用 SQL 從所載入的資料表中選取資料。如果發生錯誤,請查詢系統檢視 STL_LOAD_ERRORS 以取得更多詳細資訊。如需有關 COPY 命令錯誤的資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 STL_LOAD_ERRORS

    用來載入資料的 COPY 命令範本會出現在您的查詢歷史記錄中。此 COPY 命令範本會顯示一些已使用的參數,但其無法直接在編輯器索引標籤中執行。如需查詢歷史記錄的詳細資訊,請參閱檢視查詢和標籤歷史記錄