

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

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

# 适用于 InfluxDB 的 Timestream 作为目标
<a name="timestream-influxdb-target"></a>

适用于 InfluxDB 的 Amazon Timestream 是一项托管的时间序列数据库服务 Amazon ，它使用开源 InfluxDB API 来运行实时应用程序。该服务易于设置、操作和扩展，能够以个位数毫秒级响应时间提供查询。

确定 InfluxDB 的 Timestream 是否是适合您的用例的迁移目标的第一步是确定表的时间流的基数。 LiveAnalytics 我们开发了一个[脚本](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/cardinality/README.md)，用于计算 Timestream 中表的基数。 LiveAnalytics此计算旨在实现两个目的：

1. 检查基数是否小于 1000 万，这将有助于确定适用于 InfluxDB 的 Timestream 能否处理您的使用案例。

1. 帮助您决定要使用哪种[适用于 InfluxDB 的 Timestream 实例类型](timestream-for-influxdb.md#timestream-for-influx-dbi-classtypes)。

InfluxDB 中的[基数](https://docs.influxdata.com/influxdb/v2/reference/glossary/#series-cardinality)是指 InfluxDB [存储桶](https://docs.influxdata.com/influxdb/v2/admin/buckets/)中唯一[测量值](https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/#measurement)、[标签](https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/#tag-set)和[字段键](https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/#field-set)组合的数量。请参阅[适用于 InfluxDB 的 Timestream 关于基数管理的文档](timestream-for-influxdb.md#timestream-for-influx-getting-started-security-best-practices)，以了解超过推荐限制会如何导致查询性能下降并增加内存消耗。在最终确定实例选择之前，请将预期的查询模式与代表性数据样本进行基准测试，以确保迁移后查询性能保持稳定。请注意内存密集型聚合查询，这些查询的行为可能与 Timestream 中的行为有所不同。 LiveAnalytics从 Timestream 迁移时 LiveAnalytics，请根据数据集的基数仔细选择您的 InfluxDB 实例规格，因为这会直接影响性能和资源需求。如果数据基数超过 1000 万，建议考虑其他目标。

**基数计算脚本概述**

基数计算脚本计算表的时间流的基数。 LiveAnalytics 如果基数小于 1000 万，脚本建议使用适用于 InfluxDB 的 Timestream 实例类型。使用默认架构映射，通过计算维度和度量名称的唯一组合总数计算基数。选择正确的[行协议标签](https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/#elements-of-line-protocol)（等同于 Timestream 中的维度 LiveAnalytics）可帮助您自动[索引](https://docs.influxdata.com/influxdb/v2/reference/key-concepts/data-elements/#tag-value)数据并使用标签高效地筛选数据。该脚本还提供在计算基数时排除特定维度的选项。如果适用于您的情况，即在 SQL 查询中未使用某些维度进行数据筛选（特别是未将其用作谓词），则可将这些维度排除在基数计算之外。稍后，您可以在迁移的后续步骤中将它们作为字段（等同于 Timestream 中的度量 LiveAnalytics）摄取。

*先决条件和安装*

请参阅[基数脚本的自述文件](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/cardinality/README.md)中的“先决条件”部分及安装说明。

**基本用法**

要确定数据库 example\_database 中表 example\_table 的基数，可按以下方式使用该脚本：

**Example**  

```
python3 cardinality.py \
    --table-name example_table \
    --database-name example_database
```

这会生成以下输出：

```
Cardinality of "example_database"."example_table": 160
Your recommended Timestream for InfluxDB type is: db.influx.medium
```

**建议**

该脚本会自动扫描整个表以计算基数，同时提供时间筛选选项，以实现最佳查询执行。当数据涉及一致的维度，且分析整个表中不同维度的变化会产生与分析特定时间范围相似的结果时，我们建议使用时间筛选器。此方法可确保高效且高性能的查询执行。

有关更多信息，请参阅[基数脚本的自述文件](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/cardinality/README.md)。