サンプルデータベース - Amazon Redshift

サンプルデータベース

このセクションでは、Amazon Redshift ドキュメントの例で使用されている、TICKIT というサンプルデータベースについて説明します。

この小規模のデータベースは、7 個のテーブルで構成されています。そのうち 2 個はファクトテーブル、5 個はディメンションです。「Amazon Redshift 入門ガイド」の「ステップ 4: Amazon S3 から Amazon Redshift にデータをロードする」の手順に従って、TICKIT データセットをロードできます。

TICKIT サンプルデータベース内の 7 つのテーブルと、それらの相互関係。

このサンプルデータベースアプリケーションでは、アナリストが、架空の TICKIT ウェブサイトの販売アクティビティを追跡できます。ユーザーはこのサイトで、スポーツイベント、ショー、およびコンサートのチケットをオンラインで購入および販売します。アナリストは特に、長期間にわたってチケットの動向を確認でき、販売者の成功率に加えて、人気の高いイベント、施設、シーズンを確認できます。アナリストは、この情報を使用して、頻繁にサイトにアクセスする購入者および販売者にインセンティブを提供したり、新規ユーザーを誘致したり、広告やプロモーションを推進したりすることができます。

例えば、次のクエリは、2008 年に販売されたチケット数に基づき、サンディエゴで最も販売数の多かった販売者 5 名を検出します。

select sellerid, username, (firstname ||' '|| lastname) as name, city, sum(qtysold) from sales, date, users where sales.sellerid = users.userid and sales.dateid = date.dateid and year = 2008 and city = 'San Diego' group by sellerid, username, name, city order by 5 desc limit 5; sellerid | username | name | city | sum ----------+----------+-------------------+-----------+----- 49977 | JJK84WTE | Julie Hanson | San Diego | 22 19750 | AAS23BDR | Charity Zimmerman | San Diego | 21 29069 | SVL81MEQ | Axel Grant | San Diego | 17 43632 | VAG08HKW | Griffin Dodson | San Diego | 16 36712 | RXT40MKU | Hiram Turner | San Diego | 14 (5 rows)

このガイドで例示しているデータベースには、小規模のデータセットが含まれています。このデータセットでは、2 つのファクトテーブルそれぞれに含まれる行が 200,000 行未満で、ディメンションの範囲は CATEGORY テーブルの 11 行から USERS テーブルの 50,000 行までです。

特に、このガイドに記載するデータベースの例では、Amazon Redshift テーブル設計における以下の主要機能をデモンストレーションしています。

  • データのディストリビューション

  • データのソート

  • 列指向の圧縮

TICKIT データベース内のテーブルのスキーマについては、以下のタブを選択してください。

