AWS 时间序列数据库:了解您的选择

免费试用

立即开始增强您的 PostgreSQL。

The AWS acronym inside a watch (representing time series) in neon colors.

作者:Carlo Mencarelli

多年来,亚马逊网络服务 (AWS) 已成为云数据库托管服务的领先提供商。他们提供从通用关系数据库到账本和图形数据库等专用数据库的所有内容。

近年来,时间序列数据库 (TSDB) 作为一种专用数据库越来越受欢迎。DB-Engines 是 Solid-IT 收集和展示数据库系统信息的倡议,排名时间序列数据库是过去几年中流行度变化第二大的数据库。

DB-Engines TSDBs graph, showing the trend since January 2013

随着时间序列数据和可用选项的重要性日益增加,AWS 用户可以使用大量选项。但是,根据您的特定需求选择合适的解决方案可能具有挑战性。我希望在本篇文章结束时,通过以下方式消除一些困惑,并使选择变得更容易:

  • 清晰地了解时间序列数据库

  • 探索 AWS 上可用的各种时间序列数据库选项

  • 比较这些可能性,以帮助您决定什么适合您的组织

什么是时间序列数据库

如前所述,时间序列数据库是专门构建的数据库系统,用于高效处理带时间戳或时间序列数据。此类数据的一些示例包括服务器指标、传感器数据、股票市场信息或天气数据。有关时间序列数据的更多信息,您可以阅读我们的完整博客:时间序列数据:它是什么,以及如何使用它

正如您可能从我们上面的博客中学到的那样,时间序列数据是以时间为中心的,通常是仅追加的。TSDB 利用这些事实来优化存储和计算操作,并且可以在非常短的时间内高效地处理大量事务。

时间序列数据库上的查询通常涉及日期范围,这意味着需要优化查询过程以处理这些类型的请求。TSDB 系统将这些优化作为引擎的一部分。一些系统甚至可以在数据变旧时对其进行下采样或归档。

如果您想了解更多有关 TSDB 系统的信息,我们最近的博客文章 时间序列数据库:解释器 提供了更多详细信息。

您需要从时间序列数据库中获得什么

选择时间序列数据库时,需要考虑几个关键属性

  • 可扩展性:一个好的 TSDB 应该能够在不显着降低性能的情况下处理不断增长的数据量和查询负载。

  • 可维护性:数据库应该易于管理、更新和故障排除。它应该包含自动备份和归档等功能。

  • 可靠性:许多 TSDB 用户正在从头开始构建新系统,因此在需要时获取数据对于成功至关重要。

  • 可用性:数据库应提供强大且直观的查询语言,允许用户轻松检索和分析时间序列数据,而无需添加开发人员必须学习和精通的新语言。

AWS 时间序列数据库选项

AWS 上有几个时间序列数据库解决方案选项可用。这些可以大致分为 AWS 原生解决方案和可以部署在 AWS 基础架构上的第三方选项。让我们探索一些关键选项。

Amazon Timestream 是 AWS 的专用时间序列数据库服务。根据您的需要,它有几种风格,我们将在下面介绍。

您也可以使用 Amazon RDS 或 Amazon Aurora,尽管它们并非专门为时间序列数据而构建。RDS 提供典型的关系数据库,而 Aurora 提供 Amazon 专有的 MySQL 和 PostgreSQL 版本,并提供无服务器选项。

在 AWS 基础架构上构建的 Timescale 提供了另一种选择。它是基于 PostgreSQL 的完整时间序列数据库解决方案,因此您可以获得 TSDB 性能和 PostgreSQL 的熟悉度。

AWS 解决方案

AWS Timestream

Amazon Timestream 是 AWS 的专用时间序列数据库服务。它提供两种变体:适用于 LiveAnalytics 的 Timestream 和适用于 InfluxDB 的 Timestream。

Timestream for LiveAnalytics 是亚马逊专有的 TSDB。 该数据库属于其无服务器产品,这意味着它会根据性能要求自动向上和向下扩展。 它还提供许多 AWS 服务所提供的标准 99.99% 正常运行时间保证。 

