

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

# Amazon S3 Tables 與 AWS 分析服務整合概觀
<a name="s3-tables-integration-overview"></a>

若要讓 AWS 分析服務存取您帳戶中的資料表，您可以將 Amazon S3 資料表儲存貯體與 整合 AWS Glue Data Catalog。此整合可讓 AWS 分析服務自動探索和存取您的資料表資料。您可以透過這項整合來使用這些服務中的資料表：
+ [Amazon Athena](s3-tables-integrating-athena.md) 
+  [Amazon Redshift](s3-tables-integrating-redshift.md)
+  [Amazon EMR](s3-tables-integrating-emr.md)
+  [Quick](s3-tables-integrating-quicksight.md)
+  [Amazon Data Firehose](s3-tables-integrating-firehose.md)

**注意**  
此整合使用 AWS Glue 和 AWS Lake Formation 服務，並可能產生 AWS Glue 請求和儲存成本。如需詳細資訊，請參閱[AWS Glue 定價](https://aws.amazon.com/glue/pricing/)。  
在 S3 資料表上執行查詢則採用另外的定價。如需詳細資訊，請參閱您正在使用的查詢引擎定價資訊。

## 整合的運作方式
<a name="how-table-integration-works"></a>

當您將 S3 Tables 與 AWS 分析服務整合時，Amazon S3 會將名為 AWS Glue Data Catalog 的目錄新增至目前區域中的 `s3tablescatalog` 。新增 `s3tablescatalog`可讓所有資料表儲存貯體、命名空間和資料表填入資料目錄中。

**注意**  
這些動作會藉由 Amazon S3 主控台自動化。如果您以程式設計方式執行此整合，則必須手動執行這些動作。

您可以整合每個 AWS 區域的資料表儲存貯體一次。整合完成後，所有目前和未來的資料表儲存貯體、命名空間和資料表都會新增至該區域中 AWS Glue Data Catalog 的 。

下圖顯示 `s3tablescatalog` 目錄如何自動填入目前區域中的資料表儲存貯體、命名空間和資料表，以做為資料目錄中的對應物件。資料表儲存貯體會做為子目錄填入。資料表儲存貯體中的命名空間會做為其各自子目錄內的資料庫填入。資料表會作為其個別資料庫中的資料表填入。

![\[資料表資源的呈現方式 AWS Glue Data Catalog。\]](http://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/images/S3Tables-glue-catalog.png)


與 Data Catalog 整合後，您可以在Apache Iceberg資料表儲存貯體中建立資料表，並透過 Amazon Athena、Amazon EMR 等 AWS 分析引擎以及第三方分析引擎存取它們。

**許可權的運作方式。**  
我們建議您整合資料表儲存貯體與 AWS 分析服務，以便跨使用 AWS Glue Data Catalog 做為中繼資料存放區的服務使用資料表資料。啟用整合後，您可以使用 AWS Identity and Access Management (IAM) 許可授予對 S3 Tables 資源及其相關聯 Data Catalog 物件的存取權。

請務必遵循 中的步驟，[將 S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)以便您擁有適當的許可來存取 AWS Glue Data Catalog 和資料表資源，以及使用 AWS 分析服務。

## 支援的區域
<a name="regions-supported-integration-overview"></a>

與 AWS 分析服務整合的 S3 Tables 會在下列區域中 AWS Glue Data Catalog 搭配 IAM 型存取控制使用。在所有其他區域中，整合也需要 AWS Lake Formation。
+ 美國東部 (維吉尼亞北部)
+ 美國東部 (俄亥俄)
+ 美國西部 (加利佛尼亞北部)
+ 美國西部 (奧勒岡)
+ 非洲 (開普敦)
+ 亞太地區 (香港)
+ 亞太區域 (台北)
+ 亞太地區 (東京)
+ 亞太地區 (首爾)
+ 亞太地區 (大阪)
+ 亞太地區 (孟買)
+ 亞太地區 (海德拉巴)
+ 亞太地區 (新加坡)
+ 亞太地區 (悉尼)
+ 亞太地區 (雅加達)
+ 亞太地區 (墨爾本)
+ 亞太區域 (馬來西亞)
+ 亞太區域 (紐西蘭)
+ 亞太區域 (泰國)
+ 加拿大 (中部)
+ 加拿大西部 (卡加利)
+ 歐洲 (法蘭克福)
+ 歐洲 (蘇黎世)
+ 歐洲 (斯德哥爾摩)
+ 歐洲 (米蘭)
+ 歐洲 (西班牙)
+ 歐洲 (愛爾蘭)
+ 歐洲 (倫敦)
+ Europe (Paris)
+ 以色列 (特拉維夫)
+ 墨西哥 (中部)
+ 南美洲 (聖保羅)

## 後續步驟
<a name="next-steps-integration-overview"></a>
+ [將 S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)
+ [建立命名空間。](s3-tables-namespace-create.md)
+ [建立資料表](s3-tables-create.md)

# 將 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).