在 Lake Formation 中設定開放資料表儲存格式的許可 - AWS Lake Formation

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

在 Lake Formation 中設定開放資料表儲存格式的許可

AWS Lake Formation 支援管理開放資料表格式 (OTFs) 的存取許可,例如 Apache Iceberg Apache Hudi Linux 基礎 Delta Lake 。在本教學課程中,您將了解如何 AWS Glue Data Catalog 使用 建立 Iceberg、Hudi 和 Delta Lake,並在 中使用 symlink 資訊清單表 AWS Glue,使用 Lake Formation 設定精細許可,以及使用 Amazon Athena 查詢資料。

注意

AWS 分析服務不支援所有交易資料表格式。如需詳細資訊,請參閱使用其他服務 AWS。本教學課程僅涵蓋使用 AWS Glue 任務在 Data Catalog 中手動建立新資料庫和資料表。

本教學課程包含快速設定的 AWS CloudFormation 範本。您可以檢閱並自訂它,以符合您的需求。

目標對象

本教學課程適用於IAM管理員、資料湖管理員和業務分析師。下表列出本教學課程中用於使用 Lake Formation 建立受管資料表的角色。

角色 描述
IAM 管理員 可以建立IAM使用者和角色以及 Amazon S3 儲存貯體的使用者。具有 AdministratorAccess AWS 受管政策。
Data lake 管理員 可以存取 Data Catalog、建立資料庫,以及將 Lake Formation 許可授予其他使用者的使用者。IAM 許可少於IAM管理員,但足以管理資料湖。
業務分析師 可針對資料湖執行查詢的使用者。具有執行查詢的許可。

必要條件

開始本教學課程之前,您必須擁有 AWS 帳戶 可以具有正確許可的使用者登入的 。如需詳細資訊,請參閱 註冊 AWS 帳戶建立具有管理存取權的使用者

本教學課程假設您熟悉IAM角色和政策。如需 的相關資訊IAM,請參閱 IAM 使用者指南

您需要設定下列 AWS 資源才能完成本教學課程:

  • Data Lake 管理員使用者

  • Lake Formation 資料湖設定

  • Amazon Athena 引擎第 3 版

建立資料湖管理員
  1. 以管理員使用者https://console.aws.amazon.com/lakeformation/身分登入 Lake Formation 主控台 。您將在美國東部 (維吉尼亞北部) 區域建立本教學課程的資源。

  2. 在 Lake Formation 主控台的導覽窗格中,在許可 下,選擇管理角色和任務

  3. 選取 Data lake 管理員 下的選擇管理員。

  4. 在快顯視窗中,管理資料湖管理員 ,在IAM使用者和角色 下,選擇IAM管理使用者

  5. 選擇 Save (儲存)。

啟用資料湖設定
  1. 在 開啟 Lake Formation 主控台https://console.aws.amazon.com/lakeformation/。在導覽窗格中的資料目錄 下,選擇設定 。取消核取下列項目:

    • 僅對新資料庫使用IAM存取控制。

    • 僅對新資料庫中的新資料表使用IAM存取控制。

  2. 跨帳戶版本設定 下,選擇版本 3 作為跨帳戶版本。

  3. 選擇 Save (儲存)。

將 Amazon Athena 引擎升級至第 3 版
  1. 在 開啟 Athena 主控台https://console.aws.amazon.com/athena/

  2. 選取工作群組,然後選取主要工作群組。

  3. 確保工作群組的最小版本為 3。如果不是,請編輯工作群組,選擇升級查詢引擎的手動 ,然後選擇版本 3。

  4. 選擇 Save changes (儲存變更)。

步驟 1:佈建資源

本節說明如何使用 AWS CloudFormation 範本設定 AWS 資源。

