Amazon Redshift
数据库开发人员指南 (API Version 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 客户端中执行该命令。

    Copy
    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 文件必须位于同一区域中,因此,在此示例中,您的群集也必须位于 us-west-2 区域中。

    Copy
    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');