本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從遠端主機載入資料
您可以使用 COPY 命令從一或多台遠端主機平行載入資料,例如 Amazon EC2 執行個體或其他電腦。COPY 會使用 SSH 連接至遠端主機,然後在遠端主機執行命令來產生文字輸出。
遠端主機可以是 Amazon EC2 Linux 執行個體,或另一台設定為接受 SSH 連線的 Unix 或 Linux 電腦。本指南假設您的遠端主機為 Amazon EC2 執行個體。當其他電腦上的程序不同時,指南將指出差異。
Amazon Redshift 可以連線到多台主機,而且可以對每台主機開啟多個 SSH 連線。Amazon Redshift 會透過每個連線傳送一個唯一的命令,將文字輸出產生到主機的標準輸出,然後 Amazon Redshift 會像讀取文字檔一樣讀取該輸出。
開始之前
開始之前,您應該備妥下列各項:
-
您可以使用 SSH 連線的一或多個主機,例如 Amazon EC2 執行個體。
-
主機上的資料來源。
您將提供 Amazon Redshift 叢集將在主機上執行以產生文字輸出的命令。叢集連線至主機之後,COPY 命令會執行這些命令,讀取來自主機標準輸出的文字,以及並行載入資料至 Amazon Redshift 資料表。文字輸出必須採用 COPY 命令可以擷取的格式。如需更多資訊,請參閱 準備您的輸入資料
-
從您的電腦存取主機。
針對 Amazon EC2 執行個體,您將使用 SSH 連線來存取主機。您將需要存取主機以將 Amazon Redshift 叢集的公有金鑰新增至主機的授權金鑰檔案。
-
執行中的 Amazon Redshift 叢集。
如需如何啟動叢集的相關資訊,請參閱《Amazon Redshift 入門指南》https://docs.aws.amazon.com/redshift/latest/gsg/。
載入資料程序
本節會逐步演練如何從從遠端主機載入資料的程序。下列小節提供每個步驟中必須完成的詳細資訊。
-
公有金鑰可讓 Amazon Redshift 叢集節點與遠端主機建立 SSH 連線。您將使用每個叢集節點的 IP 地址來設定主機安全群組或防火牆,以允許使用這些 IP 地址從您的 Amazon Redshift 叢集存取。
-
步驟 2:將 Amazon Redshift 叢集公有金鑰新增至主機的授權金鑰檔案
您可以將 Amazon Redshift 叢集公有金鑰新增至主機的授權金鑰檔案,以便主機識別 Amazon Redshift 叢集並接受 SSH 連線。
-
步驟 3:設定主機以接受所有 Amazon Redshift 叢集的 IP 地址
針對 Amazon EC2,請修改執行個體的安全群組,以新增傳入規則來接受 Amazon Redshift IP 地址。針對其他主機,修改防火牆使得您的 Amazon Redshift 節點可以與遠端主機建立 SSH 連線。
-
您可以選擇性地指定 Amazon Redshift 應該使用公有金鑰來識別主機。您必須找到公有金鑰,並將文字複製到您的資訊清單檔案。
-
清單檔案是 JSON 格式的文字檔案,具有 Amazon Redshift 連線至主機和擷取資料所需的詳細資訊。
-
Amazon Redshift 會讀取清單檔案,並使用該資訊來連線至遠端主機。如果 Amazon S3 儲存貯體不是位於與 Amazon Redshift 叢集所在的同一區域,您必須使用 REGION 選項來指定資料所在的區域。
-
從 Amazon Redshift 資料庫,執行 COPY 命令以將資料載入至 Amazon Redshift 資料表。