

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

# 將 Amazon S3 Tables 與 AWS 分析服務整合
<a name="s3-tables-integrating-aws"></a>

本主題涵蓋將您的 Amazon S3 資料表儲存貯體與 AWS 分析服務整合所需的先決條件和程序。如需整合運作方式的概觀，請參閱 [S3 Tables 整合概觀](s3-tables-integration-overview.md)。

**注意**  
此整合使用 AWS Glue Data Catalog 和 ，可能會產生 AWS Glue 請求和儲存成本。如需詳細資訊，請參閱[AWS Glue 定價](https://aws.amazon.com/glue/pricing/)。  
其他定價適用於在 S3 Tables 上執行查詢。如需詳細資訊，請參閱您正在使用的查詢引擎定價資訊。

## 整合的先決條件
<a name="table-integration-prerequisites"></a>

整合資料表儲存貯體與 AWS 分析服務時需要下列先決條件：
+ [建立資料表儲存貯體。](s3-tables-buckets-create.md)
+ 將下列 AWS Glue 許可新增至您的 AWS Identity and Access Management (IAM) 委託人：
  + `glue:CreateCatalog` 在 Data Catalog `s3tablescatalog` 中建立聯合目錄時需要
  + `glue:PassConnection` 授予呼叫主體將`aws:s3tables`連線建立委派給 Amazon S3 服務的權利。
+ [更新至最新版本的 AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions)。

**重要**  
建立資料表時，請務必在資料表名稱和資料表定義中，全部都使用小寫字母。例如，確定欄的名稱都小寫。如果您的資料表名稱或資料表定義包含大寫字母，則 AWS Lake Formation 或 不支援資料表 AWS Glue Data Catalog。在這種情況下，即使您的資料表儲存貯體與 AWS 分析服務整合，Amazon Athena 等 AWS 分析服務也看不到您的資料表。  
如果您的資料表定義包含大寫字母，您在 Athena 中執行 `SELECT` 查詢時會收到下列錯誤訊息："GENERIC\$1INTERNAL\$1ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names."

## 將資料表儲存貯體與 AWS 分析服務整合
<a name="table-integration-procedures"></a>

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

使用 IAM 存取控制整合時，您需要 IAM 權限才能存取 Amazon S3 資料表儲存貯體和資料表、Data Catalog 物件，以及您正在使用的查詢引擎。如果您選擇使用 Lake Formation 整合，則 IAM 存取控制和 Lake Formation 授予會決定對 Data Catalog 資源的存取。請參閱 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html)，進一步了解 Lake Formation 整合。

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

### 使用 S3 主控台
<a name="integrate-console"></a>

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

1. 在左側導覽窗格中，選擇**資料表儲存貯體**。

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

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

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

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

### 使用 AWS CLI
<a name="integrate-cli"></a>

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

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

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

   ```
   aws s3tables create-table-bucket \
   --region us-east-1 \
   --name amzn-s3-demo-table-bucket
   ```

1. 建立包含下列型錄之名為 `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
   ```

1.  AWS Glue 使用以下命令確認`s3tablescatalog`目錄已新增至 ：

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

### 移轉至更新的整合程序
<a name="migrate-integrate-console"></a>

根據預設， AWS 分析服務整合程序已更新為使用 IAM 許可。如果您已經設定整合，則可以繼續使用目前的整合。不過，如果您想要將現有的整合改為使用 IAM 許可，請參閱 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html)。您也可以重做整合，在 AWS Glue Data Catalog 和 中刪除現有的設定 AWS Lake Formation ，然後重新執行整合。這將移除所有現有的 Lake Formation 授予和對 的相關聯存取許可`s3tablescatalog`。

1. 在 開啟 AWS Lake Formation 主控台[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)，並以資料湖管理員身分登入。如需如何建立資料湖管理員的詳細資訊，請參閱《AWS Lake Formation 開發人員指南》**中的[建立資料湖管理員](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)。

1. 執行下列動作來刪除您的 `s3tablescatalog` 目錄：
   + 在左側導覽窗格中，選擇**型錄**。
   + 選取**目錄**清單中 `s3tablescatalog` 目錄旁的選項按鈕。在**操作**功能表上，選擇**刪除**。

1. 執行下列動作，取消註冊 `s3tablescatalog` 目錄的資料位置：
   + 在左側導覽窗格中，前往**管理**區段，然後選擇**資料湖位置**。
   + 選取 `s3tablescatalog` 資料湖位置旁的選項按鈕，例如 `s3://tables:region:account-id:bucket/*`。
   + 在**動作**功能表上，選擇**移除**。
   + 在出現的確認對話方塊中，選擇**移除**。

1. 現在您已刪除`s3tablescatalog`目錄和資料湖位置，您可以依照步驟使用更新的[整合程序，將資料表儲存貯體與 AWS 分析服務](#table-integration-procedures)整合。

**注意**  
如果您想要在整合式 AWS 分析服務中使用 SSE-KMS 加密資料表，您使用的角色需要具有許可，才能將 AWS KMS 金鑰用於加密操作。如需詳細資訊，請參閱[授予 IAM 主體在整合 AWS 分析服務中使用加密資料表的許可](s3-tables-kms-permissions.md#tables-kms-integration-permissions)。

**後續步驟**
+ [建立命名空間。](s3-tables-namespace-create.md).
+ [建立資料表](s3-tables-create.md).