

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建置 AWS Glue Data Catalog 檢視
<a name="working-with-views"></a>

在 中 AWS Glue Data Catalog，*檢視*是虛擬資料表，其中內容是由參考一或多個資料表的 SQL 查詢定義。您可以使用 Amazon Athena、Amazon Redshift 或 Apache Spark 的 SQL 編輯器，使用 EMR Serverless 或 5.0 AWS Glue 版建立最多參考 10 個資料表的資料目錄檢視。檢視的基礎參考資料表可以屬於相同 AWS 帳戶 Data Catalog 中的相同資料庫或不同資料庫。

您可以參考開放 AWS Glue 資料表格式 (OTF) 的標準資料表和資料表，例如 [Apache Hudi](https://hudi.incubator.apache.org/)、Linux Foundation [Delta Lake](https://delta.io/) 和 [Apache Iceberg](https://iceberg.apache.org/)，並將基礎資料存放在註冊的 Amazon S3 位置 AWS Lake Formation。此外，您可以從與 Lake Formation 共用的 Amazon Redshift 資料共用，從聯合資料表建立檢視。

## 區分 Data Catalog 檢視與其他檢視類型
<a name="diff-views"></a>

Data Catalog 檢視與 Apache Hive、Apache Spark 和 Amazon Athena 檢視不同。Data Catalog 檢視是 的原生功能 AWS Glue Data Catalog，也是多向度定義者建立的檢視。您可以使用其中一個支援的分析服務建立 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>

Data Catalog 支援使用多種結構化查詢語言 (SQL) 方言建立檢視。SQL 是一種用於在關聯式資料庫中存放和處理資訊的語言，每個 AWS 分析引擎都會使用自己的 SQL 變化或 SQL 方言。

您可以使用其中一個支援的分析查詢引擎，在一個 SQL 方言中建立 Data Catalog 檢視。然後，您可以使用任何其他支援的分析引擎中不同 SQL 方言中的 `ALTER VIEW`陳述式來更新檢視。不過，每個方言都必須參考一組相同的資料表、資料欄和資料類型。

您可以使用 `GetTable` API AWS CLI 和 AWS 主控台存取可用於檢視的多個方言。因此，資料目錄檢視是可見的，可用於在不同支援的分析引擎之間進行查詢。

透過定義您可以從多個引擎查詢的常見檢視結構描述和中繼資料物件，Data Catalog 檢視可讓您跨資料湖使用統一檢視。

如需如何解決每個方言結構描述的詳細資訊，請參閱 [API 參考的連結]()。如需不同類型相符規則的詳細資訊，請參閱 [API 文件中的相關區段連結]()。

## 與 Lake Formation 許可整合
<a name="lf-view-integ"></a>

您可以使用 AWS Lake Formation 集中管理使用者 AWS Glue Data Catalog 檢視的許可。您可以使用具名資源方法或 LF 標籤，對 Data Catalog 檢視授予精細的許可，並在 AWS 帳戶組織和組織單位之間 AWS 共用這些許可。您也可以 AWS 區域 使用資源連結跨 共用和存取 Data Catalog 檢視。這可讓使用者提供資料存取，而無需複製資料來源，並共用基礎資料表。

Data Catalog 檢視的 `CREATE VIEW` DDL 陳述式可以開放資料表格式 (OTF) 參考標準 AWS Glue 資料表和資料表，例如 Hudi、Delta Lake 和 Iceberg，其中包含存放在向 Lake Formation 註冊的 Amazon S3 位置的基礎資料，以及與 Lake Formation 共用的 Amazon Redshift 資料共用的聯合資料表。只要用於查詢檢視的引擎支援該格式，資料表可以是任何檔案格式。您也可以參考執行引擎的內建函數，但可能不允許其他引擎特定資源。如需詳細資訊，請參閱 [Data Catalog 檢視的考量和限制](views-notes.md)。

## 使用案例
<a name="views-use-cases"></a>

以下是 Data Catalog 檢視的重要使用案例：
+ 建立和管理單一檢視結構描述的許可。這可協助您避免在多個引擎中建立的重複檢視上具有不一致許可的風險。
+ 在參考多個資料表的檢視上將許可授予使用者，而不直接在基礎參考資料表上授予許可。
+ 透過在檢視上套用 LF 標籤並將以 LF 標籤為基礎的許可授予使用者，在資料表上使用 LF 標籤 （其中 LF 標籤只會層疊至資料欄層級） 來達成資料列層級篩選。

## 檢視支援的 AWS 分析服務
<a name="views-supported-engines"></a>

下列 AWS 分析服務支援建立 Data Catalog 檢視：
+ Amazon Redshift
+ Amazon Athena 第 3 版
+ EMR Serverless 上的 Apache Spark
+  5.0 AWS Glue 版上的 Apache Spark

## 其他資源
<a name="views-addtional-resources"></a>

您可以在本指南中進一步了解 Data Catalog，以及使用下列資源：

下列影片示範如何從 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**
+ [區分 Data Catalog 檢視與其他檢視類型](#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 陳述式建立 Data Catalog 檢視](create-views.md)
+ [使用 AWS Glue APIs建立 Data Catalog 檢視](views-api-usage.md)
+ [授予 Data Catalog 檢視的許可](grant-perms-views.md)
+ [具體化視觀表](materialized-views.md)