

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

# AWS Glue Data Catalog ビューの構築
<a name="working-with-views"></a>

では AWS Glue Data Catalog、*ビュー*は、1 つ以上のテーブルを参照する SQL クエリによってコンテンツが定義される仮想テーブルです。Amazon Athena、Amazon Redshift、または Apache Spark の SQL エディタを使用して、EMR Serverless または AWS Glue バージョン 5.0 を使用して、最大 10 個のテーブルを参照するデータカタログビューを作成できます。ビューの基盤となる参照テーブルは、同じデータベースに属することも、同じデータカタログ内の異なるデータベースに属する AWS アカウントこともできます。

[Apache Hudi、Linux Foundation Delta Lake](https://hudi.incubator.apache.org/)[https://delta.io/](https://delta.io/)、[Apache Iceberg](https://iceberg.apache.org/) などのオープンテーブル形式 (OTF) の標準 AWS Glue テーブルとテーブルを参照できます。基盤となるデータは、Amazon S3 ロケーションに登録されています AWS Lake Formation。また、Lake Formation と共有された Amazon Redshift データ共有のフェデレーションテーブルからビューを作成することもできます。

## データカタログビューと他のビュータイプとの区別
<a name="diff-views"></a>

データカタログビューは、Apache Hive、Apache Spark、Amazon Athena のビューとは異なります。データカタログビューは のネイティブ機能であり AWS Glue Data Catalog、マルチダイアレクト定義によって作成されたビューです。Athena や Amazon Redshift Spectrum など、サポートされている分析サービスのいずれかを使用してデータカタログビューを作成し、サポートされている他の分析サービスを使用して同じビューにアクセスできます。一方、Apache Hive、Apache Spark、Athena のビューは、Athena や Amazon Redshift などの各分析サービスで個別に作成され、そのサービス内でのみ表示およびアクセスできます。

## 定義者ビューとは
<a name="definer-view"></a>

 定義者ビューとは、そのビューを作成したプリンシパルのアクセス許可に基づいて動作する SQL ビューです。定義者ロールは、参照されるテーブルへのアクセスに必要なアクセス許可を持ち、ビューを定義する SQL ステートメントを実行します。定義者はビューを作成し、 AWS Lake Formationのきめ細かなアクセスコントロールを通じて他のユーザーと共有します。

ユーザーが定義者ビューにクエリを実行すると、クエリエンジンは、定義者ロールのアクセス許可を使用して基盤の参照テーブルにアクセスします。このアプローチにより、ユーザーはソーステーブルへの直接アクセスを必要とせずにビューを操作できるため、セキュリティが強化され、データのアクセス管理が簡素化されます。

定義者ビューを設定するには、定義者 IAM ロールをベーステーブルと同じ AWS アカウント内、またはクロスアカウント定義者ロールを使用する別のアカウント内に配置できます。定義者ロールに必要なアクセス許可の詳細については、「[ビュー作成の前提条件](views-prereqs.md)」を参照してください。

## マルチダイアレクトビューのフレームワーク
<a name="multi-dialect"></a>

データカタログは、複数の構造化クエリ言語 (SQL) ダイアレクトを使用したビューの作成をサポートしています。SQL は、リレーショナルデータベースに情報を保存および処理するために使用される言語であり、各 AWS 分析エンジンは独自のバリエーションの SQL または SQL ダイアレクトを使用します。

サポートされている分析クエリエンジンのいずれかを使用して、1 つの SQL ダイアレクトでデータカタログビューを作成します。その後、サポートされている他の分析エンジン内の別の SQL ダイアレクトで、`ALTER VIEW` ステートメントを使用してビューを更新できます。ただし、各ダイアレクトは同じテーブル、列、データ型のセットを参照する必要があります。

`GetTable` API AWS CLI と AWS コンソールを使用して、ビューで使用できる複数のダイアレクトにアクセスできます。このように、データカタログビューには、サポートされているさまざまな分析エンジンから参照やクエリを行うことができます。

データカタログビューでは、複数のエンジンからクエリできる共通のビュースキーマとメタデータオブジェクトを定義することで、データレイク全体で統一されたビューを使用できます。

各ダイアレクトでスキーマがどのように解決されるかの詳細については、[API リファレンスへのリンク]()を参照してください。さまざまなタイプのマッチングルールの詳細については、[API ドキュメントの関連するセクションへのリンク]()を参照してください。

## Lake Formation アクセス許可との統合
<a name="lf-view-integ"></a>

を使用して AWS Lake Formation 、ユーザーの AWS Glue Data Catalog ビューに対するアクセス許可管理を一元化できます。名前付きリソースメソッドまたは LF タグを使用して、Data Catalog ビューにきめ細かなアクセス許可を付与し、組織 AWS アカウント、 AWS 組織単位間で共有できます。リソースリンク AWS リージョン を使用して、 間でデータカタログビューを共有してアクセスすることもできます。これにより、ユーザーはデータソースを複製せずにデータアクセスを提供し、基になるテーブルを共有できます。

データカタログビューの `CREATE VIEW`DDL ステートメントは、Hudi、Delta Lake、Iceberg などのオープンテーブル形式 (OTF) の標準 AWS Glue テーブルとテーブルを、Lake Formation に登録されている Amazon S3 ロケーションに保存されている基盤となるデータとともに、Lake Formation と共有されている Amazon Redshift データ共有のフェデレーティッドテーブルで参照できます。テーブルのファイル形式は、ビューのクエリに使用されるエンジンがサポートしている形式であれば、任意の形式にすることができます。また、実行されているエンジンの組み込み関数を参照することもできますが、他のエンジン固有のリソースは許可されない場合があります。詳細については、「[データカタログビューの考慮事項と制限](views-notes.md)」を参照してください。

## ユースケース
<a name="views-use-cases"></a>

データカタログビューの重要なユースケースを以下に示します。
+ 1 つのビュースキーマでアクセス許可を作成および管理します。これにより、複数のエンジンで作成された重複したビューに対するアクセス許可に整合性がなくなるリスクを回避できます。
+ 基になる参照テーブルに直接アクセス許可を付与しなくても、複数のテーブルを参照するビューに対するアクセス許可をユーザーに付与できます。
+ LF タグを使用してテーブルの行レベルのフィルタリングを実現します (LF タグのカスケードは列レベルまでに限られます)。これは、ビューに LF タグを適用し、LF タグベースのアクセス許可をユーザーに付与することで行います。

## ビューでサポートされている AWS 分析サービス
<a name="views-supported-engines"></a>

次の AWS 分析サービスは、データカタログビューの作成をサポートしています。
+ Amazon Redshift
+ Amazon Athena バージョン 3
+ EMR Serverless 上の Apache Spark
+  AWS Glue バージョン 5.0 の Apache Spark

## その他のリソース
<a name="views-addtional-resources"></a>

データカタログの詳細については、このガイドおよび以下のリソースを参照してください。

次のビデオでは、Athena と Amazon Redshift からビューを作成してクエリを実行する方法を説明しています。

[![AWS Videos](http://img.youtube.com/vi/rFO2OoxVYxE?si=Z0qsyuvTp2ZJg-PL/0.jpg)](http://www.youtube.com/watch?v=rFO2OoxVYxE?si=Z0qsyuvTp2ZJg-PL)


**Topics**
+ [データカタログビューと他のビュータイプとの区別](#diff-views)
+ [定義者ビューとは](#definer-view)
+ [マルチダイアレクトビューのフレームワーク](#multi-dialect)
+ [Lake Formation アクセス許可との統合](#lf-view-integ)
+ [ユースケース](#views-use-cases)
+ [ビューでサポートされている AWS 分析サービス](#views-supported-engines)
+ [その他のリソース](#views-addtional-resources)
+ [ビュー作成の前提条件](views-prereqs.md)
+ [DDL ステートメントを使用したデータカタログビューの作成](create-views.md)
+ [AWS Glue APIs を使用したデータカタログビューの作成](views-api-usage.md)
+ [データカタログビューに対する許可の付与](grant-perms-views.md)
+ [マテリアライズドビュー](materialized-views.md)