Amazon Redshift Serverless - Amazon Redshift

Amazon Redshift Serverless

Amazon Redshift Serverless を初めて使用する場合、次のセクションをお読みになって Amazon Redshift Serverless の使用開始の参考にすることをお勧めします。Amazon Redshift Serverless の基本的な流れは、サーバーレスリソースの作成、Amazon Redshift Serverless への接続、サンプルデータのロード、データに対するクエリの実行です。このガイドでは、Amazon Redshift Serverless から、または Amazon S3 バケットからサンプルデータのロードを選択できます。

AWS へのサインアップ

まだ AWS アカウントをお持ちでない場合は、サインアップを行います。すでにアカウントをお持ちの場合は、この前提条件をスキップして既存のアカウントを使用します。

  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    AWS アカウントにサインアップすると、AWS アカウントのルートユーザーが作成されます。ルートユーザーには、アカウントのすべての AWS サービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、管理ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。

Amazon Redshift Serverless によるデータウェアハウスの作成

Amazon Redshift Serverless コンソールに初めてログインすると、サーバーレスリソースの作成と管理に使用できる、入門エクスペリエンスにアクセスするように求められます。このガイドでは、Amazon Redshift Serverless のデフォルト設定を使用してサーバーレスリソースを作成します。

設定をより細かく制御するには、[Customize settings] (設定をカスタマイズ) を選択します。

デフォルト設定で設定するには:
  1. AWS Management Console にサインインして、 https://console.aws.amazon.com/redshiftv2/で Amazon Redshift コンソールを開きます。

    [Amazon Redshift Serverless を試す] を選択します。

  2. [Configuration] (設定) で、[Use default settings] (デフォルト設定を使用) を選択します。Amazon Redshift サーバーレスは、デフォルトの名前空間を作成し、この名前空間にデフォルトのワークグループを関連付けます。[設定の保存] を選択します。

    次のスクリーンショットは、Amazon Redshift Serverless のデフォルト設定を示しています。

    Amazon Redshift Serverless のデフォルトを使用するには、デフォルト設定を選択します。
  3. セットアップが完了したら、[続行] を選択し、[サーバーレスダッシュボード] に移動します。サーバーレスワークグループと名前空間が使用可能であることがわかります。

    セットアップが完了すると、ワークグループと名前空間が使用可能になります。

サンプルデータをロードする

Amazon Redshift Serverless でデータウェアハウスをセットアップしたので、Amazon Redshift クエリエディタ v2 を使用してサンプルデータをロードできます。

  1. Amazon Redshift Serverless コンソールからクエリエディタ v2 を起動するには、[データをクエリ] を選択します。Amazon Redshift Serverless コンソールで クエリエディタ v2 を呼び出すと、ブラウザ上に新しいタブが開きクエリーエディタが表示されます。クエリエディタ v2 により、クライアントマシンから Amazon Redshift Serverless 環境に接続されます。

    Amazon Redshift Serverless コンソールの [データをクエリ] ボタンにより、クエリエディタ v2 が起動します。
  2. クエリエディタ v2 を初めて起動する場合は、次の操作の前に AWS KMS 暗号化を設定する必要があります。オプションで、後からデータをロードするために、S3 バケットに URI を指定することもできます。その後、[アカウントの設定] を選択します。

    先に進む前に、AWS KMS 暗号化を設定して、S3 バケット URI を指定します。

    Amazon Redshift クエリエディタ v2 の設定 (必要なアクセス許可など) 手順については、「Amazon Redshift 管理ガイド」の「AWS アカウント の設定」を参照してください。

  3. ワークグループに接続するには、ツリービューパネルでクラスターまたはワークグループ名を選択します。

    ワークグループに接続するには、ツリービューパネルでクラスターまたはワークグループ名を選択します。
  4. クエリエディタ v2 で初めて新しいワークグループに接続するときは、ワークグループへの接続に使用する認証タイプを選択する必要があります。このガイドでは、[フェデレーションユーザー] を選択したままにして、[接続の作成] を選択します。

    一時パスワードを使用して接続するか、データベースユーザー名とパスワードの組み合わせを使用して接続するかを選択できます。

    接続したら、Amazon Redshift Serverless から、または Amazon S3 バケットからサンプルデータのロードを選択できます。

  5. Amazon Redshift サーバーレスのデフォルトワークグループで、sample_data_dev データベースを展開します。3 つのサンプルデータセットに対応する 3 つのサンプルスキーマがあり、これらを Amazon Redshift Serverless データベース内にロードできます。ロードするサンプルデータセットを選択して、[サンプルノートブックを開く] を選択します。

    sample_data_dev データベースを展開してから、ロードするスキーマを選択します。
  6. 初めてデータをロードするとき、クエリエディタ v2 からサンプルデータベースを作成するように促しされます。[Create] (作成) を選択します。

サンプルクエリの実行

Amazon Redshift Serverless をセットアップすると、Amazon Redshift Serverless 内のサンプルデータセットの使用を開始できます。Amazon Redshift Serverless は tickit データセットなどのサンプルデータセットを自動的にロードし、直ちにデータをクエリすることができます。

  • Amazon Redshift Serverless がサンプルデータのロードを完了すると、すべてのサンプルクエリがエディタにロードされます。[すべて実行] を選択すると、サンプルノートブックのクエリをすべて実行できます。

    [すべて実行] ボタンを選択して、すべてのサンプルクエリを実行します。

    結果を JSON または CSV ファイルとしてエクスポートしたり、結果をグラフで表示したりすることもできます。

