时间序列数据库TSDB排名

article/2025/9/2 20:46:51

DB-Engines 中时序列数据库排名

我们先来看一下DB-Engines中关于时序列数据库的排名,这是当前(2016年2月的)排名情况:

下面,我们就按照这个排名的顺序,简单介绍一下这些时序列数据库中的一些。下面要介绍的 TSDB 以开源的为主,如果是商业或者 SaaS 服务,也简单介绍一下其特点,让大家能对其他领域的事物也有所了解。

这里有一个例外,就是 Pinot 并不在这个排名里,但是我也把它列在了这里。

1. InfluxDB

InfluxDB 由 Golang 语言编写,也是由 Golang 编写的软件中比较著名的一个,在很多 Golang 的沙龙或者文章中可能都会把 InfluxDB 当标杆来介绍,这也间接帮助 InfluxDB 提高了知名度。

InfluxDB的主要特点包括下面这些:

  • schemaless(无结构),可以是任意数量的列
  • 可扩展(集群)
  • 方便、强大的查询语言
  • Native HTTP API
  • 集成了数据采集、存储、可视化功能
  • 实时数据 Downsampling
  • 高效存储,使用高压缩比算法,支持retention polices

InfluxDB 是 TSDB 中为数不多的进行了用户和角色方面实现的,提供了 Cluster Admin、Database Admin 和 Database User 三种角色。

InfluxDB 的数据采集系统也支持多种协议和插件: - 行文本 - UDP - Graphite - CollectD - OpenTSDB

不过 InfluxDB 每次变动都较大,尤其是在存储和集群方面,追求平平安过日子,不想瞎折腾的可以考虑下。

注意:由于InfluxDB开发太活跃了,很可能你在网上搜到的资料都是老的,会害到你,所以你需要以官方文档为主。

一句话总结:欣欣向荣、值得一试。

2. RRDtool

RRDtool 全称为 Round Robin Database Tool,也就是用于操作 RRD 的工具,简单明了的软件名。

什么是 RRD 呢?简单来说它就是一个循环使用的固定大小的数据库文件(其实也不太像典型的数据库)。

大体来说,RRDtool 提供的主要工具如下:

  • 创建RRD(rrdtool create)
  • 更新RRD(rrdtool update)
  • 画图(rrdtool graph)

这其中,画图功能是最复杂也是最强大的,甚至支持下面这些图形,这是其他 TSDB 中少见的:

  • 指标比较,对两个指标值进行计算,描画出满足条件的区域
  • 移动平均线
  • 和历史数据进行对比
  • 基于最小二乘法的线性预测
  • 曲线预测
  • 总之,它的画图功能太丰富了。

一句话总结:老牌经典、艺多不压身。

3. Graphite

Graphite 由 Orbitz, LLC 的 Chris Davis 创立于 2006 年,它主要有两个功能:

  • 存储数值型时序列数据
  • 根据请求对数据进行可视化(画图)

相应的,它的特点为:

  • 分布式时序列数据存储,容易扩展
  • 功能强大的画图Web API,提供了大量的函数和输出方式
  • Graphite本身不带数据采集功能,但是你可以选择很多第三方插件,比如适用于* collectd、Ganglia或Sensu的插件等。同时,Graphite也支持Plaintext、Pickle和AMQP这些数据输入方式。

Graphite主要由三个模块组成:

  • whisper:创建、更新RRD文件
  • carbon:以守护进程的形式运行,接收数据写入请求
    • carbon-cache:数据存储
    • carbon-relay:分区和复制,位于carbon-cache之前,类似carbon-cache的负载均衡
    • carbon-aggregator:数据集计,用于减轻carbon-cache的负载
  • graphite-web:用于读取、展示数据的Web应用

whisper 使用了类似 RRDtool 的 RRD 文件格式,它也不像 C/S 结构的软件一样,没有服务进程,只是作为 Python library 使用,提供对数据的 create/update/fetch 操作。

如果你对它的性能比较在意,这里有一份老的数据可供参考。

Google、Etsy、GitHub、豆瓣、Instagram、Evernote 和 Uber 等很多知名公司都是 Graphite 的用户。有此背景,其可信度又加一层,而且网上的资料也相当的多,值得评估一下。

一句话总结:群众基础好、可以参考。

4. OpenTSDB

OpenTSDB 是一个分布式、可伸缩的时间序列数据库。它支持豪秒级数据采集所有 metrics,支持永久存储(不需要 downsampling),和 InfluxDB 类似,它也是无模式,以 tag 来实现维度的概念。

比如,这就是它的一个metric例子:

