

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

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

# 访问 Timestream LiveAnalytics
<a name="accessing"></a>

您可以使用控制台、CLI 或 API 访问 Timestream。 LiveAnalytics 有关访问的 Timestream 的信息 LiveAnalytics，请查看以下内容：

**Topics**
+ [注册获取 AWS 账户](#sign-up-for-aws)
+ [创建具有管理访问权限的用户](#create-an-admin)
+ [提供访问时间 LiveAnalytics 流](#getting-started.prereqs.iam-user)
+ [授予编程式访问权限](#programmatic-access)
+ [使用控制台](console_timestream.md)
+ [访问 Amazon Timestream 以使用 LiveAnalytics AWS CLI](Tools.CLI.md)
+ [使用 API](Using.API.md)
+ [使用 AWS SDKs](getting-started-sdks.md)

## 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**报名参加 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

## 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

## 提供访问时间 LiveAnalytics 流
<a name="getting-started.prereqs.iam-user"></a>

 访问 Timestream 所需的权限 LiveAnalytics 已授予管理员。对于其他用户，您应使用以下策略向他们授予 Timestream LiveAnalytics 访问权限：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "timestream:*",
        "kms:DescribeKey",
        "kms:CreateGrant",
        "kms:Decrypt",
        "dbqms:CreateFavoriteQuery",
        "dbqms:DescribeFavoriteQueries",
        "dbqms:UpdateFavoriteQuery",
        "dbqms:DeleteFavoriteQueries",
        "dbqms:GetQueryString",
        "dbqms:CreateQueryHistory",
        "dbqms:UpdateQueryHistory",
        "dbqms:DeleteQueryHistory",
        "dbqms:DescribeQueryHistory",
        "s3:ListAllMyBuckets"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**注意**  
有关 `dbqms` 的信息，请参阅 [Database Query Metadata Service 的操作、资源和条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_databasequerymetadataservice.html)。有关信息，`kms`请参阅密钥[管理服务的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)。 AWS 

## 授予编程式访问权限
<a name="programmatic-access"></a>

如果用户想在 AWS 外部进行交互，则需要编程访问权限 AWS 管理控制台。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | （推荐）使用控制台凭证作为临时凭证，签署对 AWS CLI AWS SDKs、或的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/timestream/latest/developerguide/accessing.html)  | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/timestream/latest/developerguide/accessing.html)  | 
| IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将[临时证书与 AWS 资源配合使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/timestream/latest/developerguide/accessing.html)  | 

# 使用控制台
<a name="console_timestream"></a>

 您可以使用适用于 Timestream Live Analytics 的 AWS 管理控制台来创建、编辑、删除、描述和列出数据库和表。您还可以使用控制台运行查询。

**Topics**
+ [教程](#console_timestream.db-w-sample-data)
+ [创建数据库](#console_timestream.db.using-console)
+ [创建表](#console_timestream.table.using-console)
+ [运行查询](#console_timestream.queries.using-console)
+ [创建计划查询](#console_timestream.scheduledquery.using-console)
+ [删除计划查询](#console_timestream.scheduledquerydeletedisable.using-console)
+ [删除表](#console_timestream.delete-table.using-console)
+ [删除数据库](#console_timestream.delete-db.using-console)
+ [编辑表](#console_timestream.edit-table.using-console)
+ [编辑数据库](#console_timestream.edit-db.using-console)

## 教程
<a name="console_timestream.db-w-sample-data"></a>

 本教程介绍如何创建包含示例数据集的数据库，并运行示例查询。本教程中使用的示例数据集经常出现在物联网和 DevOps 场景中。IoT 数据集包含时间序列数据，例如卡车的速度、位置和载重，用于简化车队管理并识别优化机会。该 DevOps 数据集包含 EC2 实例指标，例如 CPU、网络和内存利用率，用于提高应用程序性能和可用性。以下是本部分所述说明的[视频教程](https://www.youtube.com/watch?v=YBWCGDd4ChQ) 

按照以下步骤创建填充了示例数据集的数据库，并使用 AWS 控制台运行示例查询。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**数据库**

1. 点击**创建数据库**。

1. 在创建数据库页面上，输入以下内容：
   + **选择配置**：选择**示例数据库**。
   + **名称**：输入您选定的数据库名称。
   + **选择示例数据集** —选择**物联网**和 **DevOps**.
   +  单击 “**创建数据库**”，创建一个包含两个表的数据库：IoT，并 DevOps 填充了示例数据。

1. 在导航窗格中，选择**查询编辑器**

1. 从顶部菜单中选择**示例查询**。

1. 点击其中一个示例查询。这将让您返回查询编辑器，编辑器已填充示例查询。

1. 点击**运行**，运行查询并查看查询结果。

## 创建数据库
<a name="console_timestream.db.using-console"></a>

按照以下步骤使用 AWS 控制台创建数据库。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**数据库**

1. 点击**创建数据库**。

1. 在创建数据库页面上，输入以下内容。
   + **选择配置**：选择**标准数据库**。
   + **名称**：输入您选定的数据库名称。
   + **加密**：选择 KMS 密钥或使用默认选项，如果账户中尚不存在 KMS 密钥，适用于 LiveAnalytics 的 Timestream 将在账户中创建 KMS 密钥。

1.  点击**创建数据库**，以创建数据库。

## 创建表
<a name="console_timestream.table.using-console"></a>

按照以下步骤使用 AWS 控制台创建表。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**表**

1. 点击**创建表**。

1. 在创建表页面，输入以下内容。
   + **数据库名称**：选择在 [创建数据库](#console_timestream.db.using-console) 中创建的数据库名称。
   + **表名称**：输入您选定的表名称。
   + **内存存储保留期**：指定您希望在内存存储中保留数据的时间长度。内存存储处理传入的数据，包括延迟到达的数据（时间戳早于当前时间的数据），并针对快速 point-in-time查询进行了优化。
   + **磁性存储保留期**：指定您希望在磁性存储中保留数据的时间长度。磁性存储专为长期存储而设计，并已针对快速分析查询进行优化。

1.  点击**创建表**。

## 运行查询
<a name="console_timestream.queries.using-console"></a>

按照以下步骤使用 AWS 控制台运行查询。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**查询编辑器**

1. 在左侧窗格中，选择在 [创建数据库](#console_timestream.db.using-console) 中创建的数据库。

1. 在左侧窗格中，选择在 [创建表](#console_timestream.table.using-console) 中创建的数据库。

1. 在查询编辑器中，可以运行查询。要查看表中最新的 10 行，请运行：

   ```
   SELECT * FROM <database_name>.<table_name> ORDER BY time DESC LIMIT 10
   ```

1. （可选）开启**启用见解**，以获取有关查询效率的见解。

## 创建计划查询
<a name="console_timestream.scheduledquery.using-console"></a>

按照以下步骤使用 AWS 控制台创建计划查询。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**计划查询**。

1. 点击**创建计划查询**。

1. 在**查询名称**和**目标表**部分，输入以下内容。
   + **名称**：输入查询名称。
   + **数据库名称**：选择在 [创建数据库](#console_timestream.db.using-console) 中创建的数据库名称。
   + **表名**：选择在 [创建表](#console_timestream.table.using-console) 中创建的表名称。

1. 在**查询语句**部分，输入有效的查询语句。然后点击**验证查询**。

1. 在**目标表模型**中，为所有未定义的属性定义模型。您可以使用**可视化生成器**或 JSON。

1. 在**运行计划**部分中，选择**固定速率**或 **Chron 表达式**。对于 chron 表达式，请参阅[计划查询的计划表达式](https://docs.aws.amazon.com/timestream/latest/developerguide/scheduledqueries-schedule.html)，以了解有关计划表达式的更多详细信息，

1. 在 **SNS 主题**部分，输入将用于通知的 SNS 主题。

1. 在**错误日志报告**部分，输入将用于报告错误的 S3 位置。

   请选择 **Encryption key type**（加密密钥类型）。

1. 在 **AWS KMS 密钥****的安全设置**部分，选择 K AWS MS 密钥的类型。

   输入 Timestream LiveAnalytics 将用于运行计划查询的 **IAM 角色**。有关该角色所需权限以及信任关系的详细信息，请参阅[计划查询的 IAM 策略示例](https://docs.aws.amazon.com/timestream/latest/developerguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-sheduledqueries)。

1.  点击**创建计划查询**。

## 删除计划查询
<a name="console_timestream.scheduledquerydeletedisable.using-console"></a>

按照以下步骤，使用 AWS 控制台删除或禁用计划查询。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**计划查询**

1. 选择在 [创建计划查询](#console_timestream.scheduledquery.using-console) 中创建的计划查询。

1. 选择**操作**。

1. 选择**禁用**或**删除**。

1. 如果已选择“删除”，请确认该操作并选择**删除**。

## 删除表
<a name="console_timestream.delete-table.using-console"></a>

按照以下步骤使用 AWS 控制台删除数据库。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**表**

1. 选择在 [创建表](#console_timestream.table.using-console) 中创建的表。

1. 点击**删除**。

1. 在确认框中键入*删除*。

## 删除数据库
<a name="console_timestream.delete-db.using-console"></a>

按照以下步骤使用 AWS 控制台删除数据库：

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**数据库**

1. 选择在**创建数据库**中创建的数据库。

1. 点击**删除**。

1. 在确认框中键入*删除*。

## 编辑表
<a name="console_timestream.edit-table.using-console"></a>

按照以下步骤使用 AWS 控制台编辑表格。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**表**

1. 选择在 [创建表](#console_timestream.table.using-console) 中创建的表。

1. 点击**编辑**

1. 编辑表详细信息并保存。
   + **内存存储保留期**：指定您希望在内存存储中保留数据的时间长度。内存存储处理传入的数据，包括延迟到达的数据（时间戳早于当前时间的数据），并针对快速 point-in-time查询进行了优化。
   + **磁性存储保留期**：指定您希望在磁性存储中保留数据的时间长度。磁性存储专为长期存储而设计，并已针对快速分析查询进行优化。

## 编辑数据库
<a name="console_timestream.edit-db.using-console"></a>

按照以下步骤使用 AWS 控制台编辑数据库。

1. 打开 [AWS 管理控制台](https://console.aws.amazon.com/timestream)。

1. 在导航窗格中，选择**数据库**

1. 选择在**创建数据库**中创建的数据库。

1. 点击**编辑**

1. 编辑数据库详细信息并保存。

# 访问 Amazon Timestream 以使用 LiveAnalytics AWS CLI
<a name="Tools.CLI"></a>

 您可以使用 AWS Command Line Interface (AWS CLI) 从命令行控制多项 AWS 服务，并通过脚本自动执行这些服务。您可以将 AWS CLI 用于即席操作。您还可以使用它在实用程序脚本中嵌入用于 LiveAnalytics 操作的 Amazon Timestream。

 必须先设置编程访问权限，然后才能将 Timestream AWS CLI 与 Timestream 配合使用。 LiveAnalytics有关更多信息，请参阅 [授予编程式访问权限](accessing.md#programmatic-access)。

有关中用于 LiveAnalytics 查询 Timestream API 的所有可用命令的完整列表 AWS CLI，请参阅[AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/timestream-query/index.html)。

有关中可用于 Timestream for W LiveAnalytics rite API 的所有命令的完整列表 AWS CLI，请参阅[AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/timestream-write/index.html)。

**Topics**
+ [正在下载和配置 AWS CLI](#Tools.CLI.DownloadingAndRunning)
+ [使用 with Tim AWS CLI estream LiveAnalytics](#Tools.CLI.UsingWithQLDB)

## 正在下载和配置 AWS CLI
<a name="Tools.CLI.DownloadingAndRunning"></a>

它们可以在 Windows、macOS 或 Linux 上 AWS CLI 运行。要下载、安装和配置，请按照以下步骤：

1.  AWS CLI 在 [http://aws.amazon.com/cli](https://aws.amazon.com/cli) 下载。

1. 按照《*AWS Command Line Interface 用户指南*[》中有关安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 和[配置 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 的说明进行操作。

## 使用 with Tim AWS CLI estream LiveAnalytics
<a name="Tools.CLI.UsingWithQLDB"></a>

命令行格式由用于 LiveAnalytics 操作名称的 Amazon Timestream 和该操作的参数组成。除了 AWS CLI JSON 之外，还支持参数值的简写语法。

 `help`用于在 Timestream 中列出所有可用的命令。 LiveAnalytics例如：

```
aws timestream-write help
```

```
aws timestream-query help
```

 您还可以使用 `help` 来描述特定命令并了解有关其用法的详细信息：

```
aws timestream-write create-database help
```

 例如，创建数据库：

```
aws timestream-write create-database --database-name myFirstDatabase
```

 创建启用磁性存储写入的表：

```
aws timestream-write create-table \
--database-name metricsdb \
--table-name metrics \
--magnetic-store-write-properties "{\"EnableMagneticStoreWrites\": true}"
```

使用单度量记录写入数据：

```
aws timestream-write write-records \
--database-name metricsdb \
--table-name metrics \
--common-attributes "{\"Dimensions\":[{\"Name\":\"asset_id\", \"Value\":\"100\"}], \"Time\":\"1631051324000\",\"TimeUnit\":\"MILLISECONDS\"}" \
--records "[{\"MeasureName\":\"temperature\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"30\"},{\"MeasureName\":\"windspeed\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"7\"},{\"MeasureName\":\"humidity\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"15\"},{\"MeasureName\":\"brightness\", \"MeasureValueType\":\"DOUBLE\",\"MeasureValue\":\"17\"}]"
```

使用多度量记录写入数据：

```
# wide model helper method to create Multi-measure records
function ingest_multi_measure_records {
  epoch=`date +%s`
  epoch+=$i

  # multi-measure records
  aws timestream-write write-records \
  --database-name $src_db_wide \
  --table-name $src_tbl_wide \
  --common-attributes "{\"Dimensions\":[{\"Name\":\"device_id\", \
              \"Value\":\"12345678\"},\
            {\"Name\":\"device_type\", \"Value\":\"iPhone\"}, \
            {\"Name\":\"os_version\", \"Value\":\"14.8\"}, \
            {\"Name\":\"region\", \"Value\":\"us-east-1\"} ], \
            \"Time\":\"$epoch\",\"TimeUnit\":\"MILLISECONDS\"}" \
--records "[{\"MeasureName\":\"video_metrics\", \"MeasureValueType\":\"MULTI\", \
  \"MeasureValues\": \
  [{\"Name\":\"video_startup_time\",\"Value\":\"0\",\"Type\":\"BIGINT\"}, \
  {\"Name\":\"rebuffering_ratio\",\"Value\":\"0.5\",\"Type\":\"DOUBLE\"}, \
  {\"Name\":\"video_playback_failures\",\"Value\":\"0\",\"Type\":\"BIGINT\"}, \
  {\"Name\":\"average_frame_rate\",\"Value\":\"0.5\",\"Type\":\"DOUBLE\"}]}]" \
--endpoint-url $ingest_endpoint \
  --region  $region
}

# create 5 records
for i in {100..105};
  do ingest_multi_measure_records $i;
done
```

如何查询表：

```
aws timestream-query query \
--query-string "SELECT time, device_id, device_type, os_version, 
region, video_startup_time, rebuffering_ratio, video_playback_failures, \
average_frame_rate \
FROM metricsdb.metrics \
where time >= ago (15m)"
```

创建计划查询：

```
aws timestream-query create-scheduled-query \
  --name scheduled_query_name \
  --query-string "select bin(time, 1m) as time, \
          avg(measure_value::double) as avg_cpu, min(measure_value::double) as min_cpu, region \
          from $src_db.$src_tbl where measure_name = 'cpu' \
          and time BETWEEN @scheduled_runtime - (interval '5' minute)  AND @scheduled_runtime \
          group by region, bin(time, 1m)" \
  --schedule-configuration "{\"ScheduleExpression\":\"$cron_exp\"}" \
  --notification-configuration "{\"SnsConfiguration\":{\"TopicArn\":\"$sns_topic_arn\"}}" \
  --scheduled-query-execution-role-arn "arn:aws:iam::452360119086:role/TimestreamSQExecutionRole" \
  --target-configuration "{\"TimestreamConfiguration\":{\
          \"DatabaseName\": \"$dest_db\",\
          \"TableName\": \"$dest_tbl\",\
          \"TimeColumn\":\"time\",\
          \"DimensionMappings\":[{\
            \"Name\": \"region\", \"DimensionValueType\": \"VARCHAR\"
          }],\
          \"MultiMeasureMappings\":{\
            \"TargetMultiMeasureName\": \"mma_name\",
            \"MultiMeasureAttributeMappings\":[{\
              \"SourceColumn\": \"avg_cpu\", \"MeasureValueType\": \"DOUBLE\", \"TargetMultiMeasureAttributeName\": \"target_avg_cpu\"
            },\
            { \
              \"SourceColumn\": \"min_cpu\", \"MeasureValueType\": \"DOUBLE\", \"TargetMultiMeasureAttributeName\": \"target_min_cpu\"
            }] \
          }\
          }}" \
  --error-report-configuration "{\"S3Configuration\": {\
        \"BucketName\": \"$s3_err_bucket\",\
        \"ObjectKeyPrefix\": \"scherrors\",\
        \"EncryptionOption\": \"SSE_S3\"\
        }\
      }"
```

# 使用 API
<a name="Using.API"></a>

 除此之外 [SDKs](getting-started-sdks.md)，Amazon Timestream 还通过*终端节点发现*模式 LiveAnalytics 提供直接的 REST API 访问权限。下文介绍端点发现模式及其使用案例。

## 端点发现模式
<a name="Using-API.endpoint-discovery"></a>

由于 Timestream Live Analytics 旨在透明地与服务的架构（包括服务端点的管理和映射）配合使用，因此建议您 SDKs 对大多数应用程序使用。 SDKs 但是，在某些情况下，需要使用 Timestream for LiveAnalytics REST API 端点发现模式：
+ 您正在使用[带有 Timestream 的 VPC 终端节点 (AWS PrivateLink) LiveAnalytics](VPCEndpoints.md)
+ 应用程序使用的编程语言尚不支持 SDK
+ 需要对客户端实现进行更有效的控制

本部分包含有关端点发现模式的工作原理、如何实施端点发现模式以及使用说明的信息。选择以下主题以了解更多信息。

**Topics**
+ [端点发现模式](#Using-API.endpoint-discovery)
+ [端点发现模式的工作原理](Using-API.endpoint-discovery.how-it-works.md)
+ [实施端点发现模式](Using-API.endpoint-discovery.describe-endpoints.implementation.md)

# 端点发现模式的工作原理
<a name="Using-API.endpoint-discovery.how-it-works"></a>

 Timestream 使用[蜂窝架构](architecture.md#cells)进行构建，以确保更优的扩展性和流量隔离特性。由于每个客户账户都映射到区域中的特定单元格，因此应用程序必须使用与账户映射对应的正确单元格专用端点。使用时 SDKs，系统会为您透明地处理此映射，您无需管理单元特定的端点。然而，直接访问 REST API 时，您需要自行管理和映射正确的端点。此过程，即*端点发现模式*，如下所述：

1.  端点发现模式从调用 `DescribeEndpoints` 操作开始（如 [https://docs.aws.amazon.com/timestream/latest/developerguide/API_Reference.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Reference.html) 部分所述）。

1.  应在返回的 time-to-live (TTL) 值 (the) 指定的时间内缓存和重复使用该[https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html#timestream-Type-Endpoint-CachePeriodInMinutes.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html#timestream-Type-Endpoint-CachePeriodInMinutes.html)端点。可在 TTL 持续时间内调用 Timestream LiveAnalytics API。

1.  TTL 过期后， DescribeEndpoints 应重新调用以刷新终端节点（换句话说，从步骤 1 重新开始）。

**注意**  
 `DescribeEndpoints` 操作的语法、参数及其他用法信息，详见 [API 参考](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html)。请注意，该`DescribeEndpoints`操作可通过两者使用 SDKs，并且每种操作都相同。

有关端点发现模式的实施，请参阅[实施端点发现模式](Using-API.endpoint-discovery.describe-endpoints.implementation.md)。

# 实施端点发现模式
<a name="Using-API.endpoint-discovery.describe-endpoints.implementation"></a>

 要实现端点发现模式，请选择一个 API（写入或查询），创建**DescribeEndpoints**请求，然后在返回的 TTL 值持续时间内使用返回的端点。实施过程如下所述。

**注意**  
确保您熟悉[使用说明](#Using-API.endpoint-discovery.describe-endpoints.usage-notes)。

## 实施过程
<a name="Using-API.endpoint-discovery.describe-endpoints.implementation.procedure"></a>

1.  使用 [https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html) 请求，获取您要对其进行调用（[写入](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Write.html)或[查询](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Query.html)）的 API 的端点。

   1.  使用下述两个端点之一，创建与目标 API（[写入](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Write.html)或[查询](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Query.html)）相对应的 [https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html) 请求。该请求没有输入参数。请务必阅读以下说明。  
*写入 SDK：*  

      ```
      ingest.timestream.<region>.amazonaws.com
      ```  
*查询 SDK：*  

      ```
      query.timestream.<region>.amazonaws.com
      ```

      以下是区域 `us-east-1` 的 CLI 调用示例。

      ```
      REGION_ENDPOINT="https://query.timestream.us-east-1.amazonaws.com"
      REGION=us-east-1
      aws timestream-write describe-endpoints \
      --endpoint-url $REGION_ENDPOINT \
      --region $REGION
      ```
**注意**  
 HTTP“主机”标头还*必须*包含 API 端点。如果未填充该标头，则请求将失败。这是所有 HTTP/1.1 请求的标准要求。如果使用支持 1.1 或更高版本的 HTTP 库，HTTP 库应自动为您填充标头。
**注意**  
*<region>*用请求所在区域的区域标识符替换，例如 `us-east-1`

   1. 解析响应，以提取端点并缓存 TTL 值。响应是一个或多个 [`Endpoint` 对象](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html)的数组。每个 `Endpoint` 对象都包含一个端点地址（`Address`）和该端点的 TTL（`CachePeriodInMinutes`）。

1.  缓存端点，其 TTL 不超过指定值。

1.  TTL 到期后，请从实施步骤 1 重新开始，以检索新的端点。

## 端点发现模式的使用说明
<a name="Using-API.endpoint-discovery.describe-endpoints.usage-notes"></a>
+ 该**DescribeEndpoints**操作是 Timestream Live Analytics 区域端点识别的唯一操作。
+ 响应包含用于调用 Timestream LiveAnalytics API 的端点列表。
+  成功响应后，列表应至少包含一个端点。如果列表中包含多个端点，则其中任意一个均可用于 API 调用，调用者可随机选择使用其中一个端点。
+ 除端点的 DNS 地址外，列表中的每个端点还将指定允许使用该端点的生存时间（TTL），以分钟为单位。
+ 该端点应进行缓存和重复使用，时长由返回的 TTL 值所指定（以分钟为单位）。TTL 过期后，**DescribeEndpoints**应重新调用以刷新要使用的终端节点，因为 TTL 过期后终端节点将不再起作用。

# 使用 AWS SDKs
<a name="getting-started-sdks"></a>

 您可以使用访问亚马逊 Timestream。 AWS SDKsTimestream SDKs 每种语言支持两种语言；即 Write SDK 和查询 SDK。写入 SDK 用于执行 CRUD 操作，并将时间序列数据插入到 Timestream 中。查询 SDK 用于查询存储在 Timestream 中的现有时间序列数据。

完成所选 SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

**Topics**
+ [Java](getting-started.java.md)
+ [Java v2](getting-started.java-v2.md)
+ [Go](getting-started.go.md)
+ [Python](getting-started.python.md)
+ [Node.js](getting-started.node-js.md)
+ [.NET](getting-started.dot-net.md)

# Java
<a name="getting-started.java"></a>

要开始使用 [Java 1.0 SDK](https://aws.amazon.com/sdk-for-java/) 和 Amazon Timestream，请完成下述先决条件。

完成 Java SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.java.prereqs"></a>

开始使用 Java 之前，您必须执行以下操作:

1. 按照中的 AWS 设置说明进行操作[访问 Timestream LiveAnalytics](accessing.md)。

1. 通过下载并安装以下内容来设置一个 Java 开发环境：
   + Java SE Development Kit 8（例如 [Amazon Corretto 8](https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html)）。
   + Java IDE（例如 [Eclipse](http://www.eclipse.org) 或 [IntelliJ](https://www.jetbrains.com/idea/)）。

      有关更多信息，请参阅[《入门》 适用于 Java 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html) 

1. 配置您的 AWS 证书和开发区域：
   + 设置用于 适用于 Java 的 AWS SDK的 AWS 安全凭证。
   + 设置您的 AWS 区域以确定 LiveAnalytics 终端节点的默认时间流。

## 使用 Apache Maven
<a name="getting-started.java.with-maven"></a>

 你可以使用 [Apache Maven](https://maven.apache.org/) 来配置和构建 适用于 Java 的 AWS SDK 项目。

**注意**  
要使用 Apache Maven，请确保 Java SDK 和运行时为 1.8 或更高版本。

您可以将 AWS 软件开发工具包配置为 Maven 依赖项，如在 A [pache Maven 中使用软件开发工具包](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html)中所述。

您可以使用以下命令运行编译并运行源代码：

```
mvn clean compile
mvn exec:java -Dexec.mainClass=<your source code Main class>
```

**注意**  
 `<your source code Main class>` 是 Java 源代码主类的路径。

## 设置您的 AWS 凭证
<a name="getting-started.java.credentials"></a>

[适用于 Java 的 AWS SDK](https://aws.amazon.com/sdk-for-java)要求您在运行时向应用程序提供 AWS 凭据。本指南中的代码示例假设您使用的是 AWS 证书文件，如*适用于 Java 的 AWS SDK 开发人员指南中的设置 AWS 证书和开发*[区域](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html)中所述。

以下是名为的 AWS 凭据文件的示例`~/.aws/credentials`，其中波浪号字符 (`~`) 表示您的主目录。

```
[default] 
aws_access_key_id = AWS access key ID goes here 
aws_secret_access_key = Secret key goes here
```

# Java v2
<a name="getting-started.java-v2"></a>

要开始使用 [Java 2.0 SDK](https://aws.amazon.com/sdk-for-java/) 和 Amazon Timestream，请完成下述先决条件。

完成 Java 2.0 SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.java-v2.prereqs"></a>

开始使用 Java 之前，您必须执行以下操作:

1. 按照中的 AWS 设置说明进行操作[访问 Timestream LiveAnalytics](accessing.md)。

1. 您可以将 AWS 软件开发工具包配置为 Maven 依赖项，如在 A [pache Maven 中使用软件开发工具包](https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html)中所述。

1. 通过下载并安装以下内容来设置一个 Java 开发环境：
   + Java SE Development Kit 8（例如 [Amazon Corretto 8](https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html)）。
   + Java IDE（例如 [Eclipse](http://www.eclipse.org) 或 [IntelliJ](https://www.jetbrains.com/idea/)）。

      有关更多信息，请参阅[《入门》 适用于 Java 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html) 

## 使用 Apache Maven
<a name="getting-started.java-v2.with-maven"></a>

 你可以使用 [Apache Maven](https://maven.apache.org/) 来配置和构建 适用于 Java 的 AWS SDK 项目。

**注意**  
要使用 Apache Maven，请确保 Java SDK 和运行时为 1.8 或更高版本。

您可以将 AWS 软件开发工具包配置为 Maven 依赖项，如在 A [pache Maven 中使用软件开发工具包](https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/welcome.html)中所述。[此处](https://docs.aws.amazon.com/sdk-for-java/v2/migration-guide/whats-different.html#adding-v2)描述 pom.xml 文件所需的更改。

您可以使用以下命令运行编译并运行源代码：

```
mvn clean compile
mvn exec:java -Dexec.mainClass=<your source code Main class>
```

**注意**  
 `<your source code Main class>` 是 Java 源代码主类的路径。

# Go
<a name="getting-started.go"></a>

要开始使用 [Go SDK](https://aws.amazon.com/sdk-for-go/) 和 Amazon Timestream，请完成下述先决条件。

完成 Go SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.prereqs.go"></a>

1.  [下载 GO SDK 1.14](https://golang.org/doc/install)。

1.  [配置 GO SDK](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html)。

1.  [构造客户端](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html)。

# Python
<a name="getting-started.python"></a>

要开始使用 [Python SDK](https://aws.amazon.com/sdk-for-python/) 和 Amazon Timestream，请完成下述先决条件。

完成 Python SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.python.prereqs"></a>

要使用 Python，请按照[此处](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)的说明安装并配置 Boto3。

# Node.js
<a name="getting-started.node-js"></a>

要开始使用 [Node.js SDK](https://aws.amazon.com/sdk-for-node-js/) 和 Amazon Timestream，请完成下述先决条件。

完成 Node.js SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.node-js.prereqs"></a>

开始使用 Node.js 之前，您必须执行以下操作:

1. [安装 Node.js](https://nodejs.org/en/)。

1.  [安装 AWS 适用的 SDK JavaScript](https://aws.amazon.com/sdk-for-node-js/)。

# .NET
<a name="getting-started.dot-net"></a>

要开始使用 [.NET SDK](https://aws.amazon.com/sdk-for-net/) 和 Amazon Timestream，请完成下述先决条件。

完成 .NET SDK 的必要先决条件后，即可开始使用 [代码示例](code-samples.md)。

## 先决条件
<a name="getting-started.dot-net.prereqs"></a>

在开始使用.NET 之前，请安装所需的 NuGet 软件包，并通过运行以下命令确保 AWSSDK .Core 版本为 3.3.107 或更高版本：

```
dotnet add package AWSSDK.Core
dotnet add package AWSSDK.TimestreamWrite
dotnet add package AWSSDK.TimestreamQuery
```