Amazon Redshift データ共有でのビューの使用 - Amazon Redshift

Amazon Redshift データ共有でのビューの使用

プロデューサークラスターは、通常ビュー、遅延バインディングビュー、マテリアライズドビューを共有できます。通常ビューまたは遅延バインディングビューを共有する場合、ベーステーブルを共有する必要はありません。以下のテーブルは、データ共有でビューがどのようにサポートされるかを示しています。

ビュー名 このビューをデータ共有に追加できますか? コンシューマーは、クラスター全体のデータ共有オブジェクトに対してこのビューを作成できますか?
通常ビュー はい 不可
遅延バインドビュー あり はい
マテリアライズドビュー はい はい。ただし、完全に更新した場合に限ります

次のクエリは、データ共有でサポートされている通常のビューの出力を示しています。定期的なビューの定義については、「CREATE VIEW」を参照してください。

SELECT * FROM tickit_db.public.myevent_regular_vw ORDER BY eventid LIMIT 5; eventid | eventname ----------+------------- 3835 | LeAnn Rimes 3967 | LeAnn Rimes 4856 | LeAnn Rimes 4948 | LeAnn Rimes 5131 | LeAnn Rimes

次のクエリは、データ共有でサポートされている遅延バインディングビューの出力を示しています。遅延バインドビューの定義については、「CREATE VIEW」 を参照してください。

SELECT * FROM tickit_db.public.event_lbv ORDER BY eventid LIMIT 5; eventid | venueid | catid | dateid | eventname | starttime --------+---------+-------+--------+------------------------------+--------------------- 1 | 305 | 8 | 1851 | Gotterdammerung | 2008-01-25 14:30:00 2 | 306 | 8 | 2114 | Boris Godunov | 2008-10-15 20:00:00 3 | 302 | 8 | 1935 | Salome | 2008-04-19 14:30:00 4 | 309 | 8 | 2090 | La Cenerentola (Cinderella) | 2008-09-21 14:30:00 5 | 302 | 8 | 1982 | Il Trovatore | 2008-06-05 19:00:00

次のクエリは、データ共有でサポートされているマテリアライズドビューの出力を示しています。マテリアライズドビューの定義については、「CREATE MATERIALIZED VIEW」を参照してください。

SELECT * FROM tickit_db.public.tickets_mv; catgroup | qtysold ----------+--------- Concerts | 195444 Shows | 149905

プロデューサークラスター内のすべてのテナントで共通テーブルを維持できます。tenant_id (account_id または namespace_id) などのディメンション列でフィルタリングされたデータのサブセットをコンシューマークラスターと共有することもできます。これを行うには、これらの ID 列 (current_aws_account = tenant_id など) にフィルターを使用して、ベーステーブルにビューを定義できます。コンシューマー側では、ビューをクエリすると、アカウントに適格な行のみが表示されます。これを行うには、Amazon Redshift コンテキスト関数 current_aws_account および current_namespace を使用できます。

次のクエリは、現在の Amazon Redshift クラスターが存在するアカウントの ID を返します。Amazon Redshift に接続している場合は、このクエリを実行できます。

select current_user, current_aws_account; current_user | current_aws_account -------------+-------------------- dwuser | 111111111111 (1row)

次のクエリは、現在の Amazon Redshift クラスターの名前空間を返します。データベースに接続している場合は、このクエリを実行できます。

select current_user, current_namespace; current_user | current_namespace -------------+-------------------------------------- dwuser | 86b5169f-01dc-4a6f-9fbb-e2e24359e9a8 (1 row)

データ共有内のマテリアライズドビューの増分更新

Amazon Redshift は、ベーステーブルが共有されている場合、コンシューマーデータ共有におけるマテリアライズドビューの増分更新をサポートします。増分更新は、Amazon Redshift が前回の更新後に発生したベーステーブルの変更を特定し、マテリアライズドビューの対応するレコードのみを更新する操作です。この動作の詳細については、「CREATE MATERIALIZED VIEW」を参照してください。