在构建任何软件应用时,选择合适的数据库至关重要。所有数据库在性能方面都有不同的优势和劣势,因此,为您的特定用例和数据模型选择最有利且缺点最少的数据库是一项重要的决策。以下概述了 TimescaleDB 和 OpenTSDB 的关键概念、架构、功能、用例和定价模型,以便您快速了解它们之间的比较。

本文的主要目的是比较 TimescaleDB 和 OpenTSDB 在涉及时序数据的工作负载中的性能,而不是所有可能的用例。时序数据通常在数据库性能方面提出了独特的挑战。这是由于大量数据被写入以及访问这些数据的查询模式所致。本文并非旨在说明哪个数据库更好;它只是提供了每个数据库的概述,以便您可以做出明智的决定。

TimescaleDB 与 OpenTSDB 细分


 
数据库模型

时序数据库

时序数据库

架构

TimescaleDB 构建于 PostgreSQL 之上,并继承了其架构。它通过特定于时序的优化和函数扩展了 PostgreSQL,使其能够高效地管理时序数据。它可以作为单节点、多节点设置或云中的托管服务进行部署。

OpenTSDB 可以部署在本地或云端,HBase 在分布式节点集群上运行。

许可

Timescale 许可证(用于 TimescaleDB 社区版);Apache 2.0(用于核心 PostgreSQL)

GNU LGPLv2.1

用例

监控、可观测性、物联网、实时分析、金融市场数据

监控、可观测性、物联网、日志数据存储

可扩展性

通过对分区、复制和分片的原生支持实现水平扩展。提供多节点功能,用于跨节点分发数据和查询。

使用 HBase 作为其存储后端,在多个节点之间实现水平扩展

正在寻找最有效率的入门方式?

无论您是寻求节省成本、降低管理开销还是开源,InfluxDB 都能提供帮助。

TimescaleDB 概览

TimescaleDB 是一个构建于 PostgreSQL 之上的开源时序数据库。它的创建是为了解决管理时序数据方面的挑战,例如可扩展性、查询性能和数据保留策略。TimescaleDB 于 2017 年首次发布,此后因其 PostgreSQL 兼容性、性能优化和灵活的数据保留策略而成为存储和分析时序数据的热门选择。

OpenTSDB 概览

OpenTSDB (开放时序数据库) 是一个构建于 Apache HBase (NoSQL 数据库) 之上的开源、分布式且可扩展的时序数据库。OpenTSDB 的设计旨在解决对存储和处理来自各种来源 (例如物联网设备、传感器和监控系统) 生成的大量时序数据不断增长的需求。它最初由 StumbleUpon 于 2010 年开发,后来成为一个拥有活跃贡献者社区的独立项目。


TimescaleDB 用于时序数据

TimescaleDB 专门为时序数据而设计,使其成为存储和查询此类数据的自然选择。它为时序数据管理提供了多项优势,例如水平可扩展性、列式存储和保留策略支持。但是,TimescaleDB 可能不是所有时序用例的最佳选择。例如,如果应用程序需要非常高的写入吞吐量或实时分析,则其他专门的时序数据库 (如 InfluxDB) 可能更适合。

OpenTSDB 用于时序数据

OpenTSDB 专为时序数据存储和分析而设计,使其成为管理大规模时序数据集的理想选择。其架构实现了高写入和查询性能,并且可以每秒处理数百万个数据点,同时最大限度地减少资源消耗。OpenTSDB 灵活的查询功能允许用户高效地对时序数据执行复杂分析。


TimescaleDB 关键概念

  • 超表:超表是一个分布式表,它按时间以及可能的其他维度(例如设备 ID 或位置)进行分区。它是 TimescaleDB 中存储时序数据的主要抽象,旨在跨多个节点水平扩展。
  • :块是超表的分区,包含超表数据的子集。块由 TimescaleDB 根据指定的时间间隔自动创建,并且可以单独压缩、索引和备份,以获得更好的性能和数据管理。
  • 分布式超表:对于大规模部署,TimescaleDB 支持分布式超表,它跨多个节点分区数据,以提高查询性能和容错能力。