使用 AWS CloudFormation 範本建立資源
  1. 以美國東部 (維吉尼亞北部) 區域中的IAM管理員身分,在 https://console.aws.amazon.com/cloudformation 登入 AWS CloudFormation 主控台。

  2. 選擇啟動堆疊

  3. 建立堆疊畫面上選擇下一步

  4. 輸入堆疊名稱

  5. 選擇 Next (下一步)

  6. 在下一頁,選擇下一個

  7. 檢閱最終頁面上的詳細資訊,然後選取我確認 AWS CloudFormation 可能會建立IAM資源。

  8. 選擇 Create (建立)。

    堆疊建立最多可能需要兩分鐘。

啟動雲端形成堆疊會建立下列資源:

  • lf-otf-datalake-123456789012 – Amazon S3 儲存貯體以存放資料

    注意

    附加至 Amazon S3 儲存貯體名稱的帳戶 ID 會取代為您的帳戶 ID。

  • lf-otf-tutorial-123456789012 – Amazon S3 儲存貯體,用於儲存查詢結果和 AWS Glue 任務指令碼

  • lficebergdb – AWS Glue Iceberg 資料庫

  • lfhudidb – AWS Glue Hudi 資料庫

  • lfdeltadb – AWS Glue Delta 資料庫

  • native-iceberg-create –在 Data Catalog 中建立 Iceberg 資料表 AWS Glue 的任務

  • native-hudi-create –在 Data Catalog 中建立 Hudi 資料表 AWS Glue 的任務

  • native-delta-create –在 Data Catalog 中建立 Delta 資料表 AWS Glue 的任務

  • LF-OTF-GlueServiceRole – 您 AWS Glue 用來執行任務IAM的角色。此角色已附加必要的政策,以存取 Data Catalog、Amazon S3 儲存貯體等資源。

  • LF-OTF-RegisterRole – 向 Lake Formation 註冊 Amazon S3 位置IAM的角色。此角色已LF-Data-Lake-Storage-Policy連接至角色。

  • lf-consumer-analystuser – IAM使用者使用 Athena 查詢資料

  • lf-consumer-analystuser-credentials – 存放在 中的資料分析師使用者的密碼 AWS Secrets Manager

堆疊建立完成後,導覽至輸出索引標籤並記下下列值:

  • AthenaQueryResultLocation – Athena 查詢輸出的 Amazon S3 位置

  • BusinessAnalystUserCredentials – 資料分析師使用者的密碼

    若要擷取密碼值:

    1. 導覽至 Secrets Manager 主控台以選擇lf-consumer-analystuser-credentials值。

    2. Secret value (秘密值) 區段,選擇 Retrieve secret value (擷取秘密值)

    3. 記下密碼的秘密值。

步驟 2:設定 Iceberg 資料表的許可

在本節中,您將了解如何在 中建立 Iceberg 資料表 AWS Glue Data Catalog、在 中設定資料許可 AWS Lake Formation,以及使用 Amazon Athena 查詢資料。

若要建立 Iceberg 資料表

在此步驟中,您將執行在資料目錄中建立 Iceberg 交易資料表 AWS Glue 的任務。

  1. 開啟 AWS Glue https://console.aws.amazon.com/glue/ 主控台,位於美國東部 (維吉尼亞北部) 區域 作為資料湖管理員使用者。

  2. 從左側導覽窗格中選擇任務

  3. 選取 native-iceberg-create

    映像是主控台中 AWS Glue 任務頁面的螢幕擷取畫面。
  4. 動作 下,選擇編輯任務

  5. 任務詳細資訊 下,展開進階屬性 ,並勾選使用 AWS Glue Data Catalog 作為 Hive 中繼存放區旁邊的核取方塊,以在 中新增資料表中繼資料 AWS Glue Data Catalog。這會指定 AWS Glue Data Catalog 作為任務中使用的 Data Catalog 資源的中繼存放區,並允許 Lake Formation 許可稍後套用至目錄資源。

  6. 選擇 Save (儲存)。

  7. 選擇執行。您可以在任務執行時檢視任務的狀態。

    如需 AWS Glue 任務的詳細資訊,請參閱 AWS Glue 開發人員指南 中的使用 AWS Glue 主控台上的任務

    此任務會在lficebergdb資料庫中建立名為 Iceberg product 的資料表。在 Lake Formation 主控台中驗證產品資料表。

