Amazon Redshift のデータ共有からデータベースを作成する - Amazon Redshift

Amazon Redshift のデータ共有からデータベースを作成する

Amazon Redshift では、データ共有を使用してデータベースを作成し、プロデューサークラスターからのデータ共有をまたいでデータのクエリを実行して、ライブデータに安全にアクセスすることができ、データをコピーまたは転送する必要はありません。以下の手順では、Amazon Redshift 環境でのデータベースの設定について詳しく説明します。

Console

データ共有内のデータをクエリするには、事前にデータ共有からデータベースを作成しておく必要があります。指定したデータ共有から作成できるデータベースは 1 つだけです。

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

  2. ナビゲーションメニューで [Clusters] (クラスター) を選択してから、ご使用のクラスターを選択します。クラスターの詳細ページが表示されます。

  3. [Datashares (データ共有)] を選択します。データ共有リストが表示されます。

  4. [Datashares from other clusters (他のクラスターからのデータ共有)] セクションで、[Connect to database (データベースに接続)] を選択します。詳細については、「データベースへの接続」を参照してください。

  5. データベースを作成するデータ共有を選択してから、[Create database from datashare (データ共有からデータベースを作成)] を選択します。[Create database from datashare (データ共有からデータベースを作成)] ページが表示されます。

  6. [Database name (データベース名)] にデータベース名を指定します データベース名は 1~64 文字の英数字 (小文字のみ) にする必要があり、予約語は使用できません。

  7. [Create] (作成) を選択します。

データベースを作成した後は、コンシューマー管理者によって許可、承認、関連付けがなされている場合は、データベース内のデータのクエリや、書き込み操作の実行ができます。

API

コンシューマー管理者として読み取り目的でデータを共有するには、次の手順を実行してください。

  1. 利用可能なデータ共有を一覧表示し、各データ共有のコンテンツを表示します。詳細については、DESC DATASHAREおよびSHOW DATASHARESを参照してください。

    次の例では、指定されたプロデューサー名前空間のインバウンドデータ共有の情報を表示します。DESC DATASHARE をコンシューマー管理者として実行する場合、インバウンドデータ共有を表示するには、NAMESPACE オプションを指定する必要があります。

    DESC DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d'; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+---------------------------------+------------------ 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_category_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | schema | public | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | INBOUND | salesshare | view | public.sales_data_summary_view |

    クラスターのスーパーユーザーのみがこれを行うことができます。SVV_DATASHARES を使用してデータ共有を表示し、SVV_DATASHARE_OBJECTS を使用してデータ共有内のオブジェクトを表示することもできます。

    次の例では、コンシューマークラスター内のインバウンドデータ共有を表示します。

    SHOW DATASHARES LIKE 'sales%'; share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace ------------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+-------------------------------------- salesshare | | | | INBOUND | | t | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d
  2. データベーススーパーユーザーとして、データ共有を参照するローカルデータベースを作成できます。詳細については、「CREATE DATABASE」を参照してください。

    CREATE DATABASE sales_db FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

    ローカルデータベース内のオブジェクトへのアクセスをより細かく制御する場合は、データベースの作成時に WITH PERMISSIONS 句を使用します。これにより、ステップ 4 でデータベース内のオブジェクトにオブジェクトレベルのアクセス許可を付与できます。

    CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

    SVV_REDSHIFT_DATABASES ビューにクエリを実行すると、データ共有から作成したデータベースを確認できます。これらのデータベースに直接接続したり、コンシューマークラスターのローカルデータベースに接続し、データベース間クエリを実行して、データ共有データベースのデータをクエリしたりすることができます。

    注記

    既存のデータ共有から作成されたデータベースオブジェクトの上にデータ共有を作成することはできません。ただし、コンシューマークラスター上の別のテーブルにデータをコピーし、必要な処理を実行してから、作成された新しいオブジェクトを共有できます。

    Amazon Redshift コンソールを使用して、データ共有からデータベースを作成することもできます。詳細については、「データ共有からのデータベースの作成」を参照してください。