ステップ 6: Amazon S3 のサンプルデータをロードする - Amazon Redshift

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

ステップ 6: Amazon S3 のサンプルデータをロードする

これでデータベース dev を作成し、それに接続できました。次に、このデータベースにテーブルを作成し、テーブルにデータをアップロードして、クエリを実行してみます。ロードしたサンプルデータは、 Amazon S3 バケットで簡単に利用できます。

注記

SQL クライアントツールを使用している場合、SQL クライアントがクラスターに接続されていることを確認してください。

このステップを完了すると、次の操作を実行できます。

からサンプルデータをロードするには Amazon S3

  1. テーブルを作成します。

    Amazon Redshift クエリエディタを使用している場合は、次のテーブル作成ステートメントを個別にコピーして実行し、devデータベースにテーブルを作成します。構文の詳細については、の「CREATE TABLE」を参照してくださいAmazon Redshift Database Developer Guide

    create table users( userid integer not null distkey sortkey, username char(8), firstname varchar(30), lastname varchar(30), city varchar(30), state char(2), email varchar(100), phone char(14), likesports boolean, liketheatre boolean, likeconcerts boolean, likejazz boolean, likeclassical boolean, likeopera boolean, likerock boolean, likevegas boolean, likebroadway boolean, likemusicals boolean);
    create table venue( venueid smallint not null distkey sortkey, venuename varchar(100), venuecity varchar(30), venuestate char(2), venueseats integer);
    create table category( catid smallint not null distkey sortkey, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
    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'));
    create table event( eventid integer not null distkey, venueid smallint not null, catid smallint not null, dateid smallint not null sortkey, eventname varchar(200), starttime timestamp);
    create table listing( listid integer not null distkey, sellerid integer not null, eventid integer not null, dateid smallint not null sortkey, numtickets smallint not null, priceperticket decimal(8,2), totalprice decimal(8,2), listtime timestamp);
    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. COPY コマンドを使用して Amazon S3 からサンプルデータをロードします。

    注記

    Amazon Redshift または Amazon S3 から大容量のデータセットを DynamoDB にロードするために、COPY コマンドを使用することをお勧めします。COPY 構文の詳細については、の「COPY」を参照してくださいAmazon Redshift Database Developer Guide

    1. 個々のサンプルデータファイルが含まれている、tickitdb.zip ファイルをダウンロードします。

    2. 個別のファイルを解凍して、使用する tickit リージョンの Amazon S3 バケットの AWS フォルダに読み込みます。

    3. このチュートリアルの COPY コマンドを編集して、Amazon S3 バケットにあるファイルを指定します。でファイルを管理する方法についてはAmazon S3、のS3 バケットhttps://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-configure-bucket.htmlの作成と設定」を参照してくださいAmazon Simple Storage Service コンソールユーザーガイド

    4. クラスターがAmazon S3ユーザーに代わって にアクセスしてサンプルデータをロードするための認証を提供します。ロールベースの認証またはキーベースの認証を提供できます。ロールベースの認証を使用することをお勧めします。で作成した myRedshiftRole IAM ロールを使用して、 ステップ 2: IAM ロールを作成する が Amazon Redshift バケットからデータをAmazon S3ロードできるようにすることができます。認証の両方のタイプの詳細については、『』の「CREDENTIALS」を参照してくださいAmazon Redshift Database Developer Guide。

      この手順では、前の手順で作成し、クラスターにアタッチした IAM ロールを参照して、認証を提供します。

      注記

      Amazon S3 への適切なアクセス許可がない場合、COPY コマンドを実行すると、S3ServiceException: Access Denied というエラーメッセージが表示されます。COPY コマンドの IAM アクセス許可の詳細については、の「COPY」を参照してくださいAmazon Redshift Database Developer Guide

      COPY コマンドには、次の例のように、IAM ロールの Amazon リソースネーム (ARN)、バケット名、AWS リージョンのプレースホルダーが含まれます。

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';

      IAM ロールを使用してアクセスを許可するには、CREDENTIALS パラメータ文字列の <iam-role-arn> を、ステップ 2: IAM ロールを作成する で作成した IAM ロールのロール ARN と置き換えます。

      COPY コマンドは、次の例のようになります。

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' credentials 'aws_iam_role=arn:aws:iam::123456789012:role/myRedshiftRole' delimiter '|' region '<aws-region>';

      サンプルデータをロードするには、 を置き換えます。<myBucket> , <iam-role-arn>、、および <aws-region> を以下の COPY コマンドで使用して、値を指定します。Amazon Redshift クエリエディタを使用している場合は、次のコマンドを個別に実行します。

      copy users from 's3://<myBucket>/tickit/allusers_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';
      copy venue from 's3://<myBucket>/tickit/venue_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';
      copy category from 's3://<myBucket>/tickit/category_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';
      copy date from 's3://<myBucket>/tickit/date2008_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';
      copy event from 's3://<myBucket>/tickit/allevents_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS' region '<aws-region>';
      copy listing from 's3://<myBucket>/tickit/listings_pipe.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '|' region '<aws-region>';
      copy sales from 's3://<myBucket>/tickit/sales_tab.txt' credentials 'aws_iam_role=<iam-role-arn>' delimiter '\t' timeformat 'MM/DD/YYYY HH:MI:SS' region '<aws-region>';