

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

# 使用 AWS 分析服務查詢中繼資料表
<a name="metadata-tables-bucket-integration"></a>

您可以使用 Amazon Athena、Amazon Redshift 和 Amazon EMR 等 AWS 分析服務來查詢 S3 受管中繼資料表。

您必須先將 AWS 帳戶 和 區域中的[AWS 受管 S3 資料表儲存貯體與分析服務整合](s3-tables-integrating-aws.md)，才能執行查詢。 AWS 

## 使用 Amazon Athena 查詢中繼資料表
<a name="metadata-tables-bucket-integration-athena"></a>

[將 AWS 受管 S3 資料表儲存貯體與分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)之後，您就可以開始在 Athena 中查詢中繼資料表。 AWS 在查詢中，執行下列操作：
+ 將您的目錄指定為 `s3tablescatalog/aws-s3`，並將資料庫指定為 `b_general_purpose_bucket_name` (這通常是中繼資料表的命名空間)。
+ 請務必以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。

如需詳細資訊，請參閱[使用 Athena 查詢 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-athena.html)。

您也可以從 Amazon S3 主控台，在 Athena 中執行查詢。

### 使用 S3 主控台和 Amazon Athena
<a name="query-metadata-table-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 查詢編輯器，其中提供為您載入的範例查詢。視需要為您的使用案例修改此查詢。

   在查詢編輯器中，**目錄**欄位應填入 **s3tablescatalog/aws-s3**。**資料庫**欄位應填入儲存資料表的命名空間 (例如 **b\$1*general-purpose-bucket-name***)。
**注意**  
如果您在**目錄**和**資料庫**欄位中沒有看到這些值，請確定您已將 AWS 受管資料表儲存貯體與此區域中的 AWS 分析服務整合。如需詳細資訊，請參閱[將 Amazon S3 Tables 與 AWS 分析服務整合](s3-tables-integrating-aws.md)。

1. 若要執行查詢，選擇 **Run** (執行)。
**注意**  
如果您嘗試在 Athena 中執行查詢時收到錯誤訊息：「執行查詢的權限不足。主體對指定資源沒有任何權限」，您必須獲得資料表上必要的 Lake Formation 許可權。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。  
此外，請確定您具有適當的 AWS Identity and Access Management (IAM) 許可來查詢中繼資料表。如需詳細資訊，請參閱[查詢中繼資料表的許可權](metadata-tables-bucket-query-permissions.md)。
如果您在嘗試執行查詢時收到錯誤「Iceberg 無法存取請求的資源」，請前往 AWS Lake Formation 主控台，並確定您已授予自己所建立資料表儲存貯體目錄和資料庫 （命名空間） 的許可。授予這些許可權時，請勿指定資料表。如需詳細資訊，請參閱[授予資料表或資料庫的 Lake Formation 許可](grant-permissions-tables.md#grant-lf-table)。

## 使用 Amazon Redshift 查詢中繼資料表
<a name="metadata-tables-bucket-integration-redshift"></a>

[將 AWS 受管 S3 資料表儲存貯體與分析服務整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html)後，請執行下列動作： AWS 
+ [建立資源連結](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html#database-link-tables)至中繼資料表命名空間 (通常是 `b_general_purpose_bucket_name`)。
+ 請務必以引號 (`"`) 或反引號 (```) 括住中繼資料表命名空間名稱，否則查詢可能無法運作。

完成後，您可以在 Amazon Redshift 主控台開始查詢中繼資料表。如需詳細資訊，請參閱[使用 Amazon Redshift 存取 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html)。

## 使用 Amazon EMR 查詢中繼資料表
<a name="metadata-tables-bucket-integration-emr"></a>

若要使用 Amazon EMR 查詢中繼資料表，您可以建立為 Apache Iceberg 設定的 Amazon EMR 叢集，並使用 Apache Spark 連線到中繼資料表。您可以將 AWS 受管 S3 資料表儲存貯體與 AWS 分析服務整合，或使用適用於Iceberg用戶端目錄的開放原始碼 Amazon S3 資料表目錄來設定此項目。

**注意**  
在 Amazon EMR 或其他第三方引擎上使用 Apache Spark 查詢中繼資料表時，我議您使用 Amazon S3 Tables Iceberg REST 端點。如果您不使用此端點，則可能無法成功執行查詢。如需詳細資訊，請參閱[使用 Amazon S3 Tables Iceberg REST 端點存取資料表](s3-tables-integrating-open-source.md)。

 如需詳細資訊，請參閱[使用 Amazon EMR 存取 Amazon S3 資料表](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-emr.html)。