mysql.bytes_received 1287333217 66666666 schema=foo host=db1

OpenTSDB 的节点称为 TSD(Time Series Daemon (TSD)),它没有主、从之分,消除了单点隐患,非常容易扩展。它主要以HBase作为存储系统,现在也增加了对 Cassandra 和 Bigtable(非云端)。

OpenTSDB 以数据存储和查询为主,附带了一个简单地图形界面(依赖Gnuplot),共开发、调试使用。

一句话总结:好用,Cloud Insight也在用这项技术来实现对性能指标进行聚合、分组、过滤。

5.KDB+

所有 TSDB 中,估计就数这个最酷了,我说的是域名,只有两个字母,猥琐地想一下,域名就值很多钱 :-)。

kdb+是一个面向列的时序列数据库,以及专门为其设计的查询语言q(和他们的域名一样简短)。Kdb+ 混合使用了流、内存和实时分析,速度很快,支持分析 10 亿级别的记录以及快速访问TB级别的历史数据。

不过这是一个商业产品,但是也提供了免费版本(貌似还限制在32位)。

6.KairosDB

KairosDB 是一个 OpenTSDB 的 fork,不过是基于 Cassandra 存储的。由于 Cassandra 的行比 HBase 宽,所以 KairosDB 的 Cassandra 的默认行大小为 3 星期,而 OpenTSDB 的 HBase 则为 1 小时。

KairosDB 支持通过 Telnet、Rest、Graphite 等协议写入数据,你也可以通过编写插件自己实现数据写入。

KairosDB 也提供了基于 Web API 的查询接口,支持数据聚合、持过滤和分组等功能。

同时 KairosDB 提供了一个供开发用的 Web UI,图形绘制引擎使用了 Flot。

和 OpenTSDB 类似,KairosDB 也提供了插件机制,你可以使用插件完成如下工作:

  • 添加数据点(data point)监听器
  • 添加新的数据存储服务
  • 添加新的协议处理程序
  • 添加自定义系统监视服务

7.Druid

Druid 是一个快速、近实时的海量数据 OLAP 系统,并且是开源的。Druid 诞生于 Metamarkets,后来一些核心人员创立了 IMPLY 公司,进行 Druid 相关的产品开发。

Druid 会按时间来进行分区(segment),并且是面向列存储的。它的主要特性如下:

  • 支持嵌套数据的列式存储
  • 层级查询
  • 二级索引
  • 实时数据摄取
  • 分布式容错架构

根据去年底 druid.io 的白皮书,现在生产环境下最大的集群规模如下:

  • >3M EVENTS / SECOND SUSTAINED (200B+ EVENTS/DAY)
  • 10 – 100K EVENTS / SECOND / CORE
  • >500TB OF SEGMENTS (>50 TRILLION RAW EVENTS)
  • >5000 CORES (>400 NODES, >100TB RAM)
  • QUERY LATENCY (500MS AVERAGE)
  • 90% < 1S 95% < 2S 99% < 10S
  • 3+ trillion events/month
  • 3M+ events/sec through Druid’s real-time ingestion
  • 100+ PB of raw data
  • 50+ trillion events

Druid 企业用户比较多,比如 Netflix、Paypal 等。具体可以参考http://druid.io/druid-powered.html。

Druid 架构比较复杂,因此对部署和运维也有一定的负担,比如需要的机器多、机器配置要高(尤其是内存)。

一句话总结:好用,我们在用。

8.Prometheus

Prometheus 是一个开源的服务监控系统和时序列数据库,由社交音乐平台 SoundCloud 在2012年开发,最近也变得很流行,最新版本为 0.17.0rc2。

Prometheus 从各种输入源采集 metric,进行计算后显示结果,或者根据指定条件出发报警。

和其他监控系统相比,Prometheus 的特点包括:

  • 多维数据模型(时序列数据由metric名和一组key/value组成)
  • 灵活的查询语言
  • 不依赖分布式存储,单台服务器即可工作
  • 通过基于HTTP的pull方式采集是序列数据
  • 可以通过中间网关进行时序列数据推送
  • 多种可视化和仪表盘支持

由于 Prometheus 采用了类似 OpenTSDB 和 InfluxDB 的 key/value 维度机制,所以如果你对任一种 TSDB 有了解的话,学习起来会简单些。

一句话总结:貌似比较火,何不试一试?

9.Pinot

Pinot 是一个开源的实时、分布式 OLAP 数据存储方案。它来自 Linkedin,虽然 Linkedin 最近估价表现很差,但是他们创建的各种软件、中间件实在太多了。这一点我们做软件的都应该向 Linkedin 表示感谢。

