

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

# 從另一個帳戶註冊 Data Catalog
<a name="data-sources-glue-cross-account"></a>

您可以使用 Athena 的跨帳戶 AWS Glue 目錄功能，從非您自己的帳戶註冊 AWS Glue 目錄。在您為 AWS Glue 設定所需的 IAM 許可，並將目錄註冊為 Athena `DataCatalog` 資源後，您可以使用 Athena 來執行跨帳戶查詢。如需有關設定所需許可的詳細資訊，請參閱[設定 AWS Glue 資料目錄的跨帳戶存取](security-iam-cross-account-glue-catalog-access.md)。

下列程序說明如何使用 Athena 在 Amazon Web Services AWS Glue Data Catalog 帳戶中設定 ，而非您自己的資料來源。

## 從主控台註冊
<a name="data-sources-glue-cross-account-console"></a>

1. 請按照 [設定 AWS Glue 資料目錄的跨帳戶存取](security-iam-cross-account-glue-catalog-access.md) 中的步驟，確保您已獲得許可，能查詢其他帳戶中的資料目錄。

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

1. 如果未顯示主控台的導覽窗格，請選擇左側的展開選單。  
![\[選擇展開選單。\]](http://docs.aws.amazon.com/zh_tw/athena/latest/ug/images/nav-pane-expansion.png)

1. 選擇**資料來源和目錄**。

1. 在右上角，選擇 **Create data source** (建立資料來源)。

1. 在**選擇資料來源**頁面上，針對**資料來源**選擇 **S3 - AWS Glue Data Catalog**，然後選擇**下一步**。

1. 在 **Enter data source details** (輸入資料來源詳細資訊) 頁面上的 **AWS Glue Data Catalog** 區段，針對**選擇 AWS Glue Data Catalog**，在另一個帳户選擇 **AWS Glue Data Catalog **。

1. 在 **Data source details** (資料來源詳細資訊) 輸入以下資訊：
   + **Data source name** (資料來源名稱) – 輸入您希望在 SQL 查詢中使用的名稱，以參考其他帳戶中的資料目錄。
   + **Description** (描述) – (選填) 輸入其他帳戶裡資料目錄的描述。
   + **Catalog ID** (目錄 ID) – 輸入資料目錄所屬帳戶的 12 位數 Amazon Web Services 帳戶 ID。Amazon Web Services 帳戶 ID 即為目錄 ID。

1. (選用) 在 **Tags** (標籤)中，輸入您希望與資料來源相關聯的鍵值對。如需標籤的詳細資訊，請參閱[標記 Athena 資源](tags.md)。

1. 選擇**下一步**。

1. 在 **Review and create** (檢閱並建立) 頁面上，檢閱您提供的資訊，然後選擇 **Create data source** (建立資料來源)。**Data source details** (資料來源詳細資訊) 頁面列出了註冊資料型錄的資料庫和標籤。

1. 選擇**資料來源和目錄**。您註冊的資料型錄列於 **Data Source Name** (資料來源名稱) 資料欄。

1. 若要檢視或編輯資料型錄的相關資訊，請選擇型錄，然後選擇 **Actions** (動作)、**Edit** (編輯)。

1. 若要刪除新資料型錄，請選擇型錄，然後選擇 **Actions** (動作)、**Delete** (刪除)。

## 使用 API 操作註冊
<a name="data-sources-glue-cross-account-api"></a>

1. 下列`CreateDataCatalog`請求內文會註冊 AWS Glue 目錄以進行跨帳戶存取：

   ```
   # Example CreateDataCatalog request to register a cross-account Glue catalog:
   {
       "Description": "Cross-account Glue catalog",
       "Name": "ownerCatalog",
       "Parameters": {"catalog-id" : "<catalogid>"  # Owner's account ID
       },
       "Type": "GLUE"
   }
   ```

1. 以下範本程式碼會使用 Java 用戶端來建立 `DataCatalog` 物件。

   ```
   # Sample code to create the DataCatalog through Java client
   CreateDataCatalogRequest request = new CreateDataCatalogRequest()
       .withName("ownerCatalog")
       .withType(DataCatalogType.GLUE)
       .withParameters(ImmutableMap.of("catalog-id", "<catalogid>"));
   
   athenaClient.createDataCatalog(request);
   ```

   在這些步驟之後，借用者應會在呼叫 [ListDataCatalogs](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListDataCatalogs.html) API 操作時看到 *`ownerCatalog`*。

## 使用 註冊 AWS CLI
<a name="data-sources-glue-cross-account-cli"></a>

使用下列範例 CLI 命令從 AWS Glue Data Catalog 另一個帳戶註冊

```
aws athena create-data-catalog \
  --name cross_account_catalog \
  --type GLUE \
  --description "Cross Account Catalog" \
  --parameters catalog-id=<catalogid>
```

如需詳細資訊，請參閱 *AWS 大數據部落格*中的[使用 Amazon Athena 查詢跨帳戶 AWS Glue Data Catalog](https://aws.amazon.com/blogs/big-data/query-cross-account-aws-glue-data-catalogs-using-amazon-athena/)。