要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Timestream for InfluxDB 3
什么是 Timestream for InfluxDB 3?
适用于InfluxDB 3的Amazon Timestream是一项托管的时间序列数据库服务,它使应用程序开发人员和 DevOps 团队可以轻松地使用开源在大型时间序列分析应用程序上 AWS 运行InfluxDB 3数据库。 APIs借助 Amazon Timestream for InfluxDB 3,可轻松设置、操作和扩展时间序列工作负载,这些工作负载旨在处理高基数数据和复杂分析查询。
InfluxDB 3 代表对 InfluxDB 数据库引擎的全面重构。与使用时间结构化合并树(TSM)存储引擎的版本 1 和 2 不同,InfluxDB 3 从底层开始就基于完全不同的技术架构进行构建。此新版本利用 Apache Arrow 进行内存数据处理,使用 Apache Data Fusion 执行查询,并采用列式存储格式(Parquet)实现对象存储(Amazon S3)中的数据持久性。此架构转变使 InfluxDB 3 能够为高基数数据提供增强的性能,并为大型分析工作负载实现高效扩展。InfluxDB 3 架构为数据密集型使用案例提供更高的查询性能和资源利用率。
Amazon Timestream for InfluxDB 3 让您能够访问这款新一代时间序列数据库引擎的功能。架构转型支持大规模时间序列分析工作负载,并利用列式 Parquet 存储格式固有的压缩、分区和查询优化功能。通过将计算与存储分离,InfluxDB 3 能够扩展以处理几乎无限的数据量,同时保持成本效益。
Amazon Timestream for InfluxDB 3 可自动备份数据库,并确保数据库软件始终保持最新版本。与所有资源一样 AWS 服务,无需前期投资,您只需为使用的资源付费。
数据库集群
数据库集群是 Timestream for InfluxDB 3 的基本构建块。与传统数据库实例不同,InfluxDB 3 使用基于集群的架构,将计算与存储分离,并借助 Amazon S3 实现近乎无限且经济高效的数据存储。
可在核心版或企业版中设置 InfluxDB 3 部署:
核心版
InfluxDB 3 的核心版仅支持单节点集群部署,且缺乏压缩功能,这会影响其对某些工作负载的适用性。由于这些限制,核心版主要设计用于近实时工作负载,专注于近期数据(通常为几天前的数据)。不建议将其用于涉及长期存储和分析的使用案例,因为如果没有可优化存储的压缩过程,性能会随着时间的推移而下降。
企业版
InfluxDB 3 的企业版支持多节点集群配置,且包含基本的压缩功能,可实现读取和写入操作的水平扩缩。这些多节点部署提供增强的可用性、改进的并发查询性能以及优化的整体系统弹性。企业版中的压缩功能使其适用于高基数数据和长期分析使用案例,因为其能持续优化底层存储格式。企业集群可通过添加节点进行扩展,以适应不断增长的工作负载,同时不会中断正在进行的操作。
每个数据库集群都有一个数据库集群标识符。在与适用于 InfluxDB 的 Amazon Timestream API 和 AWS CLI 命令进行交互时,此自动生成的名称可唯一标识数据库集群。在 AWS 区域中,数据库集群标识符对于该用户是唯一的。
适用于 InfluxDB 的 Timestream 会为集群分配 DNS 端点。服务生成的标识符构成集群 DNS 端点的一部分。例如,如果集群的服务生成标识符是 xghozx1v79,则 DNS 端点为 xghozx1v79-3ksj4dla5nfjhi.timestream-influxdb3.us-east-1.on.aws。
Amazon Timestream for InfluxDB 3 允许为数据库集群创建主用户账户和密码,这也是创建过程的一部分。此主用户具有创建数据库、表以及对数据执行读取、写入、删除和更新插入操作的权限。
要访问基于 Web 的可视用户界面,你可以使用 InfluxDB Explore,它可以从你自己的实例下载InfluxData
数据库集群类
数据库集群类确定 Amazon Timestream for InfluxDB 3 集群中节点的计算和内存容量。相应的集群类取决于您的处理能力和内存要求。
InfluxDB 3 集群类
InfluxDB 3 集群使用专门针对基于 Amazon S3 的存储架构进行优化的实例类。这些类被指定为db.influxIOIncluded,旨在平衡计算资源和使用对象存储的 I/O 需求。db.influxIOIncluded计算实例的定价已经包含了对 Amazon S3 执行的所有 I/O 操作,无论客户的特定 I/O 模式如何,都可为他们提供可预测的成本。
下表显示 InfluxDB 3 集群节点类的硬件详细信息:
| 实例类 | vCPU | 内存 (GiB) | 存储类型 | 网络带宽 (Gbps) |
|---|---|---|---|---|
| db.infulx .medium IOIncluded | 1 | 8 | S3 对象存储 | 12 |
| db.influx .larg IOIncluded e | 2 | 16 | S3 对象存储 | 12 |
| db.influx .xlarg IOIncluded e | 3 | 32 | S3 对象存储 | 15 |
| db.influx .2xlarg IOIncluded e | 8 | 64 | S3 对象存储 | 20 |
| db.influx .4xlarg IOIncluded e | 16 | 128 | S3 对象存储 | 25 |
| db.influx .8xlarg IOIncluded e | 32 | 256 | S3 对象存储 | 30 |
| db.influx .12xlarg IOIncluded e | 48 | 384 | S3 对象存储 | 22.5 |
| db.influx .16xlarg IOIncluded e | 64 | 512 | S3 对象存储 | 30 |
| db.influx .24xlarg IOIncluded e | 96 | 768 | S3 对象存储 | 40 |
db.influxIOIncluded 实例类专门设计用于:
-
高效管理计算节点和 Amazon S3 对象存储之间的 I/O 操作。
-
使用 Apache Arrow 框架为处理时间序列数据提供最佳 memory-to-CPU比率。
-
支持 Data Fusion 查询引擎的计算要求。
对于采用多节点集群的企业部署,所有节点均使用相同的实例类,以确保整个集群的性能均衡。随着工作负载的增长,可通过为集群中所有节点选择更大的实例类以进行纵向扩展,也可通过向集群中添加更多同类节点以进行横向扩展。
数据库集群类的硬件规格
以下术语描述数据库集群类的硬件规格:
-
vCPU-虚拟中央处理单元的数量 () CPUs。虚拟 CPU 是可用于比较数据库集群类的容量单位。
-
内存(GiB):为数据库集群节点分配的 RAM(以 GiB 为单位)。内存与 vCPU 之间通常具有一致的比率。
-
存储类型:InfluxDB 3 使用 S3 对象存储,该存储与计算节点分离。
-
网络带宽:相对于其他数据库集群类的网络速度。
数据库集群存储
Amazon Timestream for InfluxDB 3 引入全新的存储架构,通过利用 Amazon S3 作为对象存储服务,实现计算与存储的解耦。该架构在大型部署中既能提供近乎无限的存储容量,又能控制成本。
InfluxDB 对象存储
InfluxDB 3 集群使用名为 InfluxDB 对象存储的单个存储类别,该存储基于 Amazon S3 构建。此存储选项提供:
-
近乎无限的存储容量
-
经济高效的大型数据量存储(部署规模超过 16TB 时,相较于 InfluxDB 2.x 可节省高达 75% 的成本)
-
99.999999999%(11 个 9)的持久性
-
数据采用列式 Parquet 格式存储,实现高效的压缩和查询性能
与传统数据库架构中存储直接连接到计算节点不同,InfluxDB 3 的对象存储在集群的所有节点间共享。每个节点都会为经常访问的数据保留本地内存缓存,以优化查询性能,同时底层数据仍保留在 Amazon S3 中。
InfluxDB 对象存储定价基于以下因素:
-
总存储数据量(GB/月),每月最低费用相当于 200GB
I/O 运营成本捆绑在 db.influx IOIncluded 实例类的计算定价中,从而为客户提供更可预测的成本,无论其具体模式如何。 I/O
存储架构优势
InfluxDB 3 中基于 Amazon S3 的存储架构在以下方面具有显著优势:
-
大规模时间序列分析工作负载
-
高基数数据要求
-
长期数据留存方案
-
经济高效地存储大型时间序列数据集
这种存储模型与 LiveAnalytics “磁性存储层” 的 Timestream 相当,后者也是基于对象存储的,针对长期存储和分析用例进行了优化。InfluxDB 3的存储经济性旨在与 LiveAnalytics “磁性存储” 定价具有竞争力,事实证明,这种模式适合想要长时间运行和存储大规模时间序列工作负载和数据的客户。
数据库集群大小调整
Timestream for InfluxDB 3 集群的最佳配置取决于多种因素,包括摄取速率、批处理大小、时间序列基数、并发查询以及查询类型。
对 InfluxDB 3 集群进行大小调整时,由于其架构不同,请考虑以下其他因素:
-
存储效率:对于数据量超过 16TB 的部署,与 Timestream for InfluxDB 2 部署相比,InfluxDB 3 的对象存储可节省高达 75% 的成本。
-
工作负载特性:InfluxDB 3 针对大型数据集上的高基数数据和分析查询进行优化,同时在较短时间范围的查询中,其性能与 1.x 和 2.x 版本相当。此外,last-value
和 distinct-value 缓存等功能,可为特定使用案例(例如检索最新的数据点或唯一的元数据值)提供持续低于 10 毫秒的查询延迟。 -
查询模式:考虑工作负载是持续性(全天候监控)还是间歇性(周期性分析)
-
压缩要求:企业版包含压缩功能,该功能对于长期数据存储和高基数工作负载至关重要。对于 3 节点及以上规模的集群部署,建议配置专用的压缩节点,以最大化其他独立节点上的写入器和读取器性能,确保压缩过程不会与查询及数据摄取操作争夺资源。
为提供大小调整建议,请考虑具有以下特征的示例性工作负载:
-
数据由 Telegraf 代理实例集收集和写入,这些代理从数据中心收集系统、CPU、内存、磁盘、IO 等。
-
每个写入请求包含 5000 行。
-
在系统上执行的查询被归类为“中等复杂度”查询,具有以下特征:
-
这些查询具有多个函数和一两个正则表达式。
-
这些查询可能包括按子句分组或时间范围为数周的样本。
-
这些查询通常需要几百毫秒到几千毫秒才能执行。
-
CPU 主要有利于查询性能。
-
所有测试均使用包含 3000 万个时间序列数据的数据集进行。
-
| 写入(每秒行数) | 读取(每秒查询数) | 实例类 | 版本 |
|---|---|---|---|
| ~150000 | <25 | db.influx .larg IOIncluded e | 核心 |
| ~200000 | ~25 | db.influx .xlarg IOIncluded e | 核心 |
| ~250000 | ~35 | db.influx .2xlarg IOIncluded e | Enterprise |
| ~500000 | ~50 | db.influx .4xlarg IOIncluded e | Enterprise |
| <750000 | <100 | db.influx .8xlarg IOIncluded e | Enterprise |
| >750000 | >100 | 多节点企业集群 | Enterprise |
Amazon Timestream for InfluxDB 3 的数据库集群计费
Amazon Timestream for InfluxDB 3 集群根据以下组件进行计费:
-
数据库集群节点小时数(每小时)-基于数据库集群节点类别,例如 db.influx .lar IOIncluded ge。定价以每小时为单位列出,但账单向下计算至秒,并以十进制形式显示时间。使用量以 1 秒的增量进行计费,时长最少 10 分钟。对于单节点核心部署或多节点企业部署,每个节点均根据其运行时间单独计费。
-
对象存储(每月每 GB):存储在 InfluxDB 对象存储中的实际数据量,而非预置容量。此模式支持仅为使用的存储空间付费,无需预先配置存储容量。注意:即使实际存储使用量低于 200GB,每月仍需支付相当于 200GB 的最低存储费用。
-
数据传出(每 GB):将数据从数据库集群传输至互联网或其他 AWS 区域。同一 VPC 内部或同一 VPC 内的可用区之间的数据传输或流量均免费。 AWS 区域
-
InfluxDB 3 企业版许可证(每个 vCPU 每小时)— 对于 InfluxDB 3 Enterprise 部署,需要按每个 vCPU 每小时收取额外的 InfluxData 许可费用。该许可费直接通过账单计费, AWS Marketplace 并在 AWS 账单上作为单独的项目显示。该许可证支持企业功能,例如多节点集群、压缩功能以及高级安全功能。
对于具有多个节点的 InfluxDB 3 企业集群,每个节点根据其实例类和 vCPU 数量(用于计算许可费)单独计费,而存储成本则进行合并计算,因为所有节点共享相同的底层对象存储。
计费组件摘要
| 计费组件 | InfluxDB 3 核心版 | InfluxDB 3 企业版 |
|---|---|---|
| 计算计费 | 每节点小时数(db.inf IOIncluded lux 类) | 每节点小时数(db.inf IOIncluded lux 类) |
| 存储计费 | 每 GB 存储数据(最少 200GB) | 每 GB 存储数据(最少 200GB) |
| I/O 运营 | 包含在计算节点定价中 | 包含在计算节点定价中 |
| 存储扩展 | 无需支付,仅需为使用的存储空间付费 | 无需支付,仅需为使用的存储空间付费 |
| 数据传入 | 免费 | 免费 |
| 内部数据传输 VPC/AZ | 免费 | 免费 |
| 数据传出(互联网/跨区域) | 每 GB 计费 | 每 GB 计费 |
| 最低计费 | 10 分钟 | 10 分钟 |
| 计费粒度 | 以 1 秒为增量 | 以 1 秒为增量 |
| 多节点支持 | 否(仅支持单节点) | 是 |
| 附加许可 | 无 | 每小时 vCPU 通过 AWS Marketplace |
成本优化策略
-
合理调整大小:根据工作负载要求选择适当的节点类,避免过度配置。我们还建议选择能将 CPU 和内存利用率平均维持在约 65% 的实例,以确保在使用量激增时具备弹性,并为正常运行的容量规划预留余地。
-
存储效率:对于数据量超过 16TB 的部署,与传统基于 EBS 的解决方案相比,InfluxDB 3 的对象存储可节省高达 75% 的成本。
-
网络流量优化:尽可能将数据传输限制在同一 VPC 或区域内,以避免产生数据传出费用。
-
扩展策略:对于 InfluxDB 3 企业版,请根据具体的工作负载模式,权衡纵向扩展(更大节点类)与横向扩展(更多节点)哪种方式更具成本效益。
-
许可证优化:对于 InfluxDB 3 企业版,请选择能在 vCPU 数量(影响许可证成本)和性能要求之间实现最佳平衡的节点类。
有关 Amazon Timestream for InfluxDB 3 定价信息,请参阅适用于 InfluxDB 的 Amazon Timestream 定价页面
AWS 区域 和可用区
Amazon 云计算资源在全球多个位置托管。这些位置由 AWS 区域 和可用区组成。每个区域都 AWS 区域 是一个独立的地理区域。每个 AWS 区域 都有多个被称为可用区的隔离位置。
借助 Amazon Timestream for InfluxDB 3,可将资源(如数据库集群)和数据放置在多个位置。对于采用多节点集群的企业部署,节点会分布在多个可用区中,以提升可用性。
有关适用于 InfluxDB 3 的 Amazon Timestream AWS 区域 在哪里可用以及每个区域的终端节点的信息,请参阅亚马逊 Timestream 终端节点和配额。