Pinot 就像是一个 Druid 的 copy,不过两者的灵感都来源于SenseiDB(Sensei 在日语里为老师的意思,写成汉字为“先生”)。

Pinot 也像 Druid 一样,能加载 offline 数据(Hadoop 文件)和实时数据(Kafka)。Pinot 从设计上就面向水平扩展。

Pinot 主要特点:

  • 面向列
  • 插拔式索引引擎:排序索引、位图索引和反向索引
  • 根据查询语句和segment信息对查询/执行计划进行优化
  • 从 Kafka 实时数据摄取(ingestion)
  • 从 Hadoop 进行批量摄取
  • 类似 SQL 的查询语言,支持聚合、过滤、分组、排序和唯一处理。
  • 支持多值字段
  • 水平扩展和容错

Pinot 的特点和 Druid 很像,两者可互为参考。

一句话总结:背靠大树好乘凉。



http://chatgpt.dhexx.cn/article/ykYLbyka.shtml

相关文章

TiDB Server

目录 TiDB Server架构 Online DDL GC 缓存管理 热点小表缓存 例题 TiDB Server架构 Protocol Layer&#xff1a;负责处理客户端的连接 Parse&#xff0c;Compile&#xff1a;负责SQL语句的解析与编译&#xff0c;并生成执行计划 Executor&#xff0c;DistSQL&#xff0…

Prometheus TSDB

TSDB 概述&#xff1a; Head: 数据库的内存部分 Block: 磁盘上持久块&#xff0c;是不变的 WAL: 预写日志系统 M-map: 磁盘及内存映射 粉红色框是传入的样品&#xff0c;样品先进入Head中存留一会&#xff0c;然后到磁盘、内存映射中&#xff08;蓝色框&#xff09;。然后当内…

TiDB体系结构之TiDB Server

TiDB体系结构之TiDB Server TiDB ServerTiDB Server主要组成模块SQL语句的解析和编译行数据与KV的转化SQL读写相关模块在线DDL相关模块TiDB的垃圾回收TiDB Server的缓存 TiDB Server TiDB Server的主要作用如下&#xff1a; 处理客户端连接SQL语句的解析和编译关系型数据与KV…

TSDB助力风电监控

各位小伙伴大家好&#xff0c;本期Jesse想再来跟大家聊聊TSDB的应用场景&#xff0c;在此也感谢尹晨所著的《时序数据库在风电监控系统中的应用》一文&#xff0c;其为我们探究TSDB在风电系统中的应用提供了重要的帮助。 本文仅代表个人观点&#xff0c;如有偏颇之处&#xff…

dbt-tidb 1.2.0 尝鲜

作者&#xff1a; shiyuhang0 原文来源&#xff1a; https://tidb.net/blog/1f56ab48 本文假设你对 dbt 有一定了解。如果是第一次接触 dbt&#xff0c;建议先阅读 官方文档 或 当 TiDB 遇见 dbt 本文中的示例基于官方维护的 jaffle_shop 项目。关于此项目的细节介绍&a…

为啥用 时序数据库 TSDB

前言 其实我之前是不太了解时序数据库以及它相关的机制的&#xff0c;只是大概知晓它的用途。但因为公司的业务需求&#xff0c;我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造&#xff0c;所以我也就顺理成章的成为时序数据库“从业者”。 造飞机的人需要时刻…

Prometheus 学习之——本地存储 TSDB

Prometheus 学习之——本地存储 TSDB 文章目录 Prometheus 学习之——本地存储 TSDB前言一、TSDB 核心概念二、详细介绍1.block1&#xff09;chunks2&#xff09;index3&#xff09;tombstone4&#xff09;meta.json 2.WAL 总结 前言 Prometheus 是 CNCF 收录的第二个项目&…

阿里云IoT物模型上报数据流转到实例内TSDB

阿里云物联网平台上存储的数据最多为30天&#xff0c;为了能让数据永久保存下来&#xff0c;就需要把物联网平台的数据流转到其他的数据库&#xff0c;对于企业版实例&#xff0c;内部有一个实例内的时空数据库TSDB&#xff0c;正好可以利用。下边就介绍一下物联网平台的物模型…

使用TSDB自动检测时序数据的异常情况

本期Jesse就带大家来继续了解一下TSDB的应用问题&#xff0c;小伙伴们&#xff0c;让我们直接步入正题吧。 本文仅代表个人观点&#xff0c;如有偏颇之处&#xff0c;还请海涵&#xff5e; 现今&#xff0c;每天都有数千亿个传感器产生大量时序数据。公司收集大量数据使得分析…

