

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# DDL ステートメントを使用したデータカタログビューの作成
<a name="create-views"></a>

Athena、Amazon Redshift の SQL エディタと AWS Glue APIs/ を使用して AWS Glue Data Catalog ビューを作成できますAWS CLI。

SQL エディタを使用してデータカタログビューを作成するには、Athena または Redshift Spectrum を選択し、`CREATE VIEW` データ定義言語 (DDL) ステートメントを使用してビューを作成します。最初のエンジンのダイアレクトでビューを作成した後、2 番目のエンジンの `ALTER VIEW` DDL ステートメントを使用してダイアレクトを追加できます。

ビューを定義するときは、次の点を考慮することが重要です。
+ **マルチダイアレクトビューの定義** - 複数のダイアレクトでビューを定義する場合、異なるダイアレクトのスキーマが一致している必要があります。各 SQL ダイアレクトは構文の仕様が若干異なります。データカタログビューを定義するクエリ構文は、どのダアレクトでもまったく同じ列リストに解決され、各列のタイプと名前も一致する必要があります。この情報はビューの `StorageDescriptor` に格納されます。各ダイアレクトでは、データカタログから、基になる同じテーブルオブジェクトを参照する必要もあります。

  DDL を使用してビューに別のダイアレクトを追加するには、`ALTER VIEW` ステートメントを使用できます。`ALTER VIEW` ステートメントでビュー定義を更新しようとすると (ストレージ記述子やビューの基になるテーブルを変更しようとした場合など)、ステートメントから「Input and existing storage descriptor mismatch」というエラーが出力されます。ビューの列タイプを確実に一致させるには、SQL のキャスト操作を使用できます。
+ **ビューの更新** - ビューを更新するには、`UpdateTable` API を使用できます。ストレージ記述子や参照テーブルを一致させずにビューを更新する場合は、`FORCE` フラグを指定できます (構文についてはエンジン SQL ドキュメントを参照してください)。強制更新後、ビューには強制された `StorageDescriptor` と参照テーブルが反映されます。それ以降の `ALTER VIEW` DDL は、変更された値と一致する必要があります。更新の結果として互換性のないダイアレクトが含まれるビューは、「Stale」ステータスになります。ビューのステータスは、Lake Formation コンソールおよび `GetTable` オペレーションを使用して確認できます。
+ **varchar 列タイプの文字列としての参照** - Redshift Spectrum の varchar 列タイプを文字列にキャストすることはできません。Redshift Spectrum で varchar 列タイプを持つビューが作成され、後続のダイアレクトがそのフィールドを文字列として参照しようとすると、データカタログは `FORCE` フラグがなくてもそのフィールドを文字列として扱います。
+ **複合タイプのフィールドの処理** - Amazon Redshift ではすべての複合タイプが [SUPER タイプ](https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html)として扱われますが、Athena では複合タイプが指定されます。ビューに `SUPER` タイプのフィールドがあり、別のエンジンがその列を構造体 (`<street_address:struct<street_number:int, street_name:string, street_type:string>>`) などの特定の複合タイプとして参照する場合、データカタログはフィールドが特定の複合タイプであると想定し、`Force` フラグがなくてもそのタイプをストレージ記述子で使用します。

データカタログビューを作成および管理するための構文の詳細については、以下を参照してください。
+ Amazon Athena ユーザーガイドの「[AWS Glue Data Catalog ビューの使用](https://docs.aws.amazon.com/athena/latest/ug/views-glue.html)」。
+ 「Amazon Athena ユーザーガイド」の「[Glue データカタログビューのクエリ構文](https://docs.aws.amazon.com/athena/latest/ug/views-glue-ddl.html)」。
+ Amazon Redshift データベース開発者ガイドの「[AWS Glue Data Catalogでのビューの作成](https://docs.aws.amazon.com/redshift/latest/dg/data-catalog-views-overview.html)」。

  データカタログ内のビューに関連する SQL コマンドの詳細については、「[外部ビューの作成](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_VIEW.html)」、「[外部ビューの変更](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_EXTERNAL_VIEW.html)」、および「[外部ビューの削除](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_EXTERNAL_VIEW.html)」を参照してください。

データカタログビューを作成すると、ビューの詳細が Lake Formation コンソールに表示されます。

1. Lake Formation コンソールの [データカタログ] で **[ビュー]** を選択します。

1. 使用可能なビューのリストがビューページに表示されます。

1. リストからビューを選択すると、詳細ページにビューの属性が表示されます。

![\[下側のセクションには 5 つのタブが水平に配置されており、各タブには対応する情報が含まれています。\]](http://docs.aws.amazon.com/ja_jp/lake-formation/latest/dg/images/view-definition.png)


Schema  
`Column` 行を選択し、**[LF タグの編集]** を選択して、タグ値の更新や新しい LF タグの割り当てを行います。

SQL 定義  
使用可能な SQL 定義のリストが表示されます。**[SQL 定義を追加]** を選択し、クエリエンジンを選択して SQL 定義を追加します。`Edit definition` 列の下にあるクエリエンジン (Athena または Amazon Redshift) を選択して、SQL 定義を更新します。

LF タグ  
**[LF タグを編集**] を選択して、タグの値を編集したり、新しいタグを割り当てたりします。LF タグを使用すると、ビューに許可を付与できます。

クロスアカウントアクセス  
データカタログビューを共有した AWS アカウント組織と組織単位 (OUs) のリストを表示できます。

基礎となるテーブル  
ビューの作成に使用された SQL 定義で参照される基礎となるテーブルがこのタブに表示されます。