使用檢視 - AWS Lake Formation

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

使用檢視

這項功能目前在預覽版本中,並可能會有所變更。如需詳細資訊,請參閱 AWS 服務條款文件中的「測試版和預覽版」一節。

在中 AWS Glue Data Catalog,檢視是虛擬資料表,其中的內容是由參照一或多個資料表的查詢來定義。您可以使用適用於 Amazon 雅典娜、亞馬遜 Amazon Redshift 或亞馬遜 EMR 的 SQL 編輯器建立最多 10 個表格的檢視。視圖的基礎參考表可以屬於相同的數據庫或相同內的不同數據庫 AWS 帳戶。

SQL 是用於查詢表的編程語言,每個 AWS 分析引擎使用自己的 SQL 或 SQL 方言的變化。資料目錄支援使用不同的 SQL 方言建立檢視,只要每個方言參考相同的資料表、資料行和資料類型。透過定義可從多個引擎查詢的通用檢視結構描述和中繼資料物件,「資料目錄」檢視可讓您在整個資料湖中使用統一檢視。

當您管理資料目錄中的檢視時,您可以使用透過指 AWS Lake Formation 定的資源方法或使用 LF 標籤授與細微的權限,並在組織和 AWS 組織單位之間 AWS 帳戶共用這些權限。您也可以在各處共用資料目錄檢視 AWS 區域。這可讓使用者在 AWS 區域 不複製資料來源的情況下提供資料存取。

如需跨帳戶資料共用與跨區域資料存取的詳細資訊,請參閱:

您可以使用「資料目錄」檢視來:

  • 建立和管理單一檢視結構描述的權限。這可協助您避免在多個引擎中建立的重複檢視上存在不一致權限的風險。

  • 在參考多個資料表的檢視上,將權限授與使用者,而不直接授與基礎參考資料表的權限。

有關限制,請參閱 資料目錄檢視考量和限制

建立視圖的先決條件

  • 若要在資料目錄中建立檢視,您必須向 Lake Formation 註冊參考表的基礎 Amazon S3 資料位置。

    有關向 Lake Formation 註冊數據的詳細信息,請參閱將 Amazon S3 位置新增至您的資料湖

  • 檢視定義器必須是 IAM 角色。其他 IAM 身分無法建立資料目錄檢視。

  • 定義檢視的 IAM 角色必須具有下列權限:

    • 完整的 Lake Formation SELECT 許可,並在所有參考表上Grantable選項。

    • 為 Lake Formation 和 AWS Glue 服務擔任該角色的信任政策。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "DataCatalogViewDefinerAssumeRole1", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    • IAM:PassRole 許可 AWS Glue 和 Lake Formation。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "DataCatalogViewDefinerPassRole1", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] } } } ] }
    • AWS Glue 和 Lake Formation 的權限。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "Glue:GetDatabase", "Glue:GetDatabases", "Glue:CreateTable", "Glue:GetTable", "Glue:UpdateTable", "Glue:DeleteTable", "Glue:GetTables", "Glue:SearchTables", "Glue:BatchGetPartition", "Glue:GetPartitions", "Glue:GetPartition", "Glue:GetTableVersion", "Glue:GetTableVersions", "lakeFormation:GetDataAccess", "lakeFormation:GetTemporaryTableCredentials", "lakeFormation:GetTemporaryGlueTableCredentials", "lakeFormation:GetTemporaryUserCredentialsWithSAML" ], "Resource": "*" } ] }
  • 如果正在建立檢視的資料庫具有Super或授與該IAMAllowedPrincipals群組的ALL權限,則無法建立檢視表。若要撤銷資料庫上IAMAllowedPrincipals群組的Super權限,請參閱步驟 4:將資料存放區切換至 Lake Formation 型權限模型

    如果您現有的資料湖設定不允許您為IAMAllowedPrincipals群組設定CreateTableDefaultPermissions空白,您可以建立新資料庫並使用下列結構編寫資料湖設定的程式碼。

    { "DataLakeSettings": { "DataLakeAdmins": [ { "DataLakePrincipalIdentifier": "arn:aws:iam::<AccountId>:user/<Username>" } ], CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [] } ] }

建立檢視

您可以使用 SQL 編輯器 Athena、亞馬 Amazon Redshift 或 Amazon EMR 在. AWS Glue Data Catalog

如需建立和管理資料目錄檢視之語法的詳細資訊,請參閱:

建立「資料目錄」檢視之後,會顯示 Lake Formation 主控台中檢視的詳細資料。

  1. 在「Lake Formation」主控台的「資料目錄」下選擇「

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

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

下半部分包含五個水平排列的標籤,其中每個標籤都包含相應的資訊。
結構描述

選擇一Column列,然後選取「編輯 LF 標籤」以更新標籤值或指定新的 LF 標籤。

SQL 定義

您可以看到可用的 SQL 定義清單。選取「新增 SQL 定義」,然後選擇查詢引擎以新增 SQL 定義。在Edit definition欄下選擇查詢引擎 (Athena 或 Amazon Redshift) 以更新 SQL 定義。

LF-標籤

選擇 「編輯 LF 標籤」以編輯標籤的值或指定新標籤。您可以使用 LF 標籤來授予檢視的權限。

跨帳戶存取權

您可以查看已共用資料目錄檢視的 AWS 帳戶組織和組織單位 (OU) 清單。

基礎資料表

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

授與資料目錄檢視的權限

建立檢視之後,您可以將檢視的資料湖權限授與組織和組織單位的主參與者。 AWS 帳戶如需授與權限的詳細資訊,請參閱 使用指定的資源方法授與檢視的權限