在构建任何软件应用程序时,选择合适的数据库至关重要。所有数据库在性能方面都有不同的优势和劣势,因此,针对您的特定用例和数据模型,决定哪个数据库的优势最多、缺点最少是一项重要的决策。下面您将找到 Mimir 和 TimescaleDB 的关键概念、架构、功能、用例和定价模型的概述,以便您可以快速了解它们之间的比较。
本文的主要目的是比较 Mimir 和 TimescaleDB 在涉及时间序列数据的工作负载中的性能,而不是所有可能的用例。时间序列数据通常在数据库性能方面带来独特的挑战。这是因为数据写入量大以及访问该数据的查询模式。本文并非旨在说明哪个数据库更好;它只是提供每个数据库的概述,以便您可以做出明智的决定。
Mimir 与 TimescaleDB 对比细分
![]() |
||
数据库模型 | 时间序列数据库 |
时间序列数据库 |
架构 | Grafana Mimir 是一个时间序列数据库,专为高性能、实时监控和分析而设计。它具有分布式架构,允许跨多个节点进行水平扩展,以处理大量数据和查询。由于它是开源的,因此可以本地部署,也可以作为 Grafana 托管的托管解决方案部署 |
TimescaleDB 构建于 PostgreSQL 之上,并继承了其架构。它通过特定于时间序列的优化和功能扩展了 PostgreSQL,使其能够有效地管理时间序列数据。它可以作为单节点、多节点设置或云中的托管服务进行部署。 |
许可证 | APGL 3.0 |
Timescale 许可证(适用于 TimescaleDB 社区版);Apache 2.0(适用于核心 PostgreSQL) |
用例 | 监控、可观测性、物联网 |
监控、可观测性、物联网、实时分析、金融市场数据 |
可扩展性 | 水平可扩展 |
通过对分区、复制和分片的原生支持实现水平扩展。提供多节点功能,用于在节点之间分配数据和查询。 |
正在寻找最有效的入门方式?
无论您是在寻求节省成本、降低管理开销还是开源,InfluxDB 都能提供帮助。
Mimir 概览
Grafana Mimir 是一个开源软件项目,为 Prometheus 提供可扩展的长期存储解决方案。Grafana Labs 于 2022 年启动并宣布,Grafana Mimir 旨在成为最具可扩展性和性能的开源指标时间序列数据库。该项目融合了 Grafana Labs 工程师在以大规模运行 Grafana Enterprise Metrics 和 Grafana Cloud Metrics 时获得的知识和经验。
TimescaleDB 概览
TimescaleDB 是一个构建于 PostgreSQL 之上的开源时间序列数据库。它的创建是为了解决管理时间序列数据的挑战,例如可扩展性、查询性能和数据保留策略。TimescaleDB 于 2017 年首次发布,由于其 PostgreSQL 兼容性、性能优化和灵活的数据保留策略,此后已成为存储和分析时间序列数据的常用选择。
Mimir 用于时间序列数据
Grafana Mimir 非常适合处理时间序列数据,使其成为涉及指标存储和分析场景的合适选择。它为 Prometheus(一个流行的开源监控和警报系统)提供长期存储功能。借助 Grafana Mimir,用户可以存储和查询长时间段内的时间序列指标,从而进行历史分析和趋势检测。它特别适用于需要可扩展且高性能的时间序列数据存储以进行指标监控和可观测性目的的应用程序。
TimescaleDB 用于时间序列数据
TimescaleDB 专为时间序列数据而设计,使其成为存储和查询此类数据的自然选择。它为时间序列数据管理提供了多项优势,例如水平可扩展性、列式存储和保留策略支持。但是,TimescaleDB 可能不是所有时间序列用例的最佳选择。一个示例是,如果应用程序需要非常高的写入吞吐量或实时分析,则其他专门的时间序列数据库(如 InfluxDB)可能更适合。
Mimir 关键概念
- 指标:在 Grafana Mimir 中,指标表示随时间跟踪的度量或观察结果。它们可以包括各种类型的数据,例如系统指标、应用程序性能指标或传感器数据。
- 长期存储:Grafana Mimir 提供专门为长期保留时间序列数据而定制的存储解决方案,允许用户存储和查询长时间段内的历史指标。
- 微服务:Grafana Mimir 采用基于微服务的架构,其中系统由多个水平可扩展的微服务组成,这些微服务可以独立并行运行。
TimescaleDB 关键概念
- 超表:超表是一个分布式表,按时间和可能的其他维度(例如设备 ID 或位置)进行分区。它是 TimescaleDB 中存储时间序列数据的主要抽象,旨在跨多个节点水平扩展。
- 块:块是超表的分区,包含超表数据的子集。块由 TimescaleDB 根据指定的时间间隔自动创建,并且可以单独压缩、索引和备份,以获得更好的性能和数据管理。
- 分布式超表:对于大规模部署,TimescaleDB 支持分布式超表,它跨多个节点对数据进行分区,以提高查询性能和容错能力。
Mimir 架构
Grafana Mimir 采用基于微服务的架构,其中系统由多个水平可扩展的微服务组成。这些微服务可以独立并行运行,从而可以有效地分配工作负载和实现可扩展性。Grafana Mimir 的组件被编译成单个二进制文件,提供统一且有凝聚力的系统。该架构被设计为高可用性和多租户,使多个用户和应用程序可以同时使用数据库。这种分布式架构确保了在处理大规模指标存储和检索场景中的可扩展性和弹性。
TimescaleDB 架构
TimescaleDB 是构建在 PostgreSQL 之上的扩展,继承了其关系数据模型和 SQL 支持。但是,TimescaleDB 使用自定义数据结构和针对时间序列数据的优化(例如超表和块)扩展了 PostgreSQL。
免费时间序列数据库指南
获取对替代方案和选择数据库的关键要求的全面回顾。
Mimir 功能
可扩展性
Grafana Mimir 旨在水平扩展,使系统能够处理不断增长的数据量和不断增加的工作负载。其水平可扩展的微服务架构允许无缝扩展和改进的性能。
高可用性
Grafana Mimir 通过确保冗余和容错能力来提供高可用性。它允许跨多个节点复制和分发数据,从而确保数据持久性和存储指标的持续可用性。
长期存储
Grafana Mimir 为时间序列指标的长期存储提供专用解决方案。它提供高效的存储和检索机制,允许用户保留和分析长时间段内的历史指标数据。
TimescaleDB 功能
分区
TimescaleDB 使用超表和块自动对时间序列数据表进行分区,这简化了数据管理并提高了查询性能。
面向时间序列的 SQL 函数
TimescaleDB 为时间序列数据应用场景提供了几个专门的 SQL 函数和运算符,例如 time_bucket、first 和 last,它们简化了时间序列数据的查询和聚合。
查询优化
如前所述,TimescaleDB 扩展了 PostgreSQL 的查询计划器,用于写入和查询时间序列数据,包括基于时间的索引和块修剪等优化。
Mimir 用例
指标监控和可观测性
Grafana Mimir 非常适合监控和可观测性用例。它支持时间序列指标的存储和分析,允许用户实时监控其系统和应用程序的性能、健康状况和行为。
长期指标存储
凭借其专注于提供可扩展的长期存储,Grafana Mimir 非常适合需要保留和分析长时间段内的历史指标数据的应用程序。它允许用户存储和查询 Prometheus 生成的大量时间序列数据。
趋势和异常检测
通过使用 Mimir 存储长期历史数据,它可以用于检测指标中的趋势,以及将当前指标与历史数据进行比较以检测异常值和异常情况
TimescaleDB 用例
监控和指标
TimescaleDB 非常适合存储和分析监控和指标数据,例如服务器性能指标、应用程序日志和传感器数据。其超表结构和查询优化使其易于存储、查询和可视化大量时间序列数据。
物联网数据存储
TimescaleDB 可用于存储和分析物联网数据,例如传感器读数和设备状态信息。它对自动分区和专用 SQL 接口的支持简化了大规模物联网数据集的管理和查询。
金融数据
TimescaleDB 适用于存储和分析金融数据,例如股票价格、汇率和交易量。其查询优化和专用 SQL 函数使其易于执行基于时间的聚合和分析金融数据中的趋势。
Mimir 定价模型
Grafana Mimir 是一个开源项目,这意味着它可以免费使用,并且不需要任何许可费。用户可以下载源代码并在自己的基础设施上部署 Grafana Mimir,而无需承担直接成本。但是,重要的是要考虑与托管和维护数据库基础设施相关的运营成本。
TimescaleDB 定价模型
TimescaleDB 有两个版本:TimescaleDB 开源版和 TimescaleDB Cloud。开源版可以免费使用并可以自托管,而云版是托管服务,采用按使用量付费的定价模型,具体取决于存储、计算和数据传输使用量。TimescaleDB Cloud 提供各种定价层级,具有不同级别的资源和功能,例如持续备份和高可用性。
免费开始使用 InfluxDB
InfluxDB Cloud 是开始存储和分析时间序列数据的最快方式。