View a markdown version of this page

將 Amazon S3 Tables 與 AWS 分析服務整合 - Amazon Simple Storage Service

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

將 Amazon S3 Tables 與 AWS 分析服務整合

本主題涵蓋將您的 Amazon S3 資料表儲存貯體與 AWS 分析服務整合所需的先決條件和程序。如需整合運作方式的概觀,請參閱 S3 Tables 整合概觀

注意

此整合使用 AWS Glue Data Catalog 和 ,可能會產生 AWS Glue 請求和儲存成本。如需詳細資訊,請參閱AWS Glue 定價

其他定價適用於在 S3 Tables 上執行查詢。如需詳細資訊,請參閱您正在使用的查詢引擎定價資訊。

整合的先決條件

整合資料表儲存貯體與 AWS 分析服務時需要下列先決條件:

重要

建立資料表時,請務必在資料表名稱和資料表定義中,全部都使用小寫字母。例如,確定欄的名稱都小寫。如果您的資料表名稱或資料表定義包含大寫字母,則 AWS Lake Formation 或 不支援資料表 AWS Glue Data Catalog。在這種情況下,即使您的資料表儲存貯體與 AWS 分析服務整合,Amazon Athena 等 AWS 分析服務也看不到您的資料表。

如果您的資料表定義包含大寫字母,您在 Athena 中執行 SELECT 查詢時會收到下列錯誤訊息:"GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names."

將資料表儲存貯體與 AWS 分析服務整合

根據預設,您可以使用 IAM 存取控制將資料表儲存貯體與 Data Catalog AWS 和分析服務整合,或選擇性地使用 Lake Formation 存取控制。

使用 IAM 存取控制整合時,您需要 IAM 權限才能存取 Amazon S3 資料表儲存貯體和資料表、Data Catalog 物件,以及您正在使用的查詢引擎。如果您選擇使用 Lake Formation 整合,則 IAM 存取控制和 Lake Formation 授予會決定對 Data Catalog 資源的存取。請參閱 AWS Lake Formation 開發人員指南,進一步了解 Lake Formation 整合。

下列各節說明如何使用 Amazon S3 管理主控台或 AWS CLI 來設定與 IAM 存取控制的整合。

  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 在左側導覽窗格中,選擇資料表儲存貯體

  3. 選擇 建立資料表儲存貯體

    建立資料表儲存貯體 頁面隨即開啟。

  4. 輸入資料表儲存貯體名稱,並確認已選取啟用整合核取方塊。

  5. 選擇 建立資料表儲存貯體。Amazon S3 將嘗試自動整合您在該區域中的資料表儲存貯體。

使用 將資料表儲存貯體與 IAM 存取控制整合 AWS CLI

下列步驟說明如何使用 AWS CLI 來整合資料表儲存貯體。若要使用這些步驟,請以您自己的資訊取代 user input placeholders

  1. 建立資料表儲存貯體。

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. 建立包含下列型錄之名為 catalog.json 的檔案:

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "CreateTableDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "AllowFullTableExternalDataAccess": "True" } }

    使用下列命令列來建立 s3tablescatalog 型錄。建立此目錄會將對應至資料表儲存貯體、命名空間和資料表的 AWS Glue Data Catalog 物件填入 。

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json
  3. AWS Glue 使用以下命令確認s3tablescatalog目錄已新增至 :

    aws glue get-catalog --catalog-id s3tablescatalog

根據預設, AWS 分析服務整合程序已更新為使用 IAM 許可。如果您已經設定整合,則可以繼續使用目前的整合。不過,如果您想要將現有的整合改為使用 IAM 許可,請參閱 AWS Lake Formation 開發人員指南。您也可以重做整合,在 AWS Glue Data Catalog 和 中刪除現有的設定 AWS Lake Formation ,然後重新執行整合。這將移除所有現有的 Lake Formation 授予和對 的相關聯存取許可s3tablescatalog

  1. 在 開啟 AWS Lake Formation 主控台https://console.aws.amazon.com/lakeformation/,並以資料湖管理員身分登入。如需如何建立資料湖管理員的詳細資訊,請參閱《AWS Lake Formation 開發人員指南》中的建立資料湖管理員

  2. 執行下列動作來刪除您的 s3tablescatalog 目錄:

    • 在左側導覽窗格中,選擇型錄

    • 選取目錄清單中 s3tablescatalog 目錄旁的選項按鈕。在操作功能表上,選擇刪除

  3. 執行下列動作,取消註冊 s3tablescatalog 目錄的資料位置:

    • 在左側導覽窗格中,前往管理區段,然後選擇資料湖位置

    • 選取 s3tablescatalog 資料湖位置旁的選項按鈕,例如 s3://tables:region:account-id:bucket/*

    • 動作功能表上,選擇移除

    • 在出現的確認對話方塊中,選擇移除

  4. 現在您已刪除s3tablescatalog目錄和資料湖位置,您可以依照步驟使用更新的整合程序,將資料表儲存貯體與 AWS 分析服務整合。

注意

如果您想要在整合式 AWS 分析服務中使用 SSE-KMS 加密資料表,您使用的角色需要具有許可,才能將 AWS KMS 金鑰用於加密操作。如需詳細資訊,請參閱授予 IAM 主體在整合 AWS 分析服務中使用加密資料表的許可