

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

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

# 迁移验证脚本
<a name="migration-validation"></a>

验证脚本比较源表（Amazon Timestream 或 Amazon Athena）和 InfluxDB 存储桶度量之间的逻辑 row/point 计数，以及可选的时间范围规范。该工具通过对两个系统运行并行查询和比较结果，帮助确保迁移过程中的数据完整性。

验证脚本支持对 Athena 中导出的数据集或原始 Timestream 进行查询。 database/table请注意，如果数据在导出后写入，则直接查询 Timestream 可能会导致比较结果不准确。验证脚本可在摄取开始后随时运行。它首先轮询InfluxDB的指标端点以等待 [WAL（Write-Ahead Log）](https://docs.influxdata.com/influxdb/v2/reference/internals/storage-engine/#write-ahead-log-wal)完全刷新，从而确保所有数据处理，包括摄取后的文件合并和重复数据删除，都已完成。该脚本随后在相同的时间窗口内执行仅计数查询，通过比较结果突出显示匹配项或不匹配项。它支持对使用维度作为字段的转换后的架构进行可选 schema/tag 筛选，并生成人类可读的时间和结果摘要，以便于验证迁移过程。

*先决条件和安装*

请参阅[迁移验证脚本自述文件](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/README.md#installation)中的先决条件和安装部分。

*用法*

```
python validator.py [options]
```

所有设置均可通过 CLI 标志或环境变量进行配置。请参阅存储库中的 example.env 文件。

有关故障排除和建议，请参阅[迁移验证脚本自述文件](https://github.com/awslabs/amazon-timestream-tools/blob/mainline/tools/python/liveanalytics_migration_scripts/README.md#installation)。

*清除*

完成迁移后， resources/artifacts 将创建以下内容：
+ 一个 Athena 表，包含数据的时间流。 LiveAnalytics 默认情况下，这为默认 Athena 数据库中的 <Timestream database name>\_<Timestream table name>。
+ Athena 表，包含转换后的行协议数据。默认情况下，这为默认 Athena 数据库中的 lp\_<Athena table name>。
+ S3 存储桶中的行协议数据，路径为 <Timestream database name>/<Timestream table name>/unload-<%Y-%m-%d-%H:%M:%S>/line-protocol-output。
+ 作为 Timestream LiveAnalytics 导出工具的一部分创建的已卸载数据。
+ 已在 EC2 实例上下载的数据和日志。
+ DynamoDB 表（如果作为导出时间 LiveAnalytics 流工具的一部分用于记录）。

*清理 Athena 资源*

要删除任何 Athena 表，请运行以下 [Amazon CLI](https://www.amazonaws.cn/cli/) 命令，将 <Athena table name> 替换为要删除的表名称，并将 <Athena database name> 替换为该表所在的 Athena 数据库名称：

```
aws glue delete-table \
    --database-name <Athena database name> \
    --name <Athena table name>
```

*清理 S3 资源*

要删除 S3 存储桶中的线路协议数据，请运行以下 Amazon CLI 命令，<S3 bucket name>替换为 S3 存储桶的名称、<Timestream database name> LiveAnalytics 数据库的时间流名称、<Timestream table name> LiveAnalytics 表的时间流名称以及构成 S3 存储桶中 <timestamp>unload-<%y-%m-%d-%h: %M: %> 路径的时间戳：%M: %> 路径：

```
aws s3 rm \
    s3://<S3 bucket name>/<Timestream database name>/<Timestream table name>/unload-<timestamp>/line-protocol-output \
    --recursive
```

要删除 S3 存储桶，请运行以下命令，将 <S3 bucket name> 替换为 S3 存储桶名称：

```
aws s3 delete-bucket --bucket <S3 bucket name>
```

*清理 DynamoDB 资源*

要删除 DynamoDB 表，请运行以下命令，将 <table name> 替换为要删除的 DynamoDB 表名称：

```
aws dynamodb delete-table --table-name <table name>
```