データベース間でのデータのクエリ
Amazon Redshift で [cross-database queries (クロスデータベースのクエリ)] を使用すると、Amazon Redshift クラスター内のデータベース間でクエリを実行できます。クロスデータベースクエリを使用すると、接続しているデータベースに関係なく、Amazon Redshift クラスター内の任意のデータベースからデータをクエリできます。クロスデータベースクエリでは、データコピーを排除し、データ組織を簡素化して、同じデータウェアハウスからの複数のビジネスグループをサポートします。
クロスデータベースクエリでは、次のことができます。
Amazon Redshift クラスター内のデータベース間でデータをクエリします。
接続しているデータベースからクエリを実行できるだけでなく、許可のある他のデータベースから読み込むこともできます。
接続されていない他のデータベースでデータベースオブジェクトにクエリを実行すると、それらのデータベースオブジェクトへの読み込みアクセスのみが付与されます。クロスデータベースクエリを使用すると、特定のデータベースに接続しなくても、Amazon Redshift クラスター上の任意のデータベースのデータにアクセスできます。これにより、Amazon Redshift クラスター内の複数のデータベースに分散しているデータをすばやく簡単にクエリして結合することができます。
また、複数のデータベースのデータセットを 1 つのクエリで結合し、ビジネスインテリジェンス (BI) または分析ツールを使用してデータを分析することもできます。標準の Amazon Redshift SQL コマンドを使用して、ユーザーに対して詳細なテーブルレベルのアクセス制御を引き続き設定できます。これにより、ユーザーが、許可を持つデータの関連するサブセットのみを表示できるようにすることができます。
-
オブジェクトをクエリします。
3 つの部分で表記される完全修飾オブジェクト名を使用して、他のデータベースオブジェクトをクエリできます。任意のデータベースオブジェクトへのフルパスは、データベース名、スキーマ、オブジェクト名の 3 つのコンポーネントで構成されます。フルパス表記 (
) を使用して、他のデータベースから任意のオブジェクトにアクセスできます。特定の列にアクセスするには、database_name
.schema_name
.object_name
を使用します。database_name
.schema_name
.object_name
.column_name
外部スキーマ表記を使用して、別のデータベースのスキーマのエイリアスを作成することもできます。この外部スキーマは、別のデータベースとスキーマのペアを参照します。クエリは、外部スキーマ表記 (
) を使用して他のデータベースオブジェクトにアクセスできます。external_schema_name
.object_name
同じ読み込み専用クエリでは、他のデータベースのユーザーテーブル、通常のビュー、マテリアライズドビュー、遅延バインディングビューなど、さまざまなデータベースオブジェクトをクエリできます。
-
許可を管理します。
Amazon Redshift クラスター内の任意のデータベースにあるオブジェクトに対するアクセス権限を持つユーザーは、これらのオブジェクトをクエリできます。GRANT コマンドを使用して、ユーザーおよびユーザーグループに権限を付与します。また、ユーザーが特定のデータベースオブジェクトへのアクセスを必要としなくなったときに REVOKE コマンドを使用して権限を取り消すこともできます。
メタデータと BI ツールを操作します。
外部スキーマを作成して、同じ Amazon Redshift クラスター内の別の Amazon Redshift データベースのスキーマを参照できます。詳細については、CREATE EXTERNAL SCHEMA を参照してください。
外部スキーマ参照が作成されると、Amazon Redshift はメタデータを探索するためのツールについて、SVV_EXTERNAL_TABLES および SVV_EXTERNAL_COLUMNS の他のデータベースのスキーマの下にテーブルを表示します。
クロスデータベースクエリを BI ツールと統合するには、次のシステムビューを使用できます。これらは、Amazon Redshift クラスター上の接続データベースや他のデータベースにあるオブジェクトのメタデータに関する情報を表示することができます。
以下は、Amazon Redshift クラスターにあるすべてのデータベースのすべての Amazon Redshift オブジェクトと外部オブジェクトを表示するシステムビューです。
以下は、Amazon Redshift クラスターにあるすべてのデータベースのすべての Amazon Redshift オブジェクトを表示するシステムビューです。