将 InfluxDB 作为目标的时间流 - Amazon Timestream

从2025年6月20日起,亚马逊Timestream版 LiveAnalytics 将不再向新客户开放。如果您想使用亚马逊 Timestream LiveAnalytics,请在该日期之前注册。现有客户可以继续照常使用该服务。有关更多信息,请参阅 Amazon Timestream 以了解 LiveAnalytics 可用性变更。

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

将 InfluxDB 作为目标的时间流

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

确定 InfluxDB 的 Timestream 是否是适合您的用例的迁移目标的第一步是确定表的时间流的基数。 LiveAnalytics 我们开发了一个脚本,用于计算 Timestream 中表的基数。 LiveAnalytics此计算有两个目的:

  1. 检查基数是否小于 1000 万,这将有助于确定 InfluxDB 的 Timestream 能否处理你的用例。

  2. 帮助您决定要使用哪种 InfluxDB 实例类型的时间流

InfluxDB 中的@@ 数是 InfluxDB 存储桶中唯一测量值标签字段键组合的数量。有关InfluxDB基数管理的文档,请参阅Timestream,以了解超过建议的限制会如何降低查询性能并增加内存消耗。在最终确定实例选择之前,将预期的查询模式与具有代表性的数据样本进行基准测试,以确保您的查询在迁移后保持高性能。请注意内存密集型聚合查询,这些查询的行为可能与 Timestream 中的行为有所不同。 LiveAnalytics从 Timestream 迁移时 LiveAnalytics,请根据数据集的基数仔细选择您的 InfluxDB 实例规格,因为这会直接影响性能和资源需求。如果您的数据基数超过 1000 万,我们建议您考虑其他目的地。

基数计算脚本概述

基数计算脚本计算表的时间流的基数。 LiveAnalytics 如果基数小于 1000 万,则脚本建议使用 InfluxDB 实例类型的 Timestream。使用默认架构映射,通过计算维度和度量名称的唯一总组合来计算基数。选择正确的行协议标签(等同于 Timestream 中的维度 LiveAnalytics)可帮助您自动索引数据并使用标签高效地筛选数据。该脚本还提供了在计算基数时排除特定维度的选项。如果适用于您的情况,也就是说,如果您没有使用某些维度来筛选 SQL 查询中的数据(特别是不使用它们作为谓词),则可以将这些维度排除在基数计算之外。稍后,您可以在迁移的后续步骤中将它们作为字段(等同于 Timestream 中的度量 LiveAnalytics)摄取。

先决条件和安装

请参阅 c ardinality 脚本的自述文件中的 “先决条件” 部分和安装。

基本用法

要确定表 example_table 的基数,可以在数据库 example_database 中按以下方式使用脚本:

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

建议

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

有关更多信息,请参阅基数脚本的自述文件。