

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

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

# ODBC
<a name="ODBC"></a>

适用于 Amazon Timestream 的开源 [ODBC 驱动程序](https://github.com/awslabs/amazon-timestream-odbc-driver/tree/main) LiveAnalytics 为开发人员提供了 Timestream LiveAnalytics 的 SQL 关系接口，并支持从 Power BI Desktop 和 Microsoft Excel 等商业智能 (BI) 工具进行连接。适用于 LiveAnalytics ODBC 的 Timestream 驱动程序目前已在 [Windows、macOS 和 Linux](https://github.com/awslabs/amazon-timestream-odbc-driver/releases) 上线，还支持 Okta 的 SSO 和微软 Azure Active Directory (AD)。

有关更多信息，请参阅上的 [Amazon Timestream for LiveAnalytics ODBC 驱动程序文档](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/index.md)。 GitHub

**Topics**
+ [为 LiveAnalytics ODBC 驱动程序设置时间流](ODBC-setup.md)
+ [ODBC 驱动程序的连接字符串语法及选项](ODBC-connecting.md)
+ [适用于 LiveAnalytics ODBC 驱动程序的 Timestream 的连接字符串示例](ODBC-connecting-examples.md)
+ [对 ODBC 驱动程序连接进行故障排除](ODBC-connecting-troubleshooting.md)

# 为 LiveAnalytics ODBC 驱动程序设置时间流
<a name="ODBC-setup"></a>

## 在您的 AWS 账户 LiveAnalytics 中设置 Timestream 访问权限
<a name="ODBC-setup-access"></a>

如果您尚未将 AWS 账户设置为使用 Timestream LiveAnalytics，请按照中的说明进行操作。[访问 Timestream LiveAnalytics](accessing.md)

## 在系统上安装 ODBC 驱动程序
<a name="ODBC-setup-download"></a>

从 ODBC [ GitHub存储库中为您的系统下载相应的 Timestream ODBC](https://github.com/awslabs/amazon-timestream-odbc-driver/releases) 驱动程序安装程序，然后按照适用于您的系统的安装说明进行操作：。
+ [Windows 安装指南](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/windows-installation-guide.md)
+ [MacOS 安装指南](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/macOS-installation-guide.md)
+ [Linux 安装指南](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/linux-installation-guide.md)

## 为 ODBC 驱动程序设置数据来源名称（DSN）。
<a name="ODBC-setup-dsn"></a>

按照系统内 DSN 配置指南中的说明进行操作：
+ [Windows DSN 配置](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/windows-dsn-configuration.md)
+ [MacOS DSN 配置](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/macOS-dsn-configuration.md)
+ [Linux DSN 配置](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/linux-dsn-configuration.md)

## 设置商业智能（BI）应用程序以使用 ODBC 驱动程序
<a name="ODBC-setup-bi-apps"></a>

以下是设置数个常用 BI 应用程序以使用 ODBC 驱动程序的说明：
+ [设置 Microsoft Power BI。](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/microsoft-power-bi.md)
+ [设置 Microsoft Excel](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/microsoft-excel.md)
+ [设置 Tableau](https://github.com/awslabs/amazon-timestream-odbc-driver/blob/main/docs/markdown/setup/tableau.md)

对于其他应用程序

# ODBC 驱动程序的连接字符串语法及选项
<a name="ODBC-connecting"></a>

用于指定 ODBC 驱动程序连接字符串选项的语法如下：

```
DRIVER={Amazon Timestream ODBC Driver};(option)=(value);
```

可用选项如下：

**驱动程序连接选项**
+ **`Driver`**   *（必填）*：与 ODBC 结合使用的驱动程序。

  默认为 Amazon Timestream。
+ **`DSN`**：用于配置连接的数据来源名称（DSN）。

  默认值为 `NONE`。
+ **`Auth`**：身份验证模式。其必须是以下内容之一：
  + `AWS_PROFILE`：使用默认凭证链。
  + `IAM`— 使用 AWS IAM 证书。
  + `AAD`：使用 Azure Active Directory（AD）身份提供商。
  + `OKTA`：使用 Okta 身份提供商。

  默认值为 `AWS_PROFILE`。

**端点配置选项**
+ **`EndpointOverride`**— LiveAnalytics 服务时间流的端点覆盖。这是用于覆盖区域的高级选项。例如：

  ```
  query-cell2.timestream.us-east-1.amazonaws.com
  ```
+ **`Region`**— LiveAnalytics 服务端点时间流的签名区域。

  默认值为 `us-east-1`。

**凭证提供程序选项**
+ **`ProfileName`**— 配置文件中的 AWS 配置文件名称。

  默认值为 `NONE`。

**AWS IAM 身份验证选项**
+ **`UID`**或 **`AccessKeyId`**- AWS 用户访问密钥 ID。如果连接字符串中同时提供 `UID` 和 `AccessKeyId`，则将使用 `UID` 值，除非该值为空。

  默认值为 `NONE`。
+ **`PWD`** 或 **`SecretKey`**：AWS 用户秘密访问密钥。如果连接字符串中同时提供 `PWD` 和 `SecretKey`，则将使用带 的 `PWD` 值，除非该值为空。

  默认值为 `NONE`。
+ **`SessionToken`**：访问已启用多重身份验证（MFA）的数据库所需的临时会话令牌。请勿在输入中包含尾随 ` = `。

  默认值为 `NONE`。

**适用于 Okta 的基于 SAML 的身份验证选项**
+ **`IdPHost`**：指定 IdP 的主机名。

  默认值为 `NONE`。
+ **`UID`** 或 **`IdPUserName`**：指定 IdP 账户的用户名。如果连接字符串中同时提供 `UID` 和 `IdPUserName`，则将使用 `UID` 值，除非该值为空。

  默认值为 `NONE`。
+ **`PWD`** 或 **`IdPPassword`**：指定 IdP 账户的密码。如果连接字符串中同时提供 `PWD` 和 `IdPPassword`，则将使用 `PWD` 值，除非该值为空。

  默认值为 `NONE`。
+ **`OktaApplicationID`**— Okta 提供的与应用程序的时间流关联的唯一 ID。 LiveAnalytics 在应用程序元数据中提供的`entityID`字段中可以找到应用程序 ID (AppId)。例如：

  ```
  entityID="http://www.okta.com//(IdPAppID)
  ```

  默认值为 `NONE`。
+ **`RoleARN`**：调用方所代入角色的 Amazon 资源名称（ARN）。

  默认值为 `NONE`。
+ **`IdPARN`**：描述 IdP 的 IAM 中 SAML 提供商的 Amazon 资源名称（ARN）。

  默认值为 `NONE`。

**适用于 Azure Active Directory 的基于 SAML 的身份验证选项**
+ **`UID`** 或 **`IdPUserName`**：指定 IdP 账户的用户名。

  默认值为 `NONE`。
+ **`PWD`** 或 **`IdPPassword`**：指定 IdP 账户的密码。

  默认值为 `NONE`。
+ **`AADApplicationID`**：Azure AD 上已注册应用程序的唯一 ID。

  默认值为 `NONE`。
+ **`AADClientSecret`**：与 Azure AD 上已注册应用程序关联的客户端密钥，用于授权获取令牌。

  默认值为 `NONE`。
+ **`AADTenant`**：Azure AD 租户 ID。

  默认值为 `NONE`。
+ **`RoleARN`**：调用方所代入角色的 Amazon 资源名称（ARN）。

  默认值为 `NONE`。
+ **`IdPARN`**：描述 IdP 的 IAM 中 SAML 提供商的 Amazon 资源名称（ARN）。

  默认值为 `NONE`。

**AWS SDK（高级）选项**
+ **`RequestTimeout`**— AWS SDK 在超时之前等待查询请求的时间（以毫秒为单位）。任何非正值都表示禁用请求超时。

  默认值为 `3000`。
+ **`ConnectionTimeout`**— AWS SDK 在超时之前等待通过打开的连接传输数据的时间（以毫秒为单位）。值为 0 时，将禁用连接超时。该值不得为负。

  默认值为 `1000`。
+ **`MaxRetryCountClient`**：SDK 中可重试错误（错误代码为 5xx）的最大重试次数。值不得为负。

  默认值为 `0`。
+ **`MaxConnections`**：允许与 Timestream 服务同时打开的 HTTP 连接最大数量。值必须为正。

  默认值为 `25`。

**ODBC 驱动程序日志记录选项**
+ **`LogLevel`**：驱动程序日志记录的日志级别。必须为以下值之一：
  + **0**：（关闭）。
  + **1**：（错误）。
  + **2**：（警告）。
  + **3**：（信息）。
  + **4**：（调试）。

  默认为 `1`（错误）。

  **警告：**使用调试日志记录模式时，驱动程序可能会记录个人信息。
+ **`LogOutput`**：用于存储日志文件的文件夹。

  默认为：
  + **Windows：**`%USERPROFILE%`，或者如果不可用，则为 `%HOMEDRIVE%%HOMEPATH%`。
  + **macOS 和 Linux：**`$HOME`，或者如果不可用，则函数 `getpwuid(getuid())` 中的字段 `pw_dir` 返回值。

**SDK 日志记录选项**

S AWS DK 日志级别与 LiveAnalytics ODBC 驱动程序日志级别的时间流是分开的。设置其中一个不会影响另一个。

SDK 日志级别使用环境变量 `TS_AWS_LOG_LEVEL` 进行设置。有效值为：
+ `OFF`
+ `ERROR`
+ `WARN`
+ `INFO`
+ `DEBUG`
+ `TRACE`
+ `FATAL`

如果未设置 `TS_AWS_LOG_LEVEL`，则将 SDK 日志级别设置为默认值，即 `WARN`。

## 通过代理进行连接
<a name="ODBC-connecting-proxy"></a>

ODBC 驱动程序支持通过代理连接到 Amazon Timestre LiveAnalytics am。要使用此功能，请根据代理设置配置以下环境变量：
+ **`TS_PROXY_HOST`**：代理主机。
+ **`TS_PROXY_PORT`**：代理端口号。
+ **`TS_PROXY_SCHEME`**：代理方案，`http` 或 `https`。
+ **`TS_PROXY_USER`**：代理身份验证的用户名。
+ **`TS_PROXY_PASSWORD`**：代理身份验证的用户密码。
+ **`TS_PROXY_SSL_CERT_PATH`**：用于连接到 HTTPS 代理的 SSL 证书文件。
+ **`TS_PROXY_SSL_CERT_TYPE`**：代理客户端 SSL 证书的类型。
+ **`TS_PROXY_SSL_KEY_PATH`**：用于连接到 HTTPS 代理的私钥文件。
+ **`TS_PROXY_SSL_KEY_TYPE`**：用于连接到 HTTPS 代理的私钥文件类型。
+ **`TS_PROXY_SSL_KEY_PASSWORD`**：用于连接到 HTTPS 代理的私钥文件密码。

# 适用于 LiveAnalytics ODBC 驱动程序的 Timestream 的连接字符串示例
<a name="ODBC-connecting-examples"></a>

## 使用 IAM 凭证连接到 ODBC 驱动程序的示例
<a name="ODBC-connecting-examples-iam"></a>

```
Driver={Amazon Timestream ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);secretKey=(your secret key);SessionToken=(your session token);Region=us-east-2;
```

## 使用配置文件连接到 ODBC 驱动程序的示例
<a name="ODBC-connecting-examples-profile"></a>

```
Driver={Amazon Timestream ODBC Driver};ProfileName=(the profile name);region=us-west-2;
```

驱动程序将尝试使用 `~/.aws/credentials` 中提供的凭证进行连接，或者如果在环境变量 `AWS_SHARED_CREDENTIALS_FILE` 中指定文件，则使用该文件中的凭证进行连接。

## 使用 Okta 连接到 ODBC 驱动程序的示例
<a name="ODBC-connecting-examples-okta"></a>

```
driver={Amazon Timestream ODBC Driver};auth=okta;region=us-west-2;idPHost=(your host at Okta);idPUsername=(your user name);idPPassword=(your password);OktaApplicationID=(your Okta AppId);roleARN=(your role ARN);idPARN=(your Idp ARN);
```

## 使用 Azure Active Directory（AAD）连接到 ODBC 驱动程序的示例
<a name="ODBC-connecting-examples-aad"></a>

```
driver={Amazon Timestream ODBC Driver};auth=aad;region=us-west-2;idPUsername=(your user name);idPPassword=(your password);aadApplicationID=(your AAD AppId);aadClientSecret=(your AAD client secret);aadTenant=(your AAD tenant);roleARN=(your role ARN);idPARN=(your idP ARN);
```

## 使用指定端点和日志级别 2（警告）连接到 ODBC 驱动程序的示例
<a name="ODBC-connecting-examples-okta"></a>

```
Driver={Amazon Timestream ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);secretKey=(your secret key);EndpointOverride=ingest.timestream.us-west-2.amazonaws.com;Region=us-east-2;LogLevel=2;
```

# 对 ODBC 驱动程序连接进行故障排除
<a name="ODBC-connecting-troubleshooting"></a>

**注意**  
如果已在 DSN 中指定用户名和密码，ODBC 驱动程序管理器要求提供这些信息时无需再次指定。

当连接字符串中多次传递连接字符串选项时，就会出现错误代码 `01S02` 并显示消息 `Re-writing (connection string option) (have you specified it several times?`。多次指定同一选项将引发错误。使用 DSN 和连接字符串建立连接时，如果已在 DSN 中指定连接选项，则无需在连接字符串中再次指定。