AWS CloudFormation での PostgreSQL への横串検索の使用開始 - Amazon Redshift

AWS CloudFormation での PostgreSQL への横串検索の使用開始

横串検索を使用して、オペレーショナルデータベース間でクエリを実行できます。この入門ガイドでは、サンプルの AWS CloudFormation スタック を使用してセットアップを自動化し、Amazon Redshift クラスターから Aurora PostgreSQL サーバーレスデータベースへの横串検索を有効にします。SQL ステートメントを実行してリソースをプロビジョニングする必要はなく、検索をすばやく起動して実行できます。

このスタックでは、サンプルデータを格納したテーブルを含む Aurora PostgreSQL インスタンスを参照する、外部スキーマを作成します。外部スキーマ内にあるテーブルには、Redshift クラスターからクエリできます。

これとは別に、CloudFormation を使用せずに SQL ステートメントを実行し、外部スキーマを設定しながら横串検索を開始する場合は、「PostgreSQL への横串検索を使用した開始方法」を参照してください。

横串検索のために CloudFormation スタックを実行する前に、Data API が有効化された Amazon Aurora PostgreSQL 互換エディションのサーバーレスデータベースを使用していることを、確認してください。Data API は、データベースのプロパティで有効化できます。この設定が見つからない場合は、Aurora PostgreSQL のサーバーレスインスタンスを実行していることを再確認してください。また、RA3 ノードを使用する Amazon Redshift クラスターがあることを確認します。Redshift クラスターと Aurora PostgreSQL インスタンスは、同じ Virtual Private Cloud (VPC) とサブネットグループに含めることをお勧めします。これにより、Amazon Redshift クラスターのセキュリティグループを、Aurora PostgreSQL データベースインスタンスのセキュリティグループのインバウンドルールに追加できます。

Amazon Redshift クラスターの設定の詳しい開始方法については、「Amazon Redshift でプロビジョニングされたクラスター」を参照してください。CloudFormation を使用したリソースのセットアップの詳細については、「What is AWS CloudFormation?」を参照してください。Aurora データベースのセットアップの詳細については、「Aurora Serverless v1 DB クラスターの作成」を参照してください。

Redshift での横串検索用の CloudFormation スタックの起動

次の手順を使用して、Amazon Redshift 用に CloudFormation スタックを起動して、横串検索を有効にします。作業開始の前に、Amazon Redshift クラスターとサーバーレス Aurora PostgreSQL インスタンスがセットアップされていることを確認してください。

横串検索のために CloudFormation スタックを起動するには
  1. AWS Management Console の [Launch CFN stack] (CFN スタックを起動) をクリックし、 CloudFormation サービスを起動します。

    プロンプトが表示されたら、サインインします。

    Amazon S3 に保存されている CloudFormation テンプレートファイルを参照しながら、スタック作成プロセスが開始されます。CloudFormation テンプレートは、JSON 形式で作成されたテキストファイルで、スタックを構成する AWS リソースに関する宣言が記述されています。

  2. [Next] (次へ) をクリックして、スタックの詳細を入力します。

  3. [Parameters] (パラメータ) で、クラスターについて以下のように入力します。

    • Amazon Redshift のクラスター名 (例えば、ra3-consumer-cluster)

    • 特定のデータベース名 (例えば、dev)

    • データベースのユーザー名 (例えば、consumeruser)

    さらに、ユーザー、データベース名、ポート、エンドポイントなど、Aurora データベースのパラメータも入力します。スタックは複数のデータベースオブジェクトを作成するため、クラスターとサーバーレスデータベースはテスト用のものを使用することをお勧めします。

    [Next] を選択します。

    スタックに関するオプションが表示されます。

  4. [Next] (次へ) をクリックして、デフォルト設定を受け入れます。

  5. [機能] で、[AWS CloudFormation によって IAM リソースが作成される場合があることを承認します] を選択します。

  6. [スタックの作成] を選択します。

[スタックの作成] を選択します。CloudFormation は、10 分間程度でテンプレートリソースをプロビジョニングし、外部スキーマを作成します。

スタックの作成中にエラーが発生した場合は、以下の手順を実行します。

  • エラーの解決に役立つ情報については、CloudFormation の [Events] (イベント) タブを開きます。

  • Redshift クラスターの名前、データベース名、およびデータベースのユーザー名が正しく入力されていることを確認してください。また、Aurora PostgreSQL インスタンスのパラメータも確認します。

  • クラスターに RA3 ノードがあることを確認します。

  • 同じサブネットとセキュリティグループ内に、データベースと Redshift クラスターが置かれていることを確認します。

外部スキーマからのデータのクエリ

以下の手順を使用するには、説明で示されているクラスターとデータベースでクエリを実行するための適切なアクセス許可が必要です。

横串検索を使用して外部データベースに対しクエリを実行するには
  1. Redshift のクエリエディタなどのクライアントツールを使用して、スタックを作成した際に入力した Redshift データベースに接続します。

  2. スタックによって作成された外部スキーマをクエリします。

    select * from svv_external_schemas;

    SVV_EXTERNAL_SCHEMAS ビューで、使用可能な外部スキーマに関する情報が返されます。ここでは、スタックによって作成された外部スキーマ (myfederated_schema) が返されます。設定をしておくことで、他の外部スキーマを返させることもできます。このビューでは、対象スキーマに関連付けられたデータベースも返します。返されるデータベースは、スタックの作成時に入力した Aurora データベースです。スタックは、この Aurora データベースにテーブル (1 つは category、もう 1 つは sales) を追加します。

  3. Aurora PostgreSQL データベースを参照する外部スキーマのテーブルに対して、SQL クエリを実行します。以下に、クエリの例を示します。

    SELECT count(*) FROM myfederated_schema.category;

    category テーブルは複数のレコードを返します。また、salesテーブルからレコードを返すこともできます。

    SELECT count(*) FROM myfederated_schema.sales;

    その他の例については、「横串検索の使用例」を参照してください。