若要向 Lake Formation 註冊資料位置

接下來,將 Amazon S3 路徑註冊為資料湖的位置。

  1. 開啟 Lake Formation 主控台,位於 https://console.aws.amazon.com/lakeformation/作為資料湖管理員使用者。

  2. 在導覽窗格中的註冊和擷取 下,選擇資料位置

  3. 在主控台的右上角,選擇註冊位置

  4. 註冊位置頁面上,輸入下列內容:

    • Amazon S3 路徑 – 選擇瀏覽,然後選擇 lf-otf-datalake-123456789012。按一下 Amazon S3 根位置旁邊的向右箭頭 (>) 以導覽至s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-iceberg位置。

    • IAM 角色 – 選擇 LF-OTF-RegisterRole作為IAM角色。

    • 選擇註冊位置

    映像是主控台中 Lake Formation 註冊位置頁面的螢幕擷取畫面。

    如需使用 Lake Formation 註冊資料位置的詳細資訊,請參閱 將 Amazon S3 位置新增至您的資料湖

在 Iceberg 資料表上授予 Lake Formation 許可

在此步驟中,我們會將資料湖許可授予商業分析師使用者。

  1. Data lake 許可 下,選擇授予

  2. 授予資料許可畫面上,選擇IAM使用者和角色

  3. lf-consumer-analystuser 從下拉式清單中選擇。

    映像是主控台中 Lake Formation 許可頁面的螢幕擷取畫面。
  4. 選擇具名資料型錄資源

  5. 針對資料庫,選擇 lficebergdb

  6. 針對資料表 ,選擇 product

    映像是主控台中 Lake Formation 許可頁面的螢幕擷取畫面。
  7. 接下來,您可以透過指定資料欄來授予資料欄型存取。

    1. 資料表許可 下,選擇選取

    2. 資料許可 下,選擇以資料欄為基礎的存取 ,選擇包含資料欄

    3. 選擇 product_namepricecategory資料欄。

    4. 選擇 Grant (授予)。

      映像是主控台中 Lake Formation 許可頁面的螢幕擷取畫面。
使用 Athena 查詢 Iceberg 資料表

現在您可以開始查詢使用 Athena 建立的 Iceberg 資料表。如果這是您第一次在 Athena 中執行查詢,則需要設定查詢結果位置。如需詳細資訊,請參閱指定查詢結果位置

  1. 以資料湖管理員使用者身分登出,並使用先前從 AWS CloudFormation 輸出lf-consumer-analystuser中記下的密碼,以美國東部 (維吉尼亞北部) 區域中的身分登入。

  2. https://console.aws.amazon.com/athena/ 中開啟 Athena 主控台。

  3. 選擇設定,然後選擇管理

  4. 查詢結果的位置方塊中,輸入您在 AWS CloudFormation 輸出中建立的儲存貯體路徑。複製 AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 的值,然後選擇儲存

  5. 執行下列查詢以預覽儲存在 Iceberg 資料表中的 10 筆記錄:

    select * from lficebergdb.product limit 10;

    如需使用 Athena 查詢 Iceberg 資料表的詳細資訊,請參閱 Amazon Athena 使用者指南 中的查詢 Iceberg 資料表

步驟 3:設定 Hudi 資料表的許可

在本節中,您將了解如何在 中建立 Hudi 資料表 AWS Glue Data Catalog、在 中設定資料許可 AWS Lake Formation,以及使用 Amazon Athena 查詢資料。

建立 Hudi 資料表

