步驟 4:將資料從 Amazon S3 載入到 Amazon Redshift - Amazon Redshift

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

步驟 4:將資料從 Amazon S3 載入到 Amazon Redshift

建立叢集之後,您可以將資料從 Amazon S3 載入資料庫表格。有多種方式可以從 Amazon S3 載入資料。

  • 您可以使用 SQL 用戶端執行 SQL 建立表命令,在資料庫中建立資料表,然後使用 SQL COPY 命令從 Amazon S3 載入資料。Amazon Redshift 查詢編輯器 v2 是一個 SQL 客戶端。

  • 您可以使用 Amazon Redshift 查詢編輯器 v2 載入精靈。

本教學首先示範如何使用 Amazon Redshift 查詢編輯器 v2 來執行 SQL 命令來建立資料表和複製資料。從 Amazon Redshift 主控台導覽窗格啟動查詢編輯器 v2。在查詢編輯器 v2 中創建一個與您的管理員用戶命名devexamplecluster集群和數據庫的連接awsuser。對於此教學課程,請在建立連線時,選擇使用資料庫使用者名稱的臨時認證。有關使用 Amazon Redshift 查詢編輯器 v2 的詳細資訊,請參閱 Amazon Redshift 管理指南中的連接到 Amazon Redshift 資料庫

使用 SQL 命令從 Amazon S3 載入資料

在查詢編輯器 v2 查詢編輯器窗格中,確認您已連線至examplecluster叢集和dev資料庫。接下來,在數據庫中創建表並將數據加載到表中。在本教學中,您載入的資料可在 Amazon S3 儲存貯體中使用,可從許多人存取 AWS 區域。

下列程序會從公有 Amazon S3 儲存貯體建立資料表並載入資料。

使用 Amazon Redshift 查詢編輯器 v2 複製並執行下列建立表格陳述式,以在dev資料庫public結構描述中建立資料表。如需語法的相關資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 CREATE TABLE

若要使用 SQL 用戶端 (例如查詢編輯器 v2) 建立及載入資料
  1. 運行下面的 SQL 命令來創建sales表。

    drop table if exists sales; create table sales( salesid integer not null, listid integer not null distkey, sellerid integer not null, buyerid integer not null, eventid integer not null, dateid smallint not null sortkey, qtysold smallint not null, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp);
  2. 運行下面的 SQL 命令來創建date表。

    drop table if exists date; create table date( dateid smallint not null distkey sortkey, caldate date not null, day character(3) not null, week smallint not null, month character(5) not null, qtr character(5) not null, year smallint not null, holiday boolean default('N'));
  3. 使用 COPY 命令從 Amazon S3 加載sales表。

    注意

    我們建議您使用 COPY 命令,將大型資料集從 Amazon S3 載入到亞馬遜紅移。如需 COPY 語法的相關資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 COPY

    為您的叢集提供身分驗證,以代表您存取 Amazon S3 以載入範例資料。當您在建立叢集時選擇 [建立 IAM 角色做為預設值] 時,您可以參考您建立的 IAM 角色並設定為叢集的 IAM 角色來提供身份驗證。default

    使用下面的 SQL 命令加載sales表。您可以選擇性地從 Amazon S3 下載並檢視sales表格的來源資料。。

    COPY sales FROM 's3://redshift-downloads/tickit/sales_tab.txt' DELIMITER '\t' TIMEFORMAT 'MM/DD/YYYY HH:MI:SS' REGION 'us-east-1' IAM_ROLE default;
  4. 使用下面的 SQL 命令加載date表。您可以選擇性地從 Amazon S3 下載並檢視date表格的來源資料。。

    COPY date FROM 's3://redshift-downloads/tickit/date2008_pipe.txt' DELIMITER '|' REGION 'us-east-1' IAM_ROLE default;

使用查詢編輯器 v2 從 Amazon S3 載入資料

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

若要將自己的資料從 Amazon S3 載入到 Amazon Redshift,Amazon Redshift 需要具有所需權限的 IAM 角色,以便從指定的 Amazon S3 儲存貯體載入資料。

在本教學課程中,請先開啟 Amazon Redshift 查詢編輯器 v2,然後連線到資料庫。接下來,創建將包含加載數據的表。然後將您自己的資料從 Amazon S3 載入到 Amazon Redshift。如需如何使用查詢編輯器 v2 的詳細資訊,請參閱 Amazon Redshift 管理指南中的將資料載入資料庫

在您的叢集中建立資料

您可以透過下列方式建立完整的 TICKIT 表格集,並將資料載入叢集:

  • 在 Amazon Redshift 主控台中建立叢集時,您可以選擇同時載入樣本 TICKIT 資料。在 Amazon Redshift 主控台上,選擇 [叢集] > [建立叢集]。在「範例資料」區段中,選取「載入範例資料」,Amazon Redshift 會在叢集建立期間自動將其範例資料集載入 Amazon Redshift 叢集資料dev庫。

  • 使用 Amazon Redshift 查詢編輯器 v2,您可以將 TICKIT 資料載入名為 Sample_data_dev 的範例資料庫中。導航到 sample_data_dev 數據庫,然後導航到 tickit,然後從上下文菜單中選擇打開樣本筆記本。Amazon Redshift 查詢編輯器 v2 會建立範例資料庫以及名為 tic kit 樣本筆記本的範例筆記本。您可以執行此筆記本來查詢範例資料庫中的資料。

若要檢視有關 TICKIT 資料的詳細資料,請參閱 Amazon Redshift 資料庫開發人員指南中的範例資料庫