TSDB 存储引擎介绍

本文介绍 DolphinDB 在2.0版本中新推出的存储引擎 TSDB。 1. OLAP 与 TSDB 适用的场景 OLAP 是 DolphinDB 在2.0版本之前的唯一存储引擎。数据表中每个分区的每一列存为一个文件。数据在表中的存储顺序与数据写入的顺序一致&#xff0c;数据写入有非常高的效率。 OLAP 引擎的…

TSDB与Blockchain

各位小伙伴们我们又见面了&#xff0c;伴随着区块链技术的推广&#xff0c;很多企业也在思考是否将其应用。其实TSDB与区块链有很多共通之处&#xff0c;本期Jesse就来和大家聊聊TSDB与区块链。本文参考了Nicolas Hourcard的文章“You Don’t Need a Blockchain, You Need a Ti…

FlashDB嵌入式数据库之TSDB数据存储解析

一、驱动层&#xff1a;SFUD&#xff08;Serial Flash Universal Driver&#xff09; 是一款开源的串行 SPI Flash 通用驱动库 二、中间层&#xff1a;FAL&#xff08;FLASH ABSTRACTION LAYER)&#xff09;FLASH 抽象层 三、应用层&#xff1a;FlashDB&#xff08;FlashDB 是一…

时间序列数据库 (TSDB)

参考文档&#xff1a;时间序列数据库 TSDB_时间序列数据库 TSDB-阿里云帮助中心 什么是时序数据库 时序数据是随时间不断产生的一系列数据&#xff0c;简单来说&#xff0c;就是带时间戳的数据。数据可能来自服务器和应用程序的指标、物联网传感器的读数、网站或应用程序上的…

TSDB在高速公路大数据平台的应用

好久没有跟大家聊TSDB的应用场景了&#xff0c;Jesse也在国庆期间进行了补课&#xff0c;今天就跟大家聊聊TSDB在高速公路大数据平台的应用。本文借鉴了郝建明、袁逸涛发表在《上海船舶运输科学研究生学报》的《基于时序数据库的高速公路数据集成平台》一文&#xff0c;感谢二位…

时序数据库(TSDB)

时序数据库&#xff08;TSDB&#xff09;是一种特定类型的数据库&#xff0c;主要用来存储时序数据。随着5G技术的不断成熟&#xff0c;物联网技术将会使得万物互联。物联网时代之前只有手机、电脑可以联网&#xff0c;以后所有设备都会联网&#xff0c;这些设备每时每刻都会吐…

TSDB数据库

目录 为什么需要时序数据库&#xff1a; 时间序列数据库的特点&#xff1a; 常见的时间序列数据库&#xff1a; 时间序列数据库存储&#xff1a; 时间序列数据库问题&#xff1a; 参考资料&#xff1a; 内容是在我球的docs上直接复制过来的&#xff0c;懒得写两份&#x…

关于时许数据库的相关名词解释

1 时序数据库TSDB 英文全称为 Time Series Database&#xff0c;提供高效存取时序数据和统计分析功能的数据管理系统。 2 时序数据&#xff08;Time Series Data&#xff09; 基于稳定频率持续产生的一系列指标监测数据。例如&#xff0c;监测某城市的空气质量时&#xff0c…

物联网平台搭建的全过程介绍(六)——物联网TSDB之基本知识及读写代码介绍

目录 一、TSDB基本知识 二、物联网平台数据流通架构 三、TSDB数据结构 1、TSDB数据包的组成 2、TSDB的另外两个相关概念 四、阿里云物联网平台实例内TSDB功能介绍 1、数据写入 &#xff08;1&#xff09;需要添加的依赖 &#xff08;2&#xff09;写入数据代码 2、数据…

ES6—简介

目录 一、概述 二、扩展&#xff1a;Babel转码器 三、拓展&#xff1a;编译打包 一、概述 概念 ES6全称ECMAScript 6.0&#xff0c;是Javascript语言的下一代标准&#xff0c;2015年6月正式发布。 注意&#xff0c;ES6既是一个历史名词&#xff0c;也是一个泛指&#xff0c;…

深入浅出ES6(一):ES6是什么

深入浅出ES6&#xff08;一&#xff09;&#xff1a;ES6是什么 作者 Jason Orendorff &#xff0c;译者 刘振涛 发布于 2015年6月5日 | http://www.infoq.com/cn/articles/es6-in-depth-an-introduction 我的阅读清单 编者按&#xff1a;ECMAScript 6离我们越来越近了&#…