迁移验证脚本 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。它为实时分析提供了简化的数据摄取和个位数毫秒的查询响应时间。点击此处了解更多。

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

迁移验证脚本

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

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

先决条件和安装

请参阅迁移验证脚本自述文件中的先决条件和安装部分。

用法

python validator.py [options]

所有设置都可以作为 CLI 标志或环境变量提供。请参阅存储库中的示例.env 文件。

有关疑难解答和建议,请参阅迁移验证脚本自述文件

清除

完成迁移后, resources/artifacts 将创建以下内容:

  • 一个 Athena 表,包含数据的时间流。 LiveAnalytics 默认情况下,默认 <Timestream database name><Timestream table name>Athena 数据库中为 _。

  • 一个 Athena 表,包含转换后的线路协议数据。默认情况下,这是 At <Athena table name>hena 默认数据库中的 lp_。

  • 您的 S3 存储桶中的线路协议数据,路径为 <Timestream database name><Timestream table name>//unload-<%y-%m-%d-%h: %M: %S>/。line-protocol-output

  • 作为 Timestream LiveAnalytics 导出工具的一部分创建的已卸载数据。

  • 已在您的 EC2 实例上下载数据和日志。

  • DynamoDB 表(如果作为导出时间 LiveAnalytics 流工具的一部分用于记录)。

清理 Athena 的资源

要删除任何 Athena 表,请运行以下 CL Amazon I 命令,<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>