ステップ 3. 外部スキーマと外部テーブルの作成 - Amazon Redshift

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

ステップ 3. 外部スキーマと外部テーブルの作成

外部スキーマに外部テーブルを作成します。外部スキーマは、外部データカタログのデータベースを参照し、ユーザーに代わってクラスターの Amazon S3 へのアクセスを許可する IAM ロール ARN を提供します。外部データベースは、Amazon Athena データカタログ、AWS Glue データカタログ、または Amazon EMR などの Apache Hive メタストアに作成できます。この例では、外部スキーマ 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 に存在する必要があります。

    別の AWS リージョンでこの例を使用するには、Amazon S3 のコピーコマンドを使用して販売データをコピーします。次に、サンプルの CREATE EXTERNAL TABLE コマンドにあるバケットのロケーションを更新します。

    aws s3 cp s3://awssampledbuswest2/tickit/spectrum/sales/ s3://bucket-name/tickit/spectrum/sales/ --recursive
    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');