CREATE VIEW および CREATE DIALECT VIEW - Amazon Athena

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 ] AS query
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 でデータカタログビューを使用する」を参照してください。