

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 通过 JDBC 连接使用外部分析应用程序分析 Amazon DataZone 订阅的数据
<a name="query-with-jdbc"></a>

亚马逊 DataZone 使数据使用者能够在单个项目中轻松查找和订阅来自多个来源的数据，并使用亚马逊 Athena、Amazon Redshift 查询编辑器和亚马逊分析这些数据。 SageMaker

亚马逊 DataZone 还支持通过 Athena JDBC 驱动程序进行身份验证，该驱动程序使用户能够使用流行的外部 SQL 和分析工具（例如 SQL Workbench DBeaver、Tableau、Domino、Power BI 等）查询他们订阅的 DataZone 亚马逊数据。用户可以通过 SSO 或 IAM 使用其公司凭证进行身份验证，然后开始分析他们在 Ama DataZone zon 项目中订阅的数据。

亚马逊对 A DataZone thena JDBC 驱动程序的支持具有以下好处：
+ 更多的查询和可视化工具选择-数据 DataZone 使用者可以使用支持 JDBC 连接的各种分析工具中的首选工具连接到 Amazon。这使他们能够继续使用自己熟悉的软件，而无需学习新的数据使用工具。
+ 编程访问 – 通过服务器或自定义应用程序与访问受管控的数据建立 JDBC 连接，使数据使用者能够执行自动化且更复杂的数据操作。

您可以使用您的 JDBC 网址将您的外部分析工具连接到您的 Amazon DataZone 订阅的数据。要获取 JDBC URL，请执行以下过程：

**重要**  
在当前版本中，亚马逊 DataZone 支持使用亚马逊 Athena JDBC 驱动程序进行身份验证。要完成此过程，请确保已为所选分析应用程序下载并安装了最新的 [Athena JDBC 驱动程序](https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver.html)。

1. 导航至 Amazon DataZone 数据门户 URL，然后使用单点登录 (SSO) 或凭证登录 AWS 。如果您是亚马逊 DataZone 管理员，则可以通过 [https://console.aws.amazon.com/datazon](https://console.aws.amazon.com/datazone) e 导航到亚马逊 DataZone 控制台，使用域名创建 AWS 账户 地登录，然后选择**打开**数据门户。

1. 在 Amazon DataZone 数据门户中，选择 “**浏览项目列表**”，然后找到并选择要分析的数据所在的项目。

1. 在项目主页的右侧面板中，选择**使用 JDBC 进行连接**。

1. 在 **JDBC 参数**弹出窗口中，选择您的身份验证方法（SSO 凭证或 IAM 凭证），然后复制 JDBC URL 的字符串或独立参数。然后，您可以使用它连接到您的外部分析应用程序。

当您 DataZone 使用 JBDC 查询或参数将外部分析应用程序连接到 Amazon 时，即`RedeemAccessToken`调用 API。`RedeemAccessToken` API 会将 Identity Center 访问令牌交换为用于调用 `GetEnvironmentCredentials` API 的 `AmazonDataZoneDomainExecutionRole` 凭证。

[有关使用 IAM 证书连接到 Athena 中 DataZone由亚马逊管理的数据的身份验证机制的更多信息，DataZone 请参阅 IAM 证书提供商。](https://docs.aws.amazon.com/athena/latest/ug/jdbc-v3-driver-datazone-iamcp.html)[有关允许使用 IAM 身份中心连接到 Athena 中 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**  
亚马逊 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
+ expiration：Timestamp

**accessToken**  
Identity Center 访问令牌。  
类型：字符串。  
是否必需：是

**错误**

**AccessDeniedException**  
您没有足够的访问权限，无法执行该操作。  
HTTP 状态代码：403

**ResourceNotFoundException**  
找不到指定的资源。  
HTTP 状态代码：404

**ValidationException**  
输入未能满足 AWS 服务指定的约束。  
HTTP 状态代码：400

**InternalServerException**  
由于未知错误、异常或故障，请求失败。  
HTTP 状态代码：500