OpenTSDB 关键概念

  • 数据点:时间上的单个测量值,包括时间戳、指标、值和关联标签。
  • 指标:一个命名的值,表示系统的特定方面,例如 CPU 使用率或温度。
  • 标签:与数据点关联的键值对,提供元数据并帮助分类和查询数据。


TimescaleDB 架构

TimescaleDB 是构建于 PostgreSQL 之上的扩展,继承了其关系数据模型和 SQL 支持。但是,TimescaleDB 使用自定义数据结构和针对时序数据的优化(例如超表和块)扩展了 PostgreSQL。

OpenTSDB 架构

OpenTSDB 构建于 Apache HBase (分布式且可扩展的 NoSQL 数据库) 之上,并依赖其架构进行数据存储和管理。OpenTSDB 将时序数据存储在 HBase 表中,数据点按指标、时间戳和标签组织。该数据库使用无模式数据模型,从而在添加新指标和标签时具有灵活性。OpenTSDB 架构还支持通过跨多个 HBase 节点分发数据来实现水平扩展。

免费时序数据库指南

获取对备选方案和选择您的方案的关键要求的全面审查。

TimescaleDB 功能

分区

TimescaleDB 使用超表和块自动对时序数据表进行分区,从而简化了数据管理并提高了查询性能。

专注于时序的 SQL 函数

TimescaleDB 为时序数据应用场景提供了多个专门的 SQL 函数和运算符,例如 time_bucket、first 和 last,它们简化了时序数据的查询和聚合。

查询优化

如前所述,TimescaleDB 扩展了 PostgreSQL 的查询计划器,用于写入和查询时序数据,包括基于时间的索引和块剪枝等优化。

OpenTSDB 功能

可扩展性

OpenTSDB 的分布式架构允许水平扩展,确保数据库可以处理不断增长的时序数据量。

数据压缩

OpenTSDB 使用各种压缩技术来减少时序数据的存储空间。

具有时序支持的查询语言

OpenTSDB 具有灵活的查询语言,支持聚合、降采样、过滤和其他用于分析时序数据的操作。


TimescaleDB 用例

监控和指标

TimescaleDB 非常适合存储和分析监控和指标数据,例如服务器性能指标、应用程序日志和传感器数据。其超表结构和查询优化使其易于存储、查询和可视化大量的时序数据。

物联网数据存储

TimescaleDB 可用于存储和分析物联网数据,例如传感器读数和设备状态信息。它对自动分区和专用 SQL 接口的支持简化了大规模物联网数据集的管理和查询。

金融数据

TimescaleDB 适用于存储和分析金融数据,例如股票价格、汇率和交易量。其查询优化和专用 SQL 函数使其易于执行基于时间的聚合和分析金融数据趋势。

OpenTSDB 用例

监控和警报

OpenTSDB 非常适合大规模监控和警报系统,这些系统从各种来源生成大量的时序数据。

物联网数据存储

OpenTSDB 可以存储和分析物联网设备(例如传感器和智能家电)生成的时序数据,从而实现实时洞察和分析。

性能分析

OpenTSDB 灵活的查询功能使其成为分析系统和应用程序性能指标随时间变化的理想选择。


TimescaleDB 定价模型

TimescaleDB 提供两个版本:TimescaleDB 开源版和 TimescaleDB Cloud。开源版可以免费使用并可以自托管,而云版本是托管服务,采用按需付费的定价模型,具体取决于存储、计算和数据传输使用量。TimescaleDB Cloud 提供各种定价层级,具有不同级别的资源和功能,例如持续备份和高可用性。

OpenTSDB 定价模型

OpenTSDB 是开源软件,这意味着它可以免费使用,无需任何许可费。但是,运行 OpenTSDB 的成本取决于支持底层 HBase 数据库所需的基础设施,例如云服务或本地硬件。