但是,该服务有一些重大限制,包括有限的 SQL 支持,特别是无法进行联接。 此外,它是一个专有解决方案,这意味着该服务仅在 AWS 上可用,并且没有社区开发。

Timestream for InfluxDB 基于 InfluxDB 的开源实现,目前与 2.7 InfluxDB 服务兼容。 该服务由 AWS 全面管理,这意味着您无需担心安装和一些管理任务。 Timestream for InfluxDB 也面临着与自己运行 InfluxDB 相同的问题。 我们已经写了一些关于 InfluxDB 多年来做错的事情,但仅举几例:两次后端重写、两次主要的 API 更改,以及类似命名的服务产品目录倍增,造成混乱。

RDS

RDS 是亚马逊的基本数据库服务。 它提供了几种不同的引擎,例如 MySQL、PostgreSQL 和 Oracle。 它不提供特定的 TSDB 功能,但您可以利用开源选项,例如 pg_partman PostgreSQL 扩展来帮助对时间序列数据进行分区

这种级别的灵活性很好,但也增加了管理和开发开销。 您可以在我们最近发表的一篇文章中找到更多开源 TSDB 选项

Amazon Aurora

Aurora 类似于 RDS,因为它提供与 MySQL 和 PostgreSQL 兼容的数据库。 不同之处在于 Aurora 提供更多特定于云的功能,例如存储扩展、时间点恢复等。

虽然 Aurora 确实提供了更好的管理体验,但与 RDS 一样,它不提供任何特定于 TSDB 的特性或功能。 正如我们在之前的文章中所探讨的那样,增加的成本和功能可能并不完全相符:对 Amazon Aurora 与 PostgreSQL 进行基准测试

AWS 上的 Timescale

Timescale 在 TSDB 领域提供一些产品:一个可免费使用的开源 TSDB PostgreSQL 扩展(TimescaleDB)和一个提供高级功能和支持的完全托管解决方案(Timescale Cloud,以 TimescaleDB 为核心)。

TimescaleDB 构建在 PostgreSQL 之上,它提供了熟悉的 PostgreSQL 接口和功能,但在其上添加了一个强大的 TSDB。 在多项测试中,我们观察到 Timescale 在时间序列数据方面优于 InfluxDB。 Timescale 支持列式压缩,以实现更高效的数据存储,最终节省存储和数据传输的时间和金钱。

结论

时间序列数据库已成为处理大量时间序列数据的团队的关键工具。 正如我们所见,它们提供了专门设计用于应对时间序列数据独特挑战的高性能解决方案,例如高写入吞吐量、高效存储和优化的基于时间的查询。 生态系统中有很多 TSDB 可供选择,根据以上信息,您应该能够做出最适合您和您组织的决定。

您可以在 Timescale 中托管所有类型的 PostgreSQL 工作负载。 但特别是如果您有时间序列数据,Timescale 比其他 AWS 时间序列数据库更适合您。 此外,通过选择 Timescale Cloud,您将享受以下优势

  • 我们成熟的云平台是增强型 PostgreSQL(更简单、更快、更具成本效益)。 如果您使用时间序列数据,您就会知道您的数据增长速度有多快——避免遇到可扩展性障碍,并且绝对不要害怕每次查看月度账单时都要为顶级性能付费。

  • 通过针对时间序列和分析工作负载量身定制的专业优化,以更少的计算和存储资源提高性能。 对于具有近 10 亿行数据的 1 TB 数据集,Timescale 的性能优于 Amazon RDS for PostgreSQL,其数据提取率最高提高 44%,查询运行速度最高提高 350 倍。

  • 大幅节省存储成本:我们先进的压缩算法可显著减少 90% 的磁盘存储空间。 您可以将较旧的数据分层存储到构建在 S3 上的对象存储中,以进一步节省成本,同时保持完全可查询性。

  • 专家技术支持包含在我们的定价中,确保您在需要时获得所需的帮助。 了解我们如何彻底改变托管数据库支持,无需额外费用。

您可以免费试用 Timescale Cloud 30 天,看看它是否适合您:注册并亲身体验