Amazon S3 バケットからデータをロードすることもできます。詳細については、「Amazon S3 からデータをロードする」を参照してください。

Amazon S3 からデータをロードする

データウェアハウスを作成すると、Amazon S3 からデータをロードできます。

この時点で、dev という名前のデータベースがあります。次に、このデータベースにいくつかのテーブルを作成し、テーブルにデータをアップロードして、クエリを実行してみます。すぐにロードして使えるサンプルデータを Amazon S3 バケットに用意しました。

  1. Amazon S3 からデータをロードする前に、必要な権限を持つ IAM ロールを作成し、それをサーバーレス名前空間にアタッチする必要があります。そのためには、ナビゲーションメニューから [名前空間の設定] を選択して、[セキュリティと暗号化] を選択します。次に、[IAM ロールの管理] を選択します。

    名前空間の設定ページから、[セキュリティと暗号化] を選択してから、[IAM ロールを管理] を選択します。
  2. [IAM ロールを管理] メニューを展開して、[IAM ロールの作成] を選択します。

    [IAM ロールを管理] メニューを展開して、[IAM ロールの作成] を選択します。
  3. このロールに付与する S3 バケットアクセスのレベルを選択して、[デフォルトとして IAM ロールを作成する] を選択します。

  4. [Save changes] (変更の保存) をクリックします。これで Amazon S3 のサンプルデータをロードできるようになりました。

以下の手順ではパブリック Amazon Redshift S3 バケット内のデータを使用しますが、自分の S3 バケットと SQL コマンドを使用して同じ手順を再現することができます。

Amazon S3 からサンプルデータをロードする
  1. クエリエディタ v2 で、[ Editor 追加] を選択してから、[ノートブック] を選択して新しい SQL ノートブックを作成します。

  2. dev データベースに切り替えます。

    dev データベースに切り替えて、S3 バケットからデータをロードします。
  3. テーブルを作成します。

    クエリエディタ v2 使用している場合は、次のテーブル作成ステートメントを個別にコピーして実行し、dev データベースにテーブルを作成します。構文の詳細については、Amazon Redshift データベースデベロッパーガイド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 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 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);
  4. クエリエディタ v2 で、ノートブックに新しい SQL セルを作成します。

    クエリエディタ v2 で新しい SQL セルを作成して SQL コマンドを実行します。
  5. Amazon S3 または Amazon DynamoDB から大容量のデータセットを Amazon Redshift にロードする場合は、クエリエディタ v2 の COPY コマンドの使用をお勧めします。COPY 構文の詳細については、Amazon Redshift データベースデベロッパーガイドCOPY を参照してください。

    COPY コマンドは、パブリック S3 バケットにあるサンプルデータを使用して実行できます。クエリエディタ v2 で次の SQL コマンドを実行します。

    COPY users FROM 's3://redshift-downloads/tickit/allusers_pipe.txt' DELIMITER '|' TIMEFORMAT 'YYYY-MM-DD HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default; COPY event FROM 's3://redshift-downloads/tickit/allevents_pipe.txt' DELIMITER '|' TIMEFORMAT 'YYYY-MM-DD HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default; COPY sales FROM 's3://redshift-downloads/tickit/sales_tab.txt' DELIMITER '\t' TIMEFORMAT 'MM/DD/YYYY HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default;
  6. データをロードしてから、ノートブックに別の SQL セルを作成して、いくつかのクエリ例を試します。SELECT コマンドの使用に関する詳細については、Amazon Redshift データベースデベロッパーガイドSELECT を参照してください。サンプルデータの構造とスキーマを理解するため、クエリエディタ v2 を使用してみてください。

    -- 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;

データをロードし、いくつかのサンプルクエリを実行したので、Amazon Redshift Serverless の他の領域を調べることができます。Amazon Redshift Serverless の使用方法の詳細については、次のリストを参照してください。

  • Amazon S3 バケットからデータをロードできます。詳細については、「Amazon S3 からデータをロードする」を参照してください。

  • クエリエディタ v2 を使用すると、5 MB 未満のローカルの文字区切りされたファイルからデータをロードできます。詳細については、「ローカルファイルからのデータのロード」を参照してください。

  • Amazon Redshift Serverless には、JDBC ドライバーと ODBC ドライバーを備えたサードパーティー製 SQL ツールで接続できます。詳細については、「Amazon Redshift Serverless への接続」を参照してください。

  • Amazon Redshift Data API を使用して、Amazon Redshift Serverless に接続することもできます。詳細については、「Amazon Redshift Data API の使用」を参照してください。

  • Amazon Redshift Serverless 内のデータと Redshift ML を使用して、CREATE MODEL コマンドで機械学習モデルを作成できます。Redshift ML モデルの構築方法については、「チュートリアル: カスタマーチャーンモデルの構築」を参照してください。

  • Amazon Redshift Serverless にデータをロードせずに Amazon S3 データレイクからデータをクエリすることができます。詳細については、「データレイクのクエリ」を参照してください。