

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

# 教學課程：開始使用 S3 Tables
<a name="s3-tables-getting-started"></a>

在本教學課程中，您會建立資料表儲存貯體，並將區域中的資料表儲存貯體與 AWS 分析服務整合。接著，您將使用 AWS CLI 或 主控台，在資料表儲存貯體中建立第一個命名空間和資料表。然後，您可以開始使用 Athena 查詢資料表。

**提示**  
如果您要將表格式資料從一般用途儲存貯體移轉至資料表儲存貯體，在 AWS 解決方案程式庫中可找到引導式解決方案來協助您。此解決方案使用 Apache Iceberg和 Amazon EMR 搭配 ，自動將已註冊 AWS Glue Data Catalog 並存放在一般用途儲存貯體中的 Apache Hive AWS Step Functions 和 資料表移至資料表儲存貯體Apache Spark。如需詳細資訊，請參閱 AWS 解決方案程式庫中的[將表格式資料從 Amazon S3 移轉至 S3 資料表的指引](https://aws.amazon.com/solutions/guidance/migrating-tabular-data-from-amazon-s3-to-s3-tables/)。

**Topics**
+ [步驟 1：建立資料表儲存貯體並將其與 AWS 分析服務整合](#s1-tables-tutorial-create-bucket)
+ [步驟 2：建立資料表命名空間和資料表](#s2-tables-tutorial-create-namespace-and-table)
+ [步驟 3：在 Athena 中使用 SQL 查詢資料](#s4-query-tables)

## 步驟 1：建立資料表儲存貯體並將其與 AWS 分析服務整合
<a name="s1-tables-tutorial-create-bucket"></a>

在此步驟中，您可以使用 Amazon S3 主控台來建立您的第一個資料表儲存貯體。如需建立資料表儲存貯體的其他方法，請參閱[建立資料表儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html)。

**注意**  
根據預設，Amazon S3 主控台會自動將資料表儲存貯體與 整合 AWS Glue Data Catalog，讓 AWS 分析服務能夠自動探索和存取 S3 Tables 資料。如果您使用 AWS Command Line Interface (AWS CLI)、 AWS SDKs或 REST API，以程式設計方式建立第一個資料表儲存貯體，則必須手動完成 AWS 分析服務整合。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在頁面頂端的導覽列中，選擇目前顯示的名稱 AWS 區域。​接下來，選擇您要在其中建立資料表儲存貯體的區域。

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

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

1. 在**一般組態**下，輸入資料表儲存貯體的名稱。

   資料表儲存貯體名稱必須；
   + 對於目前區域中的 ，在 AWS 帳戶 中是唯一的。
   + 長度必須介於 3 與 63 個字元之間。
   + 只能由小寫字母、數字和連字號 (`-`) 組成。
   + 開頭和結尾為字母或數字。

   建立儲存貯體後，您無法變更其名稱。 AWS 帳戶 建立資料表儲存貯體的 擁有它。如需有關命名資料表儲存貯體的詳細資訊，請參閱 [資料表儲存貯體命名規則](s3-tables-buckets-naming.md#table-buckets-naming-rules)。

1. 在**與 AWS 分析服務整合**區段中，確定已選取**啟用整合**核取方塊。

   如果使用主控台建立第一個資料表儲存貯體時選取**啟用整合**，Amazon S3 會嘗試整合資料表儲存貯體與 AWS 分析服務。此整合可讓您使用 AWS 分析服務來存取目前區域中的所有資料表。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

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

## 步驟 2：建立資料表命名空間和資料表
<a name="s2-tables-tutorial-create-namespace-and-table"></a>

在此步驟中，您會在資料表儲存貯體中建立命名空間，然後在該命名空間下建立新的資料表。您可以使用主控台或 AWS CLI建立資料表命名空間和資料表。

**重要**  
建立資料表時，請務必在資料表名稱和資料表定義中，全部都使用小寫字母。例如，確定欄的名稱都小寫。如果您的資料表名稱或資料表定義包含大寫字母，則 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."

### 使用 S3 主控台和 Amazon Athena
<a name="s3-tables-tutorial-create-table-console"></a>

下列程序會使用 Amazon S3 主控台建立具有 Amazon Athena 的命名空間和資料表。

**建立資料表命名空間和資料表**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

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

1. 在**資料表儲存貯體**頁面上，選擇要在其中建立資料表的資料表儲存貯體。

1. 在資料表儲存貯體詳細資訊頁面上，選擇**使用 Athena 建立資料表**。

1. 在**使用 Athena 建立資料表**對話方塊中，選擇**建立命名空間**，然後在**命名空間名稱**欄位中輸入名稱。命名空間名稱必須具有 1 到 255 個字元，而且在資料表儲存貯體中是唯一的。有效字元為 a-z、0-9 和 \_ (`_`)。命名空間名稱開頭不得為底線。

1. 選擇 **Create namespace (建立命名空間)**。

1. 選擇**使用 Athena 建立資料表**。

1. Amazon Athena 主控台隨即開啟，並顯示 Athena 查詢編輯器。查詢編輯器會填入可用來建立資料表的查詢範例。修改查詢以指定您希望資料表擁有的資料表名稱和欄位。

1. 修改完查詢後，請選擇**執行**以建立資料表。

如果您的資料表建立成功，新資料表的名稱會出現在 Athena 中的資料表清單中。當您導覽回到 Amazon S3 主控台時，新資料表會在重新整理清單後，出現在資料表儲存貯體的詳細資訊頁面上的**資料表**清單中。

### 使用 AWS CLI
<a name="s3-tables-tutorial-create-table-CLI"></a>

若要使用下列 AWS CLI 範例命令在資料表儲存貯體中建立命名空間，然後在該命名空間下建立具有結構描述的新資料表，請將`{{user input placeholder}}`值取代為您自己的值。

**先決條件**
+ 然後將 [https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html) 政策連接至您的 IAM 身分。
+ 安裝 2.23.10 AWS CLI 版或更新版本。如需詳細資訊，請參閱《*AWS Command Line Interface 使用者指南*》中的「[安裝或更新最新版 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」。

1. 執行下列命令，在資料表儲存貯體中建立新的命名空間：

   ```
   aws s3tables create-namespace \
   --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}} \
   --namespace {{my_namespace}}
   ```

   1. 執行下列命令，確認成功建立您的命名空間：

     ```
     aws s3tables list-namespaces \
     --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}}
     ```

1. 執行以下命令，建立具資料表結構描述的新資料表。

   ```
   aws s3tables create-table --cli-input-json file://{{mytabledefinition.json}}
   ```

   針對 `mytabledefinition.json` 檔案，使用下列範例資料表定義：

   ```
   {
       "tableBucketARN": "arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}}",
       "namespace": "{{my_namespace}}",
       "name": "{{my_table}}",
       "format": "ICEBERG",
       "metadata": {
           "iceberg": {
               "schema": {
                   "fields": [
                        {{{"name": "id", "type": "int","required": true},
                        {"name": "name", "type": "string"},
                        {"name": "value", "type": "int"}}}
                   ]
               }
           }
       }
   }
   ```

## 步驟 3：在 Athena 中使用 SQL 查詢資料
<a name="s4-query-tables"></a>

您可以在 Athena 中使用 SQL 查詢資料表。Athena 支援 S3 Tables 的資料定義語言 (DDL)、資料處理語言 (DML) 和資料查詢語言 (DQL) 查詢。

您可以從 Amazon S3 主控台或透過 Amazon Athena 主控台查詢。

### 使用 S3 主控台和 Amazon Athena
<a name="s4-query-tables-query-table-s3-console"></a>

下列程序使用 Amazon S3 主控台存取 Athena 查詢編輯器，讓您可以使用 Amazon Athena 查詢資料表。

**查詢資料表**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

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

1. 在**資料表儲存貯體**頁面上，選擇包含您要查詢之資料表的資料表儲存貯體。

1. 在資料表儲存貯體詳細資訊頁面上，選擇您要查詢之資料表名稱旁的選項按鈕。

1. 選擇**使用 Athena 查詢資料表**。

1. Amazon Athena 主控台隨即開啟，並顯示 Athena 查詢編輯器，其中提供為您載入的範例 `SELECT` 查詢。視需要為您的使用案例修改此查詢。

1. 若要執行查詢，選擇 **Run** (執行)。

### 使用 Amazon Athena 主控台
<a name="s4-query-tables-query-table-athena-console"></a>

**查詢資料表**

1. 前往 [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) 開啟 Athena 主控台。

1. 查詢您的資料表。以下是您可以修改的範例查詢。請務必以您自己的資訊取代 `{{user input placeholders}}`。

   ```
   SELECT * FROM "s3tablescatalog/{{amzn-s3-demo-table-bucket}}"."{{my_namespace}}"."{{my_table}}" LIMIT 10
   ```

1. 若要執行查詢，選擇 **Run** (執行)。