CREATE VIEW および CREATE DIALECT VIEW
ビューは、この先のクエリで参照できる論理的なテーブルです。ビューにはデータは一切含まれず、データを書き込むこともできません。代わりに、ビューで指定するクエリは、別のクエリでそのビューを参照するたびに実行されます。
-
CREATE VIEW
は、指定されたSELECT
クエリから Athena ビューを作成します。Athena ビューは Athena 内で機能します。Athena ビューの詳細については、「ビューを使用する」を参照してください。 -
CREATE PROTECTED MULTI DIALECT VIEW
は、AWS Glue Data Catalog に AWS Glue Data Catalog ビューを作成します。AWS Glue Data Catalog ビューは、Amazon Athena や Amazon Redshift などの AWS のサービス 全体で単一の共通ビューを提供します。AWS Glue Data Catalog ビューの詳細については、「Athena でデータカタログビューを使用する」を参照してください。
CREATE VIEW
Athena 内で使用するビューを作成します。
概要
CREATE [ OR REPLACE ] VIEW view_name AS query
オプションの OR REPLACE
句は、既存のビューを更新して置き換えます。詳細については、「ビューを作成する」を参照してください。
例
テーブル orders
から test
ビューを作成するには、次のようなクエリを使用します。
CREATE VIEW test AS SELECT orderkey, orderstatus, totalprice / 2 AS half FROM orders;
テーブル orders
から orders_by_date
ビューを作成するには、次のクエリを使用します。
CREATE VIEW orders_by_date AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate;
既存のビューを更新するには、次のような例を使用します。
CREATE OR REPLACE VIEW test AS SELECT orderkey, orderstatus, totalprice / 4 AS quarter FROM orders;
Athena ビューの使用の詳細については、「ビューを使用する」を参照してください。
CREATE PROTECTED MULTI DIALECT VIEW
AWS Glue Data Catalog で AWS Glue Data Catalog ビューを作成します。データカタログビューは、Athena と Amazon Redshift や Amazon EMR のような他の SQL エンジン間で機能する単一のビュースキーマです。
構文
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW
view_name
SECURITY DEFINER [ SHOW VIEW JSON ] ASquery
- OR REPLACE
-
(オプション) 既存のビューを置き換えて更新します。データカタログビューに他のエンジンの SQL ダイアレクトが含まれている場合、そのビューを置き換えることはできません。呼び出し側のエンジンの SQL ダイアレクトがビュー内に存在する場合は、そのビューを置き換えることができます。
- PROTECTED
-
キーワードが必須です。ビューをデータ漏洩から保護するように指定します。データカタログビューは
PROTECTED
ビューとしてのみ作成できます。 - MULTI DIALECT
-
ビューがさまざまなクエリエンジンの SQL ダイアレクトをサポートし、それらのエンジンで読み取れるように指定します。
- SECURITY DEFINER
-
このビューに対して definer セマンティクスが有効であることを指定します。definer セマンティクスとは、基礎となるテーブルに対する有効な読み取り権限が、実際の読み取りを実行するプリンシパルではなく、ビューを定義したプリンシパルまたはロールに属することを意味します。
- SHOW VIEW JSON
-
(オプション) 実際にビューを作成せずに、データカタログビュー仕様の JSON を返します。この「ドライラン」オプションは、ビューの SQL を検証し、AWS Glue が使用するテーブルメタデータを返す場合に便利です。
例
次の例では、orders
テーブルに対するクエリに基づいて orders_by_date
データカタログビューを作成します。
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate
AWS Glue Data Catalog ビューの使用の詳細については、「Athena でデータカタログビューを使用する」を参照してください。