Comments
Description
Transcript
Amazon Redshift - S3 amazonaws com
Amazon Redshift 入門ガイド API Version 2012-12-01 Amazon Redshift 入門ガイド アマゾン ウェブ サービス Amazon Redshift 入門ガイド Amazon Redshift: 入門ガイド アマゾン ウェブ サービス Copyright © 2014 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. The following are trademarks of Amazon Web Services, Inc.: Amazon, Amazon Web Services Design, AWS, Amazon CloudFront, Cloudfront, Amazon DevPay, DynamoDB, ElastiCache, Amazon EC2, Amazon Elastic Compute Cloud, Amazon Glacier, Kindle, Kindle Fire, AWS Marketplace Design, Mechanical Turk, Amazon Redshift, Amazon Route 53, Amazon S3, Amazon VPC. In addition, Amazon.com graphics, logos, page headers, button icons, scripts, and service names are trademarks, or trade dress of Amazon in the U.S. and/or other countries. Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon. Amazon Redshift 入門ガイド はじめに .................................................................................................................................................. 1 使用開始 .................................................................................................................................................. 3 ステップ 1: 開始する前に ....................................................................................................................... 3 ステップ 2: クラスターを起動する ......................................................................................................... 5 ステップ 3: アクセスを許可する .......................................................................................................... 10 ステップ 4: クラスターに接続する ....................................................................................................... 14 ステップ 5: テーブルの作成、データのアップロード、サンプルクエリの実行 ................................. 16 ステップ 6: サンプルクラスターを削除する ........................................................................................ 20 ステップ 7: 次に学習するべきこと ....................................................................................................... 21 改定履歴 ................................................................................................................................................ 22 API Version 2012-12-01 4 Amazon Redshift 入門ガイド Amazon Redshift のご利用は初めてですか? はじめに これは Amazon Redshift 入門ガイド です。Amazon Redshift は高速かつ高機能で、管理も万全な、ペ タバイト規模のクラウド型データウェアハウスサービスです。 Amazon Redshift を使用するには、まず Amazon Redshift クラスターを起動します。クラスターとはコ ンピューティングノードの組み合わせで構成されるフルマネージド型データウェアハウスです。クラス ターの作成と管理には Amazon Redshift マネジメントコンソール、API、または CLI を使用します。 デフォルトでは、Amazon Redshift は新規クラスターを作成するとデータベースを 1 個作成します。必 要に応じて追加のデータベースを作成することもできます。クラスターのプロビジョニングが終わった ら、データセットをアップロードして、データ分析クエリを実行します。現在お使いの SQL ベースツー ルやビジネスインテリジェンスアプリケーションが利用できます。 このガイドでは、クラスターの作成、データベーステーブルの作成、データのアップロード、およびク エリのテストの手順を説明します。 Amazon Redshift のご利用は初めてですか? Amazon Redshift を初めて使用する方には、次のセクションを初めに読むことをおすすめします。 • 主なサービスと料金表 – product detail page には、Amazon Redshift の利点や主なサービス、料金表 が掲載されています。 • 入門ガイド(本ドキュメント)) – クラスターの作成、データベーステーブルの作成、データのアッ プロード、およびテストクエリの実行の手順を解説しています。 この入門ガイドを読み終えた後、さらに知識を深めるには、次のガイドのいずれかを参照してくださ い。 • Amazon Redshift Cluster Management Guide – Management Guide では、Amazon Redshift クラス ターの作成および管理の方法を紹介しています。 アプリケーション開発者なら、Amazon Redshift Query API を使ってクラスターをプログラム的に管 理できます。また、Java、.NET をはじめ各種言語向けに提供されている AWS SDK から、基本的な Amazon Redshift API をラップするクラスライブラリを入手すれば、プログラミング作業の省力化に 役立ちます。クラスターをよりインタラクティブに管理したい場合は、Amazon Redshift コンソール および AWS コマンドラインインターフェイス(AWS CLI)をご利用になれます。API および CLI の 詳細については、以下のマニュアルを参照してください。 API Version 2012-12-01 1 Amazon Redshift 入門ガイド Amazon Redshift のご利用は初めてですか? • API リファレンス • CLI リファレンス • Amazon Redshift Database Developer Guide – Amazon Redshift Database Developer Guide はデー タベース開発者向けの内容で、データウェアハウスを構成するデータベースの設計、構築、クエリ、 管理を解説しています。 API Version 2012-12-01 2 Amazon Redshift 入門ガイド ステップ 1: 開始する前に Amazon Redshift の使用を開始する Topics • ステップ 1: 開始する前に (p. 3) • ステップ 2: クラスターを起動する (p. 5) • ステップ 3: インバウンドトラフィックにクラスターアクセスを許可する (p. 10) • ステップ 4: クラスターに接続する (p. 14) • ステップ 5: テーブルの作成、データのアップロード、サンプルクエリの実行 (p. 16) • ステップ 6: サンプルクラスターを削除する (p. 20) • ステップ 7: 次に学習するべきこと (p. 21) Amazon Redshift データウェアハウスを使用するための第 1 ステップは Amazon Redshift クラスター を起動することです。クラスターはコンピュートノードの組み合わせで構成されます。デフォルトで は、Amazon Redshift はクラスターに 1 個のデータベースを作成します。必要に応じて追加のデータ ベースを作成することもできます。クラスターのプロビジョニングが終わったら、データセットをアッ プロードして、データ分析クエリを実行します。現在お使いの SQL ベースツールやビジネスインテリ ジェンスアプリケーションが利用できます。 このセクションでは、クラスターの作成、データベーステーブルの作成、データのアップロードおよび クエリのテストの手順を説明します。まず Amazon Redshift コンソールを使用してクラスターをプロ ビジョニングし、必要なアクセス権限を付与します。次に SQL Workbench クライアントを使用してク ラスターに接続し、サンプルテーブルを作成し、サンプルデータをアップロードし、テストクエリを実 行します。 ステップ 1: 開始する前に Topics • ステップ 1.1: サインアップ (p. 4) • ステップ 1.2: クライアントツールおよびドライバーをダウンロードする (p. 4) まだ AWS アカウントをお持ちでない場合は、サインアップしてアカウントを作成してください。次に クライアントツールおよびドライバーをダウンロードします。これは Amazon Redshift クラスタに接 続するために使います。 API Version 2012-12-01 3 Amazon Redshift 入門ガイド ステップ 1.1: サインアップ ステップ 1.1: サインアップ すでに AWS アカウントをお持ちの場合は、このステップを飛ばして ステップ 1.2: クライアントツー ルおよびドライバーをダウンロードする (p. 4) に進んでください。 サインアップして AWS アカウントを作成するには 1. 2. http://aws.amazon.com にアクセスし、[サインアップ] をクリックします。 画面上の指示に従ってください。 サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入 力することが求められます。 ステップ 1.2: クライアントツールおよびドライバー をダウンロードする Amazon Redshift クラスターを作成したら、任意の SQL クライアントツールを使ってクラスターに PostgreSQL JDBC または ODBC ドライバーで接続します。このチュートリアルでは、SQL Workbench/J を使って接続する方法を説明します。これは無料で使える、DBMS 独立でクロスプラットフォームの SQL クエリツールです。このチュートリアルに SQL Workbench/J を使う場合は、以下のステップに 沿ってセットアップを済ませます。SQL Workbench/J のインストール手順の詳細については、Setting Up the SQL Workbench/J Client を参照してください。Amazon EC2 インスタンスをクライアントコン ピュータとして使う場合は、そのインスタンスに SQL Workbench および必要なドライバーをインス トールします。 Note サードパーティ製データベースツールでクラスターに使用したいものがあれば、別途インス トールする必要があります。Amazon Redshift によりサードパーティ製のツールやライブラリ が提供されたり、インストールされることはありません。 SQL Workbench/J をセットアップするには 1. SQL Workbench/J ウェブサイトに移動し、使用するオペレーティングシステムに適したパッケー ジをダウンロードします。 2. Installing and starting SQL Workbench/J ページにアクセスして、SQL Workbench/J をインストー ルします。 Important SQL Workbench/J に必要な Java ランタイムのバージョンを確認して、必ずそのバージョ ンを使用してください。違うバージョンでは SQL Workbench/J が動作しません。 3. SQL Workbench/J がクラスターに接続するために必要なドライバーをダウンロードします。 現在、Amazon Redshift は以下のバージョン 8 JDBC および ODBC ドライバーをサポートしてい ます。 • JDBC http://jdbc.postgresql.org/download/postgresql-8.4-703.jdbc4.jar • ODBC http://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_08_04_0200.zip • 64 ビットマシンにはこちらのドライバーを使用してください。 http://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_09_00_0101-x64.zip API Version 2012-12-01 4 Amazon Redshift 入門ガイド ステップ 2: クラスターを起動する ステップ 2: クラスターを起動する 次に、AWS マネジメントコンソールを使ってクラスターを起動します。 Important ここで起動するクラスターはライブとなります(サンドボックスで実行されるわけではありま せん)。クラスターを終了するまで、そのクラスターについて Amazon Redshift 標準使用料が 発生します。ここで説明した演習を中断せずに完了し、終了時にクラスターを終了すれば、合 計料金はごくわずかです。 クラスターを起動するには 1. AWS アカウントまたは IAM アカウントの認証情報を使って AWS マネジメントコンソールにサイ ンインし、Amazon Redshift コンソール(https://console.aws.amazon.com/redshift)を開きます。 Important IAM ユーザー認証情報を使う場合は、そのユーザーにクラスター操作を実行するために必 要な権限があるか確認してください。詳細については、Amazon Redshift Management Guide の Controlling Access to IAM Users をご覧ください。 2. リージョンセレクタからリージョンを選択します。 この入門演習では、米国東部リージョンを使用します。 3. [Launch Cluster] をクリックします。 初めてクラスターを作成する場合、次の画像が表示されます。画像が表示されない場合は、クラス ターの一覧が表示されます。 4. [Cluster Details] ページに以下の値を入力します。 パラメータ ...処理: [Cluster Identifier] examplecluster と入力します。 API Version 2012-12-01 5 Amazon Redshift 入門ガイド ステップ 2: クラスターを起動する パラメータ ...処理: [Database Name] 空欄にします。こうするとデフォルト名 dev でデー タベースが作成されます。 [Database Port] 5439 をデフォルト値として使用します。 Note このチュートリアルでは例としてポート 5439 を使用します。このポートがお使い の環境で動作しない場合は、他のポートを 指定し、以下このチュートリアルではポー トをすべてそれに読み替えてください。ク ラスターが起動した後でポートを変更する ことはできません。 [Master Username] masteruser と入力します。このマスターユーザー 名を使ってクラスターにログインすると、すべての データベース権限が使えます。 [Master Password] パスワードを入力します。パスワードは以下の条件 を満たす必要があります。 • • • • • [Confirm Password] 長さが 8~64 文字の範囲であること。 最低 1 個の大文字を含むこと。 最低 1 個の小文字を含むこと。 1 個の数字を含むこと。 表示可能な ASCII 文字(ASCII コード 33~126) のうち、'(シングルクォート)、"(ダブルクォー ト)、\、/、@ および空白を除く任意の文字を使 用できる。 パスワードを再度入力します。 API Version 2012-12-01 6 Amazon Redshift 入門ガイド ステップ 2: クラスターを起動する 5. 6. [Continue] をクリックします。 [Node Configuration] ページに、クラスターのノードに関する情報を入力します。 a. [Node Type] ボックスは、デフォルト値 dw.hs1.xlarge をそのまま使用します。 b. より大規模なデータセットでテストする場合は、代わりに dw.hs1.8xlarge ノードタイプを 使用してもかまいません。 [Cluster Type] ボックスで、[Single Node] をクリックします。 c. この演習にはシングルノードクラスタで充分です。実際の環境では、おそらく追加ノードが必 要になるでしょう。 [Continue] をクリックします。 API Version 2012-12-01 7 Amazon Redshift 入門ガイド ステップ 2: クラスターを起動する 7. [Additional Configuration] ページの [Choose a VPC] の値を書きとめておきます。次のステップで、 クライアントにクラスターへのアクセス権限を付与しますが、その方法はお使いのクラスターが Virtual Private Cloud(VPC)内にプロビジョニングされているかどうかで違ってきます。 この例では違いを気にする必要はありません。VPC に関する詳しい解説は Amazon Redshift Management Guide にあります。ここでは、クラスターを起動し、適当なデータで試用してみるこ とを目標とします。VPC の詳細については、Amazon Redshift Management Guide の Supported Platforms to Launch Your Cluster を参照してください。 • クラスターが VPC の外部で作成されている場合、リージョン内のこのアカウントで起動してい る以前のクラスターがなければ、[Additional Configuration] ページの表示は次のようになります。 デフォルト値をそのまま使い、[Continue] をクリックします。 • ラスターが VPC の外部で作成されている場合、リージョン内のこのアカウントで起動している 以前のクラスターがあれば、[Additional Configuration] ページの表示は次のようになります。デ フォルト値をそのまま使い、[Continue] をクリックします。 • [Cluster Parameter Group] で、「default.redshift-1.0」パラメータグループを選択しま す。 • [Encrypt Database] で、デフォルトである「No」をそのまま使います。 • [Choose a VPC] で、クラスターの VPC を選択します。 • [Cluster Subnet Group] で、クラスターを実行するサブネットを選択します。使用可能であれ ばデフォルトのサブネットを選択します。クラスターサブネットグループについては Amazon Redshift 管理ガイドに解説があります。 • [Publicly accessible] で、[Yes] を選択します。 • [アベイラビリティーゾーン] では、デフォルト値をそのまま使います。 • [VPC Security Groups] で、セキュリティグループを選択して、クラスターに照らしてテスト する外部接続または EC2 インスタンスに許可を与えます。次の手順で、そのアクセスに対す るルールを有効にします。 • [Continue] をクリックします。 API Version 2012-12-01 8 Amazon Redshift 入門ガイド ステップ 2: クラスターを起動する 8. [Review] ページで、情報が意図したとおりになっているか確認します。訂正が必要な項目がある場 合は、[Back] をクリックして前のページに戻ります。[Review] ページの内容は、クラスターを VPC 内で起動するか VPC 外で起動するかで異なります。 • クラスターを VPC 外で起動する場合、[Review] ページは次のような表示になります。 • クラスターを VPC 内で起動する場合、[Review] ページは次のような表示になります。 API Version 2012-12-01 9 Amazon Redshift 入門ガイド ステップ 3: アクセスを許可する 9. クラスターを起動すると費用が発生し始めるという警告が表示されます。クラスターを起動する場 合は、[Launch Cluster] をクリックします。 10. クラスターの作成を開始するというメッセージが表示されたら、[Close] をクリックし、クラスター のステータスが [creating] から [available] に変わるまで待ちます。 次のステップでは、アクセスを許可してクラスターに接続できるようにします。 ステップ 3: インバウンドトラフィックにクラス ターアクセスを許可する クラスターが起動したら、クライアントからクラスターへのインバウンドアクセスを明示的に許可する 必要があります。クライアントは Amazon EC2 インスタンスで実行しても、インターネットに接続し た任意のデバイスから実行してもかまいません。 クライアントにアクセスを許可する手順は、クラスターを VPC 内にプロビジョニングしたかどうかで 異なります。 API Version 2012-12-01 10 Amazon Redshift 入門ガイド VPC 内にプロビジョニングしたクラスターへのアクセスを 許可する VPC 内にプロビジョニングしたクラスターへのアク セスを許可する 上記の手順でクラスターをデフォルト VPC 内に起動した場合、クラスターはデフォルト VPC セキュ リティグループに関連付けられています。これから、その VPC セキュリティグループにクラスターへ のインバウンドアクセスを許可するルールを追加します。 [To add a rule to the default VPC security group] 1. Sign in to the AWS Management Console and open the Amazon Redshift console at https://console.aws.amazon.com/redshift/. Note 必ずステップ 2 でクラスターを起動したのと同じリージョンを使うようにしてください。 2. 3. ナビゲーションペインで [Clusters] をクリックします。 コンテンツペインで、インバウンドアクセスを許可するクラスターをクリックします。詳細ペイン にある、[VPC ID] および [VPC Security Groups] の値を書きとめておきます。 4. 前述の Amazon Redshift コンソールに表示されている [View VPC Security Groups ] リンクをクリッ クして Amazon VPC コンソールを開きます。 5. 6. 7. VPC コンソールのナビゲーションペインで [Security Groups] をクリックします。 コンテンツペインを選択し、ID が前のステップで書きとめておいたものと同じ VPC セキュリティ グループのチェックボックスをオンにします。 詳細ペインで [Inbound] タブをクリックします。 8. ルールを以下の手順で追加します。 a. ドロップダウンリストから [All Traffic] ルールタイプを選択し、クライアントの IP アドレスを 指定して、[Add Rule] をクリックします。 API Version 2012-12-01 11 Amazon Redshift 入門ガイド VPC 外にプロビジョニングしたクラスターへのアクセスを 許可する b. [Apply Rule Changes] をクリックします。 これでデフォルト VPC 内にデプロイしたクラスターにクライアントが接続する準備ができました。 VPC 外にプロビジョニングしたクラスターへのアク セスを許可する クラスターをデフォルト VPC 外で起動した場合、クラスターはデフォルト Amazon Redshift セキュリ ティグループに関連付けられています。クラスターにインバウンドアクセスを許可するには、クラス ターセキュリティグループに進入ルールを追加します。各ルールはインバウンドトラフィックのソース を識別し、以下のソースに該当すればクラスターへのアクセスを許可します。 • Classless Inter-Domain Routing IP(CIDR/IP)アドレス範囲 – CIDR/IP アドレス範囲は、クライアン トアプリケーションがインターネットで実行されている場合に使用します。 • Amazon EC2 セキュリティグループ – Amazon EC2 セキュリティグループは、クライアントアプリ ケーションが 1 つ以上の EC2 インスタンスで実行されている場合に使用します。 [To add a rule to the default cluster security group] 1. 2. 3. 4. Sign in to the AWS Management Console and open the Amazon Redshift console at https://console.aws.amazon.com/redshift/. ナビゲーションペインで [Security Groups] をクリックします。 コンテンツペインで、デフォルトセキュリティグループに対応するチェックボックスをオンにしま す。 詳細ペインで、セキュリティグループに進入ルールを追加します。 a. クラスターにインターネットからアクセスする場合、CIDR/IP ルールを構成します。 i. [Connection Type] ボックスで、[CIDR/IP] をクリックします。 ii. [CIDR/IP to Authorize] ボックスで、CIDR/IP 値を指定し、[Authorize] をクリックします。 クライアントはこの CIDR/IP アドレス範囲からであればクラスターに接続を許可されま す。 API Version 2012-12-01 12 Amazon Redshift 入門ガイド VPC 外にプロビジョニングしたクラスターへのアクセスを 許可する b. クラスターに EC2 インスタンスからアクセスする場合、EC2 セキュリティグループルールを 構成します。 i. ii. [Connection Type] ボックスで、[EC2 Security Group] をクリックします。 [AWS アカウント] で、AWS アカウントの下に EC2 セキュリティグループが定義されて いる場合は、[This account] を選択します。EC2 セキュリティグループが異なるアカウン トの下に定義されている場合は、[Another account] をクリックし、[AWS アカウント ID] ボックスにアカウント ID を入力します。[EC2 Security Group Name] ボックスで、お使 いの EC2 インスタンスに関連付けられたセキュリティグループ名を選択します。設定が すべて意図したとおりであることを確認したら、[Authorize] をクリックします。指定した AWS アカウントおよび EC2 セキュリティグループに関連付けられたクライアント EC2 インスタンスに、クラスターへの接続が許可されます。 インスタンスに関連付けられた Amazon EC2 セキュリティグループの名前がわからない 場合は、Amazon EC2 コンソール(https://console.aws.amazon.com/ec2)に移動します。 ナビゲーションペインで、[Instances] の下にある [Instances] をクリックします。詳細ペ インで、情報を確認する Amazon EC2 インスタンスのチェックボックスをオンにします。 [Description] タブに、そのインスタンスに関連付けられたセキュリティグループ名が [Security Groups] の下に表示されます。 API Version 2012-12-01 13 Amazon Redshift 入門ガイド ステップ 4: クラスターに接続する これでクライアントをクラスターに接続する準備ができました。 ステップ 4: クラスターに接続する それでは、作成したクラスターに接続します。PostgreSQL 互換の SQL クライアントならどれでも使 えます。このチュートリアルでは、SQL Workbench クライアントを使用します。接続を確立するには、 SQL Workbench にクラスターを指定する接続文字列を入力する必要があります。 クラスター接続文字列を取得するには 1. Amazon Redshift コンソールの [Clusters] ページで、[examplecluster] をクリックします。 2. [Configuration] タブで、[JDBC URL] の下にある、クラスターの JDBC URL をコピーします。 Note クラスターのエンドポイントは、クラスターが available 状態になるまで使用できませ ん。 次の例は米国東部リージョンで起動されたクラスターの JDBC URL を示しています。クラスター を別のリージョンで起動した場合、URL はそのリージョンのエンドポイントに基づくものになり ます。 クライアントをクラスターに接続する 1. 2. クライアントで SQL Workbench を起動します。 [Select Connection Profile] ウィンドウが自動的に開かない場合は、[File] メニューで [Connect Window] をクリックします。 API Version 2012-12-01 14 Amazon Redshift 入門ガイド ステップ 4: クラスターに接続する 3. [Select Connection Profile] ウィンドウで接続をセットアップします。 a. b. c. [Autocommit] チェックボックスを選択します。 [New profile] という文字列が表示されているボックスに、接続するプロファイル名を入力しま す。 [Driver] ボックスで、[PostgreSQL(org.postgresql.Driver)] をクリックします。 SQL Workbench を使うのが初めての場合、ドライバーの定義を編集するかどうかを尋ねるメッ セージが表示されることがあります。その場合はダイアログボックスで [Yes] をクリックしま す。[Manage drivers] ダイアログボックスの [Library] ボックスに、ダウンロードしたドライ バーファイルへのリンクを入力します。 Note まだドライバーをダウンロードしていない場合は、ステップ 1.2: クライアントツール およびドライバーをダウンロードする (p. 4) の手順を行ってください。 d. e. f. サンプル [URL] ボックスに、前のステップでコピーしておいた、クラスターの JDBC URL を ペーストします。 [Username] フィールドと [Password] フィールドには、クラスターを作成した時に入力したマ スターユーザー名とパスワードを入力します。 [OK] をクリックすると接続します。 Note 接続できない場合、ファイアウォール構成に問題がある可能性があります。ネット ワークセキュリティ管理者に連絡し、選択した外部ポートに接続できることを確認し てください。この 入門では、例としてポート 5439 を使用します。 API Version 2012-12-01 15 Amazon Redshift 入門ガイド ステップ 5: テーブルの作成、データのアップロード、サン プルクエリの実行 クラスターに接続できたら、次のステップに進んでサンプルデータベースを作成します。 Note Amazon Redshift に接続するのに使うクライアントは、AWS 外で実行しても、AWS 内の EC2 インスタンスで実行してもかまいません。ただし AWS 外から Amazon Redshift に接続する場 合、接続がアイドル状態になったまま一定時間が経過すると、間のネットワーク構成(ファイ アウォールなど)によって切断される場合があります。 これは VPN や企業ネットワークの内 部からログオンする場合にとりわけよく起きることです。こうしたタイムアウトを回避するに は、TCP-IP 接続設定の変更が必要になる場合があります。詳細については、Connecting to Amazon Redshift From Outside of Amazon EC2 – Firewall Timeout Issue を参照してください。 ステップ 5: テーブルの作成、データのアップロー ド、サンプルクエリの実行 これでデータベース dev を作成し、それに接続できました。次はこのデータベースにテーブルを作成 し、テーブルにデータをアップロードして、クエリを実行してみます。すぐ使えるサンプルデータを Amazon S3 バケットに用意しました。クラスターを作成したのと同じリージョンでバケットを選択し ます。このサンプルデータをコピーするには、AWS アカウント認証情報(アクセスキー ID およびシー クレットアクセスキー)が必要になります。認証されたユーザーのみがこのデータにアクセスできま す。 Note 次に進む前に、SQL Workbench クライアントをクラスターに接続しておいてください。 1. テーブルを作成する 以下の「create table」ステートメントをコピーし、dev データベースにテーブルを作成します。 シンタックスの詳細については、Amazon Redshift Developer Guide の CREATE TABLE を参照し てください。 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, API Version 2012-12-01 16 Amazon Redshift 入門ガイド ステップ 5: テーブルの作成、データのアップロード、サン プルクエリの実行 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. Amazon S3 からデータをコピーする。Amazon S3 や Amazon DynamoDB から大規模データセッ トをバルクロードする際のパフォーマンスを最適化するために、Amazon Redshift SQL COPY コ マンドを使用することを強くお勧めします。シンタックスの詳細については、Amazon Redshift Database Developer Guide の COPY に進みます。 以下の「copy」ステートメントをコピーして、Amazon S3 から dev データベースのテーブルに データをアップロードします。 API Version 2012-12-01 17 Amazon Redshift 入門ガイド ステップ 5: テーブルの作成、データのアップロード、サン プルクエリの実行 copy users from 's3://<region-specific-bucket-name>/tickit/allusers_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_ac cess_key=<Your-Secret-Access-Key>' delimiter '|'; copy venue from 's3://<region-specific-bucket-name>/tickit/venue_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_ac cess_key=<Your-Secret-Access-Key>' delimiter '|'; copy category from 's3://<region-specific-bucket-name>/tickit/cat egory_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-KeyID>;aws_secret_access_key=<Your-Secret-Access-Key>' delimiter '|'; copy date from 's3://<region-specific-bucket-name>/tickit/date2008_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_ac cess_key=<Your-Secret-Access-Key>' delimiter '|'; copy event from 's3://<region-specific-bucket-name>/tickit/allevents_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_ac cess_key=<Your-Secret-Access-Key>' delimiter '|' timeformat 'YYYY-MM-DD HH:MI:SS'; copy listing from 's3://<region-specific-bucket-name>/tickit/list ings_pipe.txt' CREDENTIALS 'aws_access_key_id=<Your-Access-KeyID>;aws_secret_access_key=<Your-Secret-Access-Key>' delimiter '|'; copy sales from 's3://<region-specific-bucket-name>/tickit/sales_tab.txt'CRE DENTIALS 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<YourSecret-Access-Key>' delimiter '\t' timeformat 'MM/DD/YYYY HH:MI:SS'; <Your-Access-Key-ID> および <Your-Secret-Access-Key> はお使いの AWS アカウント認 証情報に、<region-specific-bucket-name> はクラスターと同じリージョンにあるバケット 名に、必ず置き換えてください。使用するべき正しいバケット名を探すには、次の表を参照してく ださい。 リージョン <region-specific-bucket-name> 米国東部(バージニア北部) awssampledb 米国西部(オレゴン) awssampledbuswest2 欧州(アイルランド) awssampledbeuwest1 アジアパシフィック(シンガポール) awssampledbapsoutheast1 アジアパシフィック(シドニー) awssampledbapsoutheast2 アジアパシフィック(東京) awssampledbapnortheast1 Note この演習では、Amazon Redshift が所有する既存の Amazon S3 バケットからサンプルデー タをアップロードします。このバケットの権限は、すべてのユーザーにサンプルデータ ファイルへの読み込みアクセスを許可する設定になっています。独自のデータをアップ ロードする場合は、ご自分の Amazon S3 バケットが必要になります。バケットの作成と データのアップロードの詳細については、Amazon Simple Storage Service Console User Guide の Creating a Bucket および Uploading Objects into Amazon S3 を参照してくださ い。 3. 次にサンプルクエリを実行します。詳細については、Amazon Redshift Developer Guide の SELECT を参照してください。 API Version 2012-12-01 18 Amazon Redshift 入門ガイド ステップ 5: テーブルの作成、データのアップロード、サン プルクエリの実行 -- Get definition for the sales table. SELECT * FROM pg_table_def WHERE tablename = 'sales'; -- Find total sales on a given calendar date. SELECT sum(qtysold) FROM sales, date WHERE sales.dateid = date.dateid AND caldate = '2008-01-05'; -- Find top 10 buyers by quantity. SELECT firstname, lastname, total_quantity FROM (SELECT buyerid, sum(qtysold) total_quantity FROM sales GROUP BY buyerid ORDER BY total_quantity desc limit 10) Q, users WHERE Q.buyerid = userid ORDER BY Q.total_quantity desc; -- Find events in the 99.9 percentile in terms of all time gross sales. SELECT eventname, total_price FROM (SELECT eventid, total_price, ntile(1000) over(order by total_price desc) as percentile FROM (SELECT eventid, sum(pricepaid) total_price FROM sales GROUP BY eventid)) Q, event E WHERE Q.eventid = E.eventid AND percentile = 1 ORDER BY total_price desc; 4. オプションとして、Amazon Redshift コンソールから実行したクエリを確認できます。[Queries] タブに、指定期間内に実行されたクエリの一覧が表示されます。デフォルトでは、コンソールは現 在実行中のクエリを含め、最近 24 時間以内に実行されたクエリを表示します。 1. 2. Amazon Redshift コンソール(https://console.aws.amazon.com/redshift)にアクセスします。 右ペインのクラスター一覧で examplecluster をクリックします。 3. [Queries] タブをクリックします。 コンソールに実行したクエリの一覧が下の例のように表示されます。 4. クエリ一覧からクエリを選択すると、そのクエリの詳細情報が表示されます。 クエリの情報は新しい [Query] タブに表示されます。次の例は、前のステップで実行したクエ リの詳細を表示したものです。 API Version 2012-12-01 19 Amazon Redshift 入門ガイド ステップ 6: サンプルクラスターを削除する ステップ 6: サンプルクラスターを削除する クラスターを起動すると、以後それが使用可能な状態である限り、たとえ能動的に使用していなくて も、クラスターの実行時間に基づき料金が請求されます。不要になったクラスターは削除できます。 サンプルクラスターを削除するには 1. 2. 3. Amazon Redshift コンソール(https://console.aws.amazon.com/redshift)にアクセスします。 左ナビゲーションで [Clusters] をクリックします。 右ペインのクラスター一覧で examplecluster をクリックします。 4. クラスター詳細ページで [Delete] をクリックします。 5. [Create final snapshot?] で、[No] を選択します。 演習ではない場合、ここでクラスターの最終スナップショットを作成しておくと、クラスターを削 除しても後でそこから復旧できます。 Note 最終スナップショットを作成した結果、ストレージ使用量がそのアカウントでプロビジョ ニング済みのストレージ容量を超過した場合は、追加のストレージ料金が発生します。詳 細については、Amazon Redshift 製品の詳細ページを参照してください。 • [OK] をクリックします。 API Version 2012-12-01 20 Amazon Redshift 入門ガイド ステップ 7: 次に学習するべきこと クラスターを削除すると、以後そのクラスターによる利用料金は発生しません。 これで、クラスターの起動、アクセス権の設定、クラスターへの接続、クラスターの終了をひととおり 体験しました。Amazon Redshift および応用学習の詳細については、ステップ 7: 次に学習するべきこ と (p. 21) を参照してください。 ステップ 7: 次に学習するべきこと この入門ガイドを終えた後、Amazon Redshift に関する知識を深めるには、以下のガイドをご利用くだ さい。 • Amazon Redshift Cluster Management Guide – Management Guide では、Amazon Redshift クラス ターの作成および管理の方法を紹介しています。 アプリケーション開発者なら、Amazon Redshift Query API を使ってクラスターをプログラム的に管 理できます。また、Java、.NET をはじめ各種言語向けに提供されている AWS SDK から、基本的な Amazon Redshift API をラップするクラスライブラリを入手すれば、プログラミング作業の省力化に 役立ちます。クラスターをよりインタラクティブに管理したい場合は、Amazon Redshift コンソール および AWS コマンドラインインターフェイス(AWS CLI)をご利用になれます。API および CLI の 詳細については、以下のマニュアルを参照してください。 • API リファレンス • CLI リファレンス • Amazon Redshift Database Developer Guide – Amazon Redshift Database Developer Guide はデー タベース開発者向けの内容で、データウェアハウスを構成するデータベースの設計、構築、クエリ、 管理を解説しています。特に、Database Developer Guide の Best Practices for Designing Tables お よび Best Practices for Loading Data から読み始めることをおすすめします。 サービスの概要および料金表の詳細については、Amazon Redshift 製品の詳細ページを参照してくださ い。 API Version 2012-12-01 21 Amazon Redshift 入門ガイド 改定履歴 次の表は、「Amazon Redshift 入門ガイド」最新版リリース以降に更新された重要な変更点をまとめた ものです。 ドキュメントの最終更新日: 2013 年 4 月 22 日 変更点 説明 リリース日 新規ガイド これは「Amazon Redshift 入門ガイド」の初版リリース です。 2013 年 2 月 14 日 API Version 2012-12-01 22