在此步驟中,您將執行在資料目錄中建立 Hudi 交易資料表 AWS Glue 的任務。

  1. 登入 AWS Glue 美國東部 https://console.aws.amazon.com/glue/ (維吉尼亞北部) 區域的 主控台

    作為資料湖管理員使用者。

  2. 從左側導覽窗格中選擇任務

  3. 選取 native-hudi-create

  4. 動作 下,選擇編輯任務

  5. 任務詳細資訊 下,展開進階屬性 ,並勾選使用 AWS Glue Data Catalog 作為 Hive 中繼存放區旁邊的核取方塊,以在 中新增資料表中繼資料 AWS Glue Data Catalog。這指定 AWS Glue Data Catalog 為任務中使用的 Data Catalog 資源的中繼存放區,並允許稍後在目錄資源上套用 Lake Formation 許可。

  6. 選擇 Save (儲存)。

  7. 選擇執行。您可以在任務執行時檢視任務的狀態。

    如需 AWS Glue 任務的詳細資訊,請參閱 AWS Glue 開發人員指南 中的使用 AWS Glue 主控台上的任務

    此任務會在 database:lfhudidb 中建立 Hudi(cow) 資料表。在 Lake Formation 主控台中驗證product資料表。

若要向 Lake Formation 註冊資料位置

接下來,將 Amazon S3 路徑註冊為資料湖的根位置。

  1. 以資料湖管理員使用者https://console.aws.amazon.com/lakeformation/身分登入 Lake Formation 主控台 。

  2. 在導覽窗格中的註冊和擷取 下,選擇資料位置

  3. 在主控台的右上角,選擇註冊位置

  4. 註冊位置頁面上,輸入下列內容:

    • Amazon S3 路徑 – 選擇瀏覽,然後選擇 lf-otf-datalake-123456789012。按一下 Amazon S3 根位置旁邊的向右箭頭 (>) 以導覽至s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-hudi位置。

    • IAM 角色 – 選擇 LF-OTF-RegisterRole作為IAM角色。

    • 選擇註冊位置

在 Hudi 資料表上授予資料湖許可

在此步驟中,我們會將資料湖許可授予商業分析師使用者。

  1. Data lake 許可 下,選擇授予

  2. 授予資料許可畫面上,選擇IAM使用者和角色

  3. lf-consumer-analystuser 從下拉式清單。

  4. 選擇具名資料型錄資源

  5. 對於資料庫,選擇 lfhudidb

  6. 針對資料表 ,選擇 product

  7. 接下來,您可以透過指定資料欄來授予資料欄型存取。

    1. 資料表許可 下,選擇選取

    2. 資料許可 下,選擇以資料欄為基礎的存取 ,選擇包含資料欄

    3. 選擇 product_namepricecategory資料欄。

    4. 選擇 Grant (授予)。

使用 Athena 查詢 Hudi 資料表

現在開始查詢您使用 Athena 建立的 Hudi 資料表。如果這是您第一次在 Athena 中執行查詢,則需要設定查詢結果位置。如需詳細資訊,請參閱指定查詢結果位置

  1. 以資料湖管理員使用者身分登出,並使用先前從 AWS CloudFormation 輸出lf-consumer-analystuser中記下的密碼,以美國東部 (維吉尼亞北部) 區域中的身分登入。

  2. https://console.aws.amazon.com/athena/ 中開啟 Athena 主控台。

  3. 選擇設定,然後選擇管理

  4. 查詢結果的位置方塊中,輸入您在 AWS CloudFormation 輸出中建立之儲存貯體的路徑。複製 AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 和 Save 的值。

  5. 執行下列查詢以預覽儲存在 Hudi 資料表中的 10 筆記錄:

    select * from lfhudidb.product limit 10;

    如需查詢 Hudi 資料表的詳細資訊,請參閱 Amazon Athena 使用者指南 中的查詢 Hudi 資料表一節。

步驟 4:設定 Delta Lake 資料表的許可

在本節中,您將了解如何在 中建立具有符號連結資訊清單檔案的 Delta Lake 資料表 AWS Glue Data Catalog、在 中設定資料許可, AWS Lake Formation 以及使用 Amazon Athena 查詢資料。

若要建立 Delta Lake 資料表

