Amazon Redshift
数据库开发人员指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

步骤 3:创建外部架构和外部表

外部表必须在外部架构中创建。外部架构引用了外部数据目录中的数据库并提供了 IAM 角色 ARN (代表您授权您的群集访问 Amazon S3)。您可在 Amazon Athena 数据目录或 Apache Hive 元存储 (如 Amazon EMR) 中创建外部数据库。在本示例中,您将在创建外部架构 Amazon Redshift 时在 Amazon Athena 数据目录中创建外部数据库。有关更多信息,请参阅 为 Amazon Redshift Spectrum 创建外部架构

创建外部架构和外部表

  1. 要创建外部架构,请将以下命令中的 IAM 角色 ARN 替换为您在步骤 1 中创建的角色 ARN,然后在 SQL 客户端中执行该命令。

    create external schema spectrum from data catalog database 'spectrumdb' iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole' create external database if not exists;
  2. 要创建外部表,请运行以下 CREATE EXTERNAL TABLE 命令。

    注意

    在此示例中,带示例数据的 Amazon S3 存储桶位于 us-west-2 区域中。您的群集和 Redshift Spectrum 文件必须位于同一 AWS 区域中,因此,在此示例中,您的群集也必须位于 us-west-2 区域中。

    create external table spectrum.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');