

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

# 透過 JDBC 連線使用外部分析應用程式分析 Amazon DataZone 訂閱的資料
<a name="query-with-jdbc"></a>

Amazon DataZone 可讓資料消費者輕鬆尋找和訂閱單一專案中的多個來源的資料，並使用 Amazon Athena、Amazon Redshift 查詢編輯器和 Amazon SageMaker 分析此資料。

Amazon DataZone 也支援透過 Athena JDBC 驅動程式進行身分驗證，可讓使用者使用熱門的外部 SQL 和分析工具查詢其訂閱的 Amazon DataZone 資料，例如 SQL Workbench、DBeaver、Tableau、Domino、Power BI 等。使用者可以透過 SSO 或 IAM 使用其公司登入資料進行身分驗證，並開始分析其 Amazon DataZone 專案中的訂閱資料。

Amazon DataZone 對 Athena JDBC 驅動程式的支援提供下列優點：
+ 查詢和視覺化的更佳工具選擇 - 資料取用者可以使用其偏好的工具，從支援 JDBC 連線的各種分析工具連線至 Amazon DataZone。這可讓他們繼續使用自己熟悉的軟體，而不需要學習資料耗用的新工具。
+ 程式設計存取 - 透過伺服器或自訂應用程式存取受管資料的 JDBC 連線，可讓資料消費者執行自動化且更複雜的資料操作。

您可以使用 JDBC URL 將外部分析工具連線至 Amazon DataZone 訂閱的資料。若要取得您的 JDBC URL，請執行下列程序：

**重要**  
在目前版本中，Amazon DataZone 支援使用 Amazon Athena JDBC 驅動程式進行身分驗證。若要完成此程序，請確定您已為您選擇的分析應用程式下載並安裝最新的 [Athena JDBC 驅動程式](https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver.html)。

1. 導覽至 Amazon DataZone 資料入口網站 URL，並使用單一登入 (SSO) 或您的 AWS 登入資料登入。如果您是 Amazon DataZone 管理員，您可以在 [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone)：// 導覽至 Amazon DataZone 主控台，並使用建立網域 AWS 帳戶 的 登入，然後選擇**開啟資料入口網站**。

1. 在 Amazon DataZone 資料入口網站中，選擇**瀏覽專案清單**，然後尋找並選擇要分析資料的專案。

1. 在專案首頁的右側面板中，選擇**與 JDBC 連線**。

1. 在 **JDBC 參數**快顯視窗中，選擇您的身分驗證方法 (SSO 憑證或 IAM 憑證），然後複製 JDBC URL 的字串或個別參數。然後，您可以使用它來連接到外部分析應用程式。

當您使用 JBDC 查詢或參數將外部分析應用程式連線至 Amazon DataZone 時，您會叫用 `RedeemAccessToken` API。`RedeemAccessToken` API 會交換`AmazonDataZoneDomainExecutionRole`登入資料的 Identity Center 存取權杖，用於呼叫 `GetEnvironmentCredentials` API。

如需使用 IAM 登入資料連接到 Athena 中 Amazon DataZone 受管資料之身分驗證機制的詳細資訊，請參閱 [DataZone IAM 登入資料提供者](https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver-datazone-iamcp.html)。如需使用 IAM Identity Center 在 Athena 中啟用連線至 Amazon DataZone 受管資料之身分驗證機制的詳細資訊，請參閱 [DataZone Idc 登入資料提供者](https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver-datazone-idc.html)。

## RedeemAccessToken API 參考
<a name="api-ref"></a>

**請求語法**

```
POST /sso/redeem-token HTTP/1.1
Content-type: application/json

{
   "domainId": "string",
   "accessToken": "string"
}
```

**請求參數**

請求使用下列參數。

**DomainId**  
Amazon DataZone 網域的 ID。  
模式：^dzd【-\$1】【a-zA-Z0-9\$1-】\$11，36\$1\$1   
必要：是

**accessToken**  
Identity Center 存取字符。  
類型：字串  
必要：是

**回應語法**

```
HTTP/1.1 200
Content-type: application/json

{
   "credentials": AwsCredentials
}
```

**回應元素**

**登入資料**  
用來呼叫 `GetEnvironmentCredentials` API 的`AmazonDataZoneDomainExecutionRole`登入資料。  
類型：`AwsCredentials`物件陣列。此資料類型包含下列屬性：  
+ accessKeyId：AccessKeyId
+ secretAccessKey：SecretAccessKey
+ sessionToken：SessionToken
+ 過期：時間戳記

**accessToken**  
Identity Center 存取字符。  
類型：字串  
必要：是

**錯誤**

**AccessDeniedException**  
您沒有足夠存取權可執行此動作。  
HTTP 狀態碼：403

**ResourceNotFoundException**  
找不到指定的資源。  
HTTP 狀態碼：404

**ValidationException**  
輸入無法滿足 AWS 服務指定的限制條件。  
HTTP 狀態碼：400

**InternalServerException**  
由於未知錯誤、例外狀況或失敗，請求失敗。  
HTTP 狀態碼：500