在此步驟中,您將執行在資料目錄中建立 Delta Lake 交易資料表 AWS Glue 的任務。

  1. 登入 AWS Glue 美國東部 https://console.aws.amazon.com/glue/ (維吉尼亞北部) 區域的 主控台

    作為資料湖管理員使用者。

  2. 從左側導覽窗格中選擇任務

  3. 選取 native-delta-create

  4. 動作 下,選擇編輯任務

  5. 任務詳細資訊 下,展開進階屬性 ,並勾選使用 AWS Glue Data Catalog 作為 Hive 中繼存放區旁邊的核取方塊,以在 中新增資料表中繼資料 AWS Glue Data Catalog。這指定 AWS Glue Data Catalog 為任務中使用的 Data Catalog 資源的中繼存放區,並允許稍後在目錄資源上套用 Lake Formation 許可。

  6. 選擇 Save (儲存)。

  7. 選擇動作 下的執行

    此任務會在lfdeltadb資料庫中建立名為 product的 Delta Lake 資料表。在 Lake Formation 主控台中驗證product資料表。

若要向 Lake Formation 註冊資料位置

接下來,將 Amazon S3 路徑註冊為資料湖的根位置。

  1. 在資料湖管理員使用者https://console.aws.amazon.com/lakeformation/處開啟 Lake Formation 主控台。

  2. 在導覽窗格中的註冊和擷取 下,選擇資料位置

  3. 在主控台的右上角,選擇註冊位置

  4. 註冊位置頁面上,輸入下列內容:

    • Amazon S3 路徑 – 選擇瀏覽,然後選擇 lf-otf-datalake-123456789012。按一下 Amazon S3 根位置旁的向右箭頭 (>) 導覽至s3/buckets/lf-otf-datalake-123456789012/transactionaldata/native-delta位置。

    • IAM 角色 – 選擇 LF-OTF-RegisterRole作為IAM角色。

    • 選擇註冊位置

在 Delta Lake 資料表上授予資料湖許可

在此步驟中,我們會將資料湖許可授予商業分析師使用者。

  1. Data lake 許可 下,選擇授予

  2. 授予資料許可畫面上,選擇IAM使用者和角色

  3. lf-consumer-analystuser 從下拉式清單。

  4. 選擇具名資料型錄資源

  5. 針對資料庫,選擇 lfdeltadb

  6. 針對資料表 ,選擇 product

  7. 接下來,您可以透過指定資料欄來授予資料欄型存取。

    1. 資料表許可 下,選擇選取

    2. 資料許可 下,選擇以資料欄為基礎的存取 ,選擇包含資料欄

    3. 選擇 product_namepricecategory資料欄。

    4. 選擇 Grant (授予)。

使用 Athena 查詢 Delta Lake 資料表

現在開始查詢您使用 Athena 建立的 Delta Lake 資料表。如果這是您第一次在 Athena 中執行查詢,則需要設定查詢結果位置。如需詳細資訊,請參閱指定查詢結果位置

  1. 以資料湖管理員使用者身分登出,並使用先前從 AWS CloudFormation 輸出BusinessAnalystUser中記下的密碼,以美國東部 (維吉尼亞北部) 區域中的身分登入。

  2. https://console.aws.amazon.com/athena/ 中開啟 Athena 主控台。

  3. 選擇設定,然後選擇管理

  4. 查詢結果的位置方塊中,輸入您在 AWS CloudFormation 輸出中建立的儲存貯體路徑。複製 AthenaQueryResultLocation(s3://lf-otf-tutorial-123456789012/athena-results/) 和 Save 的值。

  5. 執行下列查詢,預覽 Delta Lake 資料表中存放的 10 筆記錄:

    select * from lfdeltadb.product limit 10;

    如需查詢 Delta Lake 資料表的詳細資訊,請參閱 Amazon Athena 使用者指南 中的查詢 Delta Lake 資料表一節。

步驟 5:清除 AWS 資源

清理資源

若要避免對 收取不必要的費用 AWS 帳戶,請刪除您用於本教學課程 AWS 的資源。

  1. 以IAM管理員身分在 https://console.aws.amazon.com/cloudformation 登入 AWS CloudFormation 主控台。

  2. 刪除雲端形成堆疊 。您建立的資料表會自動與堆疊一起刪除。