常见的时序数据库

news/2024/7/9 5:12:13

1.概念

时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。

时间序列数据主要由电力行业、化工行业、气象行业、地理信息等各类型实时监测、检查与分析设备所采集、产生的数据,这些工业数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。

2.特点

基于时间序列数据的特点,关系型数据库无法满足对时间序列数据的有效存储与处理,因此迫切需要一种专门针对时间序列数据来做优化的数据库系统,即时间序列数据库。

对于时序大数据的存储和处理往往采用关系型数据库的方式进行处理,但由于关系型数据库天生的劣势导致其无法进行高效的存储和数据的查询。时序大数据解决方案通过使用特殊的存储方式,使得时序大数据可以高效存储和快速处理海量时序大数据,是解决海量数据处理的一项重要技术。该技术采用特殊数据存储方式,极大提高了时间相关数据的处理能力,相对于关系型数据库它的存储空间减半,查询速度极大的提高。

3.一些常见的时序数据库

  1. InfluxDB: InfluxDB是一个开源的时序数据库,设计用于处理高度时间相关的数据。它提供了高性能的写入和查询操作,支持灵活的数据模型和标签索引,适用于物联网、监控、应用性能管理等领域。
  2. TimescaleDB: TimescaleDB是一个开源的、构建在关系型数据库PostgreSQL之上的时序数据库扩展。它结合了关系型数据库的功能和时序数据库的性能,提供了强大的时间序列数据处理能力,并支持标准SQL查询。
  3. kdb+: kdb+是一个商业级的时序数据库,被广泛应用于金融行业。它以其出色的性能和高效的数据压缩而闻名,并提供了强大的查询和分析功能。

​ kdb+/q被官方称为世界上最快的时间序列数据库,它使用统一的数据库处理实时数据和历史数据,同时具备 CEP(复杂事件处理)引擎、内存数据库、磁盘数据库等功能。列式存储的特性,使得对于某个列的统计分析操 作异常方便。

​ 与一般数据库或大数据平台相比,kdb+/q具有更快的速度和更低的总拥有成本,非常适合海量数据处理,主 要被用于海量数据分析、高频交易、人工智能、物联网等领域。在延迟性上有着苛刻要求的金融领域,有着 独特的优势。

  1. OpenTSDB : OpenTSDB 是一种基于 HBase 来构建的分布式、可扩展的时间序列数据库。OpenTSDB 被广泛应用于存储、索引和服务从大规模计算机系统(网络设备、操作系统、应用程序)采集来的监控指标数据,并且使这些数据易于访问和可视化。

  2. Prometheus: Prometheus是一个开源的时序数据库和监控系统,用于收集和存储度量指标数据。它特别适合于云原生应用和微服务架构。

    作为新一代的监控框架,Prometheus具备强大的多维度数据模型,有多种可视化图形界面,使用pull模式采集时间序列数据,可以采用push gateway的方式把时间序列数据推送至Prometheus server端。

在这里插入图片描述

这些时序数据库都可以处理高频率的数据,并提供了各种功能来存储、查询和分析时间序列数据。

4.InfluxDB

时序数据库 InfluxDB 是一款专门处理高写入和查询负载的时序数据库,基于 InfluxDB 能够快速构建具有海量时序数据处理能力的分析和监控软件。
 该项目的发起者是 influxdata 公司,该公司提供了一套用于处理时序数据的完整解决方案,InfluxDB 是该解决方案中的核心产品。

在这里插入图片描述

  • 优点:
    • 开箱即用,运维简单
    • 多值存储模型、丰富的数据类型
    • 提供了类 SQL 的查询语言
    • 独创 TSM 索引
  • 缺点:
    • 开源版本不支持集群部署,对于大规模应用来说,使用前需要慎重考虑

5.TimescaleDB

TimescaleDB是唯一支持完整SQL的开放源代码时间序列数据库,已针对支持全面SQL的快速提取和复杂查询进行了优化。它基于PostgreSQL,并且为时间序列数据提供了最好的NoSQL和Relational世界。

TimescaleDB使开发人员和组织能够更多地利用其功能:分析过去,了解现在和预测未来。在查询层面统一时序数据和关系数据可消除数据孤岛,并使演示和原型更容易实现。可扩展性和完整的SQL接口的结合赋予员工提出数据问题。

6.kdb+

kdb+ 号称最快的内存数据库之一。列式存储的特性,使得对于某个列的统计分析操作异常方便。

优点:

单体架构,轻松支持 billion以上数据;
分布式扩展,无性能损耗;
超低延迟+高并发支持;
列式存储+内存数据库;
灵活的Q语言,内置非常多的统计计算方法。
缺点:

搭配的Q 语言,学习难度较高。

7.OpenTSDB

在这里插入图片描述

