メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

ステップ 6: テストデータセットを再作成する

各テーブルのソートキーと分散スタイルを選択したら、それらの属性を使用してテーブルを作成し、データを再ロードできます。COPY コマンドでは、自動的にロードデータが分析されて圧縮エンコードが適用されるようにできます。

テストデータセットを再作成するには

  1. CREATE TABLE コマンドの実行前に SSB テーブルを削除する必要があります。

    以下の コマンドを実行します。

    Copy
    drop table part cascade; drop table supplier cascade; drop table customer cascade; drop table dwdate cascade; drop table lineorder cascade;
  2. ソートキーと分散スタイルを使用するテーブルを作成します。

    以下の一連の SQL CREATE TABLE コマンドを実行します。

    Copy
    CREATE TABLE part ( p_partkey integer not null sortkey distkey, p_name varchar(22) not null, p_mfgr varchar(6) not null, p_category varchar(7) not null, p_brand1 varchar(9) not null, p_color varchar(11) not null, p_type varchar(25) not null, p_size integer not null, p_container varchar(10) not null ); CREATE TABLE supplier ( s_suppkey integer not null sortkey, s_name varchar(25) not null, s_address varchar(25) not null, s_city varchar(10) not null, s_nation varchar(15) not null, s_region varchar(12) not null, s_phone varchar(15) not null) diststyle all; CREATE TABLE customer ( c_custkey integer not null sortkey, c_name varchar(25) not null, c_address varchar(25) not null, c_city varchar(10) not null, c_nation varchar(15) not null, c_region varchar(12) not null, c_phone varchar(15) not null, c_mktsegment varchar(10) not null) diststyle all; CREATE TABLE dwdate ( d_datekey integer not null sortkey, d_date varchar(19) not null, d_dayofweek varchar(10) not null, d_month varchar(10) not null, d_year integer not null, d_yearmonthnum integer not null, d_yearmonth varchar(8) not null, d_daynuminweek integer not null, d_daynuminmonth integer not null, d_daynuminyear integer not null, d_monthnuminyear integer not null, d_weeknuminyear integer not null, d_sellingseason varchar(13) not null, d_lastdayinweekfl varchar(1) not null, d_lastdayinmonthfl varchar(1) not null, d_holidayfl varchar(1) not null, d_weekdayfl varchar(1) not null) diststyle all; CREATE TABLE lineorder ( lo_orderkey integer not null, lo_linenumber integer not null, lo_custkey integer not null, lo_partkey integer not null distkey, lo_suppkey integer not null, lo_orderdate integer not null sortkey, lo_orderpriority varchar(15) not null, lo_shippriority varchar(1) not null, lo_quantity integer not null, lo_extendedprice integer not null, lo_ordertotalprice integer not null, lo_discount integer not null, lo_revenue integer not null, lo_supplycost integer not null, lo_tax integer not null, lo_commitdate integer not null, lo_shipmode varchar(10) not null );
  3. 同じサンプルデータをテーブルにロードします。

    1. 前のステップで作成した loadssb.sql スクリプトを開きます。

    2. 各 COPY ステートメントから compupdate off を削除します。今回は、COPY によって圧縮エンコードが適用されるようにします。

      参考までに、編集したスクリプトは以下のようになります。

      Copy
      copy customer from 's3://awssampledbuswest2/ssbgz/customer' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' gzip region 'us-west-2'; copy dwdate from 's3://awssampledbuswest2/ssbgz/dwdate' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' gzip region 'us-west-2'; copy lineorder from 's3://awssampledbuswest2/ssbgz/lineorder' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' gzip region 'us-west-2'; copy part from 's3://awssampledbuswest2/ssbgz/part' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' gzip region 'us-west-2'; copy supplier from 's3://awssampledbuswest2/ssbgz/supplier' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' gzip region 'us-west-2';
    3. ファイルを保存します。

    4. COPY コマンドを実行します。そのためには、SQL スクリプトを実行するか、それらのコマンドを SQL クライアントに貼り付けます。

      注記

      ロードオペレーションは約 10 〜 15 分かかります。完了するまで、しばらくお待ちください。

      結果は以下のようになります。

      Copy
      Warnings: Load into table 'customer' completed, 3000000 record(s) loaded successfully. ... ... Script execution finished Total script execution time: 12m 15s
    5. ベンチマークの表にロード時間を記録します。

      ベンチマーク タグを
      ロード時間 (5 テーブル) 10 分 23 秒 12 分 15 秒
      ストレージ使用量
      LINEORDER 51024
      PART 384
      CUSTOMER 200
      DWDATE 160
      SUPPLIER 152
      合計ストレージ 51920
      クエリ実行時間
      Query 1 6.97
      Query 2 12.81
      Query 3 13.39
      合計実行時間 33.17

次のステップ

ステップ 7: チューニング後のシステムパフォーマンスを再テストする