步驟 3:建立外部結構描述與外部資料表 - Amazon Redshift

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

步驟 3:建立外部結構描述與外部資料表

在外部結構描述中建立外部資料表。外部結構描述參考外部資料目錄中的資料庫,並提供授權您的叢集代表您存取 Amazon S3 的 IAM 角色 ARN。您可以在 Amazon Athena 資料目錄中建立外部資料庫,AWS Glue Data Catalog或 Apache Hive 中繼存放區,例如 Amazon EMR。在此範例中,當您建立外部結構描述時,在 Amazon Athena 資料目錄中建立外部 Amazon Redshift 庫。如需詳細資訊,請參閱 建立 Amazon Redshift Spectrum 的外部結構描述

建立外部結構描述與外部資料表

  1. 如要建立外部結構描述,請將以下命令中的 IAM 角色 ARN 替換為您在步驟 1 中建立的角色 ARN。然後,在您的 SQL 用戶端中執行命令。

    create external schema myspectrum_schema from data catalog database 'myspectrum_db' iam_role 'arn:aws:iam::123456789012:role/myspectrum_role' create external database if not exists;
  2. 若要建立外部資料表,請執行以下 CREATE EXTERNAL TABLE 命令。

    注意

    包含此範例的範例資料的 Amazon S3 儲存貯體位於 us-west-2 區域。您的叢集與 Redshift Spectrum 檔案必須在相同的AWS區域中繼存放區域,因此在此範例中,您的叢集也必須位於 us-west-2 中。

    若要將此示例用於不同的AWS區域,您可以使用 Amazon S3 複製命令複製銷售資料。然後更新範例 CREATE EXTERNAL TABLE 命令中儲存貯體的位置。

    aws s3 cp s3://awssampledbuswest2/tickit/spectrum/sales/ s3://bucket-name/tickit/spectrum/sales/ --recursive
    create external table myspectrum_schema.sales( salesid integer, listid integer, sellerid integer, buyerid integer, eventid integer, dateid smallint, qtysold smallint, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp) row format delimited fields terminated by '\t' stored as textfile location 's3://awssampledbuswest2/tickit/spectrum/sales/' table properties ('numRows'='172000');