OpenTSDB 由时间序列守护程序 (TSD) 以及一组命令行实用程序组成。每个 TSD 都是独立的。 没有主节点,没有共享状态。

  • 优点:
    TSD 是无状态的,所有状态数据保存在 HBase 中,天然支持水平扩展
  • 缺点:
    • Hadoop 全家桶运维难度较大,需要专人负责
      • 新版本的 OpenTSDB 底层支持 Cassandra
    • 存储模型过于简化
      • 单值模型且只能存储数值类型数据
      • 单个 metric 最多支持 8 个 tag key
    • 虽然利用了 HBase 作为底层存储,但是没有提供对 MapReduce 的支持。
      • 可以通过 Spark 实现复杂的处理逻辑

8.Prometheus

Prometheus 是一个开源的服务监控系统和时间序列数据库。

优点:

具有丰富的查询语言;
可视化数据展示;
集成监控和报警功能;
维护简单。
缺点:

没有集群解决方案;
聚合分析能力较弱;
为运行时正确的监控数据准备的,不能解决大容量存储问题,无法做到100%精准,存在由内核故障、刮擦故障等因素造成的微小误差。

9.QuestD

对于那些既希望利用InfluxDB内联协议的灵活性,又熟悉PostgreSQL的人来说,QuestDB(YC S20)作为一个较新的时序数据库,可以满足开发者的这两个要求。它是一个用Java和C++编写的开源TSDB,从原理上说,QuestDB是利用内存映射文件,在数据提交到磁盘之前,实现快速读写的。

QuestDB通过使用Java和C++,来从头开始构建数据库,其主要特征体现在:

  1. 性能:解决摄取过程中,特别是在处置高基数的数据集过程中的瓶颈。同时,它还通过顺次存储的时分数据(即,在内存中的混洗),以及仅分析请求的列/分区,而并非以整张表的方式,来支持快速的数据检索。此外,QuestDB还会运用SIMD指令,实现并行化操作。
  2. 兼容性:QuestDB支持InfluxDB的内联(inline)协议、PostgreSQL wire、REST API、以及CSV上传的方式,来摄取数据。那些习惯了其他TSDB的用户,可以轻松地移植他们的现有应用程序,而无需进行大量的重写工作。
  3. 通过SQL进行查询:虽然能够支持多种摄取机制,但是QuestDB也会使用SQL作为查询语言,因此用户无需额外地学习Flux之类的特定域语言。
  • 优点:快速摄取(特别是对于具有高基数的数据集),支持InfluxDB内联协议和PostgreSQL wire,可以通过标准的SQL查询数据。
  • 缺点:在用户社区、可用集成、以及对生产环境就绪等方面,都有待改进。

http://lihuaxi.xjx100.cn/news/1470012.html

相关文章

安装Pip

首发博客地址 https://blog.zysicyj.top/ 安装命令 python -m ensurepip --upgrade 本文由 mdnice 多平台发布

如何在PVE中实施密码策略

二级等保要求系统中用户密码策略必须设置口令长度和定期更换,PVE系统是基于DEBIAN开发。 1、修改/etc/login.defs PASS_MAX_DAYS 90; PASS_WARN_AGE 7; PASS_MIN_LEN 8; 2、修改/etc/pam.d/common-password 配置文件设置口令长…

G0第27章:服务注册与服务发现

服务注册与服务发现 服务注册与服务发现原理 技术原理 实现方案 1、客户端服务发现 2、服务端服务发现 注册中心的技术选型及Consul介绍 注册中心的技术选型 Consul介绍 Raft协议介绍 Consul架构介绍 使用docker-compose搭建consul环境 Consul Agent HTTP API 将gRPC服务注…

Python 驱动连接 OceanBase 数据库

安装 JayDeBeApi 驱动 pip3 install JayDeBeApi 待更新 Python 驱动连接 OceanBase 数据库_云数据库 OceanBase 版-阿里云帮助中心

AMBA总线协议(5)——AHB(三):猝发传输

一、前言 在之前的文章中我们详细讲述了关于AHB的基本操作流程,主机要先从仲裁器获得授权,然后进行总线的访问,这样可以避免总线冲突,获得授权后,主机给出地址和控制信号,从机根据自身情况进行响应&#xf…

开学必备物品清单!这几款优先考虑!

​马上就要开学了,同学们也要准备一系列开学用品,方便我们的学习生活,那有哪些数码物品可以在开学前准备的呢,接下来给大家安利几款很不错很实用的数码好物! 推荐一:南卡00压开放式蓝牙耳机 南卡00压开放式…

WebSocket 中的心跳是什么,有什么作用?

在网络应用开发中,WebSocket 是一种重要的通信协议,它允许客户端和服务器之间建立持久性的双向通信连接。然而,为了保持连接的稳定性,WebSocket 中的心跳是一个不可或缺的概念。本文将详细介绍 WebSocket 中的心跳是什么&#xff…

ResizeObserver监听元素大小的变化

window.resize不适用于dom的监听。 ResizeObserver ResizeObserver 接口监视 Element 内容盒或边框盒或者 SVGElement 边界尺寸的变化。 方法 ResizeObserver.disconnect() 取消特定观察者目标上所有对 Element 的监听。 ResizeObserver.observe() 开始对指定 Element 的监…