CATEGORY table
列名 データ型 説明
CATID SMALLINT プライマリキー。各行の一意の ID 値。各行は、チケットが購入および販売される特定のタイプのイベントを表します。
CATGROUP VARCHAR(10) イベントのグループの記述名 (例: Shows および Sports)。
CATNAME VARCHAR(10) グループ内のイベントのタイプの短い記述名 (例: Opera および Musicals)。
CATDESC VARCHAR(50) イベントのタイプの長い記述名 (例: Musical theatre)。
DATE table
列名 データ型 説明
DATEID SMALLINT プライマリキー。各行の一意の ID 値。各行は、1 暦年の中の各日を表します。
CALDATE DATE カレンダー日付 (例: 2008-06-24)。
DAY CHAR(3) 曜日 (短縮形) (例: SA)。
WEEK SMALLINT 週番号 (例: 26)。
MONTH CHAR(5) 月名 (短縮形) (例: JUN)。
QTR CHAR(5) 四半期番号 (14)。
YEAR SMALLINT 4 桁の年 (2008)。
HOLIDAY BOOLEAN その日が祝日 (米国) であるかどうかを示すフラグ。
EVENT table
列名 データ型 説明
EVENTID INTEGER プライマリキー。各行の一意の ID 値。各行は、特定の時刻に特定の施設で開催された各イベントを表します。
VENUEID SMALLINT VENUE テーブルの外部キー参照。
CATID SMALLINT CATEGORY テーブルの外部キー参照。
DATEID SMALLINT DATE テーブルの外部キー参照。
EVENTNAME VARCHAR(200) イベントの名前 (例: Hamlet または La Traviata)。
STARTTIME TIMESTAMP イベントの日付と開始時刻 (例: 2008-10-10 19:30:00)。
VENUE table
列名 データ型 説明
VENUEID SMALLINT プライマリキー。各行の一意の ID 値。各行は、イベントが開催された特定の施設を表します。
VENUENAME VARCHAR(100) 施設の正式名称 (例: Cleveland Browns Stadium)。
VENUECITY VARCHAR(30) 市町村名 (例: Cleveland)。
VENUESTATE CHAR(2) 州または地域の 2 文字の略称 (米国およびカナダ) (例: OH)。
VENUESEATS INTEGER 施設で利用できる座席の最大数 (ただし、確認済みの場合) (例: 73200)。デモンストレーションの目的から、この列には null 値と 0 がいくつか含まれています。
USERS table
列名 データ型 説明
USERID INTEGER プライマリキー。各行の一意の ID 値。各行は、1 つ以上のイベントでチケットをリストまたは購入した登録済みのユーザー (購入者、販売者、または両方) を表します。
USERNAME CHAR(8) 英数字 8 文字のユーザー名 (例: PGL08LJI)。
FIRSTNAME VARCHAR(30) ユーザーの名 (例: Victor)。
LASTNAME VARCHAR(30) ユーザーの姓 (例: Hernandez)。
CITY VARCHAR(30) ユーザーの自宅住所の市町村 (例: Naperville)。
STATE CHAR(2) ユーザーの自宅住所の州 (例: GA)。
EMAIL VARCHAR(100) ユーザーの E メールアドレス (この列にはランダムなラテン文字値が格納される) (例: turpis@accumsanlaoreet.org)。
PHONE CHAR(14) ユーザーの 14 文字の電話番号 (例: (818) 765-4255)。
LIKESPORTS, ..。 BOOLEAN ユーザーの好き嫌いを true 値および false 値で表す一連の 10 列。
LISTING table
列名 データ型 説明
LISTID INTEGER プライマリキー。各行の一意の ID 値。各行は、特定のイベントの一連のチケットをリストで表します。
SELLERID INTEGER USERS テーブルの外部キー参照 (チケットを販売するユーザーを表す)。
EVENTID INTEGER EVENT テーブルの外部キー参照。
DATEID SMALLINT DATE テーブルの外部キー参照。
NUMTICKETS SMALLINT 販売可能なチケット数 (例: 2 または 20)。
PRICEPERTICKET DECIMAL(8,2) 各チケットの定価 (例: 27.00 または 206.00)。
TOTALPRICE DECIMAL(8,2) このリストの定価総額 (NUMTICKETS*PRICEPERTICKET)。
LISTTIME TIMESTAMP リストが投稿された日時 (例: 2008-03-18 07:19:35)。
SALES table
列名 データ型 説明
SALESID INTEGER プライマリキー。各行の一意の ID 値。各行は、特定のイベントの 1 枚以上のチケットの各販売を表します (特定のリストで提供)。
LISTID INTEGER LISTING テーブルの外部キー参照。
SELLERID INTEGER USERS テーブルの外部キー参照 (チケットを販売したユーザー)。
BUYERID INTEGER USERS テーブルの外部キー参照 (チケットを購入したユーザー)。
EVENTID INTEGER EVENT テーブルの外部キー参照。
DATEID SMALLINT DATE テーブルの外部キー参照。
QTYSOLD SMALLINT 販売されたチケット数 (18)。(1 回の取引で最大 8 枚のチケットを販売できます。)
PRICEPAID DECIMAL(8,2) チケットの合計支払額 (例: 75.00 または 488.00)。チケットの個別の価格は PRICEPAID/QTYSOLD です。
COMMISSION DECIMAL(8,2) そのビジネスで販売価格から徴収される 15% のコミッション (例: 11.25 または 73.20)。販売者は PRICEPAID 値の 85% を受け取ります。
SALETIME TIMESTAMP 販売が完了した日時 (例: 2008-05-24 06:21:47)。