

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

# 使用 DDL 陳述式建立 Data Catalog 檢視
<a name="create-views"></a>

您可以使用 Athena、Amazon Redshift 和 AWS Glue APIs/ 的 SQL 編輯器建立 AWS Glue Data Catalog 檢視AWS CLI。

若要使用 SQL 編輯器建立 Data Catalog 檢視，請選擇 Athena 或 Redshift Spectrum，然後使用`CREATE VIEW`資料定義語言 (DDL) 陳述式建立檢視。在第一個引擎的方言中建立檢視後，您可以使用第二個引擎的 `ALTER VIEW` DDL 陳述式來新增其他方言。

定義檢視時，請務必考量下列事項：
+ **定義多方檢視** – 當您定義具有多個方言的檢視時，不同方言的結構描述必須相符。每個 SQL 方言都有略有不同的語法規格。定義 Data Catalog 檢視的查詢語法應該在所有方言中解析為完全相同的資料欄清單，包括類型和名稱。此資訊會存放在 檢視`StorageDescriptor`的 中。方言也必須參考資料目錄中的相同基礎資料表物件。

  若要使用 DDL 將另一個方言新增至檢視，您可以使用 `ALTER VIEW`陳述式。如果`ALTER VIEW`陳述式嘗試更新檢視定義，例如修改檢視的儲存描述項或基礎資料表，則陳述式會錯誤地說出「輸入和現有儲存描述項不相符」。您可以使用 SQL 轉換操作來確保檢視欄類型相符。
+ **更新檢視** – 若要更新檢視，您可以使用 `UpdateTable` API。如果您在沒有相符儲存描述項或參考資料表的情況下更新檢視，您可以提供 `FORCE`旗標 （如需語法，請參閱引擎 SQL 文件）。強制更新後，檢視將採用強制資料表`StorageDescriptor`和參考資料表。任何進一步的 `ALTER VIEW` DDL 都應符合修改後的值。已更新為具有不相容方言的檢視將處於「過時」狀態。檢視狀態會顯示在 Lake Formation 主控台和使用 `GetTable`操作。
+ **參考 varchar 資料欄類型做為字串** – 無法將 Redshift Spectrum 的 varchar 資料欄類型轉換為字串。如果在 Redshift Spectrum 中使用 varchar 資料欄類型建立檢視，且後續方言嘗試將該欄位參考為字串，則 Data Catalog 會將它視為字串，而不需要`FORCE`標記。
+ **複雜類型欄位的處理** – Amazon Redshift 會將所有複雜類型視為 [SUPER 類型](https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html)，而 Athena 會指定複雜類型。如果檢視具有`SUPER`類型欄位，且另一個引擎參考該資料欄作為特定複雜類型，例如 struct (`<street_address:struct<street_number:int, street_name:string, street_type:string>>`)，則 Data Catalog 會假設該欄位為特定複雜類型，並在儲存體描述項中使用該欄位，而不需要`Force`旗標。

如需建立和管理 Data Catalog 檢視之語法的詳細資訊，請參閱：
+ 《Amazon Athena 使用者指南》中的[使用 AWS Glue Data Catalog 檢視](https://docs.aws.amazon.com/athena/latest/ug/views-glue.html)。
+ 《Amazon Athena 使用者指南》中的 [Glue Data Catalog 檢視查詢語法](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)。

  若要取得有關與 Data Catalog 中的視觀表相關之 SQL 命令的更多資訊，請參閱[CREATE EXTERNAL VIEW](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_VIEW.html)、[ALTER EXTERNAL VIEW](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_EXTERNAL_VIEW.html) 和 [DROP EXTERNAL VIEW](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_EXTERNAL_VIEW.html)。

建立 Data Catalog 檢視後，您可以在 Lake Formation 主控台中取得檢視的詳細資訊。

1. 在 Lake Formation 主控台中選擇資料目錄下的**檢視**。

1. 可用檢視的清單會顯示在檢視頁面上。

1. 從清單中選擇檢視，詳細資訊頁面會顯示檢視的屬性。

![下一節包含五個水平排列的標籤，其中每個標籤都包含對應的資訊 。](http://docs.aws.amazon.com/zh_tw/lake-formation/latest/dg/images/view-definition.png)


結構描述  
選擇資料`Column`列，然後選取**編輯 LF 標籤**以更新標籤值或指派新的 LF 標籤。

SQL 定義  
您可以查看可用的 SQL 定義清單。選取**新增 SQL 定義**，然後選擇查詢引擎以新增 SQL 定義。在資料`Edit definition`欄下選擇查詢引擎 (Athena 或 Amazon Redshift) 以更新 SQL 定義。

LF 標籤  
選擇**編輯 LF 標籤**以編輯標籤的值或指派新標籤。您可以使用 LF 標籤來授予檢視的許可。

跨帳戶存取權  
您可以查看已與您共用 Data Catalog 檢視的組織 AWS 帳戶和組織單位 (OUs) 清單。

基礎資料表  
用於建立檢視的 SQL 定義中參考的基礎資料表會顯示在此索引標籤下方。