时序数据库学习笔记

引用:
http://liubin.org/blog/2016/02/18/tsdb-intro/
https://www.xaprb.com/blog/2014/06/08/time-series-database-requirements/
http://jmoiron.net/blog/thoughts-on-timeseries-databases

1、时序数据库有多少种类型

DB-Engines:
https://db-engines.com/en/ranking/time+series+dbms
Graphite vs. InfluxDB vs. Kdb+ vs. OpenTSDB vs. RRDtool vs. Druid
https://db-engines.com/en/system/RRDtool%3BInfluxDB%3BKdb%2B%3BOpenTSDB%3BGraphite


2、时序数据库简介及典型功能

定义:时序列数据库用来存储时序列(time-series)数据并以时间(点或区间)建立索引的软件。

时序列数据:

定义:
- 可以唯一标识的序列名/ID
- 一组数据点{timestamp, value}
特点:
- 数据结构简单:某一指标在单位时间点只有一个值,没有复杂(嵌套,层次等)结构和(关联,主外键等)关系。
- 数据量大

TSDB特点:
数据写入:
  • 写多于读:95%-99%的操作都是写操作(因此写入性能必须能跟得上、无延时,并且不能阻塞读操作)
  • 顺序写:时间序列数据,多为实时写入,追加式写入
  • 很少更新:数据写入之后,不会更新
  • 区块(bulk)删除:基本没有随机删除,多数是从一个时间点开始到某一时间点结束的整段数据删除。
数据读取:
  • 顺序读:基本都是按照时间顺序读取一段时间内的数据
  • 基数大:基本数据大,超过内存大小(缓存不起作用),要选取的只是其一小部分,且没有规律
读取优化:
1.以写性能优先,不为读取做存储优化,但是通过分布式和并发读,来提高读取的速度
2.区块的写。在写入的时候就考虑到读的性能问题,将统一指标、时间段的数据写入到同一数据块中,为读取进行写入优化
分布式:
  • 将存储和查询分发到不同的服务。以支撑大规模的数据采集和查询请求
  • 自动扩展
  • 自动失败切换(Fault-tolerant)。
基本数据分析:

TSDB的数据是用来分析的,所以TSDB还会提供做数据分析所必须的各种运算、变换函数。

TSDB典型功能:
  1. 读写性能,IOPS
  2. 保留策略,存储引擎
  3. 集群功能
  4. API(REST API,SDK)
  5. SQL like
  6. 可视化和报警
  7. 周边工具,插件
  8. 多租户支持、权限管理、访问控制(较少)

3、主流时序数据库典型及非典型功能

选取如下典型的数据库进行分析:
Graphite vs. InfluxDB vs. Kdb+ vs. OpenTSDB vs. RRDtool vs. Druid

进行对比的指标如下:

  • 性能
  • 存储方案(或引擎)
  • 集群功能:文档、集群后的读写性能
  • API:api文档,sdk等
  • SQL-like:文档
  • 成熟度:生态系统、开发活跃度、社区包活跃度、应用案例
  • 可视化和报警
  • 技术栈
  • 保留策略:自动删除、压缩
  • 主导公司
  • License
  • 多租户支持
  • 安全性
  • 特性功能
指标1# InfluxDB3# RRDtool4# Graphite5# OpenTSDB6# Prometheus7# Druid
主导公司InfluxDataTobias OetikergraphiteappOpenTSDBPrometheusdruid
LicenseOpen Source/MIT/free single machineOpen Source/GPL V2 and FLOSSOpen Source/Apache 2.0Open Source/LGPLOpen Source/Apache 2.0Open Source/Apache 2.0
技术栈GoCPythonJavaGoJava
存储方案KV方式(LevelDB, RocksDB, HyperLevelDB, LMDB)RRD(Round- Robin Database)环型数据库Whisper (基于RRD)HBaseKV方式(LevelDB)列存储方式
性能(需要手工测试)测试单机版的边界RRDtoolGraphiteOpenTSDBPrometheusDruid
集群功能支持(收费)不支持(不需要)支持(难扩展)支持(易扩展)支持支持
APIHTTP API/JSON over UDPPipeHTTP API/SocketsHTTP API/Telnet APIRESTful HTTP/JSON APIJSON over UDP
SQL-like支持不支持不支持不支持不支持支持
可视化和报警只负责存储存储和绘图存储&自带UI存储监控&报警&存储存储&生态好
多租户支持支持不支持支持不支持不支持支持
保留策略删除指定时间外的数据循环删除同rrdtoolOpenTSDBPrometheusDruid
安全性InfluxDBRRDtoolGraphiteOpenTSDBPrometheusDruid
特性功能InfluxDBRRDtoolGraphiteOpenTSDBPrometheusDruid

3-主流时序数据库之间的对比(包括性能,场景)

https://db-engines.com/en/system/Graphite%3BInfluxDB%3BRRDtool
https://db-engines.com/en/system/Druid%3BOpenTSDB%3BPrometheus

part1

part2

4-时序数据库与mysql的对比

5-时序数据库xx的原理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值