大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
https://blog.csdn.net/ransom0512/article/details/78114167
看了一些时序数据库,没有太深入,有一些大概认识,记录下来。
1. 核心
数据存储分为行存储或者列存储,由于列存储的高压缩比,现在使用列存储的比较多一些。
当前有很多时序数据库采用了在底层KV存储(Cadssandra, HBase, LevelDB, RocksDB)基础上做时序封装,这样能够更快出原型,而且底层还很容易替换。
时间序列数据可以分成两部分,序列和数据点。序列就是标识符,比如华东区机器001的CPU使用率。数据点是时间戳和数值构成的数组。序列一般由metric+时间+多个tag组合而成,可以认为是主键。
2. 优点
时间不变
时间有序
允许事件到来乱序
时间唯一
便于分区,比如按天,按月分区
可以按照时间自动删除过期数据
由于其场景比较简单,所以报表就能够做的比较直观,丰富。
3. 缺点
场景受限,只针对特定场景。
SQL能力受到场景限制,不能太过于复杂。
4. 场景
监控日志存储,比如CPU利用率,磁盘使用,网络使用,告警信息,TraceLog等日志信息.
尤其适合物联网场景。
5. 和一般KV数据库的区别
更多是在KV数据库上做的包装。
列数据库更合适一些,压缩比高,且Key有序。
6. SQL解决方案
可以在数据存储格式上,特意为COUNT,SUM,AVG,MAX,MIN等常用聚合操作提前计算,保存在文件头,能够大大提升计算速度。
便于为统计数据做视图,反正查询条件都是按照时间查询的,物化视图方案是很容易的。
能够适用于单表简单查询,不适合做Join查询。
7. 当前时序数据库介绍
时序数据库又很多产品,这里只列举有限几个。
1.1. OpenTSDB
OpenTSDB是基于HBase的分布式时序数据库。
数据存储一致性,毫秒级写入,数据持久化
底层基于HBase,每秒百万写入,支持线性扩容。
OpenTSDB主要有一个或者多个时间序列守护程序TSD(TimeSeries Daemon)组成。每个TSD都是独立的,之间没有任何状态共享。所每个TSD可以使用不同的HBase集群或者同一个HBase集群来存储和检索数据。
一个时序数据包含:
Metric Name:度量名称,数据的分类,比如CPU利用率,网络流量
Unix Timestamp:精确到秒或者毫秒的时间戳
Value:一个64位整数或者单精度浮点数,比如CPU90%,可以是90,也可以是0.90
Tag:标签,用一组JSON数据来描述数据的属性,比如属于哪个节点,哪个机架,哪个应用等等。
内部会创建四张表:tsdb,tsdb-meta,tsdb-tree,tsdb-uid
Tsdb表用来存储数据
Rowkey组成为:metric + timestamp + tagk1 + tagv1… + tagkN + tagvN
Rowkey中的时间戳按照小时进行聚合,保存每个小时的数据,小时中每秒或者毫秒数据,都放在同一行。
Metric和tag这些值,都通过tsdb-uid这个表来进行映射以减少需要的字段,默认3个字节,如果要扩大,需要修改源代码,但是之前的数据会失效,所以修改之前要先导出。
这里按照小时进行存储,能够有效降低数据量。而且也有利于压缩。
Tsdb-uid:存放metric,tagk,tagv之间的映射 关系。
Tsdb-meta:元数据表,用来存储时间序列和元数据的表,可选表。
Tsdb-tree:树形表,用树状关系来表示metric的结构,可选表。
1.2. InfluxDB
单机版免费开源,集群版本收费。
支持类SQL语法
支持条件过滤以及正则表达式删除数据
可以设置在集群内的副本数
1.3. Beringei
Beringei是Facebook开源的一款内存时序数据库,是Facebook发表的Gorilla论文的开源实现。
Beringei使用一种三级的内存数据结构,如下图所示,其中第一级为分片索引,第二级为时间序列索引,第三级为时序数据,通过该数据结构可以支持快速的数据读写;Beringei实现了一种高效的流式的压缩算法,从而使内存占用最小化;Beringei支持写入内存的同时写入硬盘,并在重启后恢复数据。然而Beringei也有一些限制,譬如只支持浮点型数值、时间精度只到秒、只能按时间戳顺序的写入数据。
8. 引用
https://zhuanlan.zhihu.com/p/29367404?utm_source=com.ideashower.readitlater.pro&utm_medium=social
http://opentsdb.net/overview.html
liubin.org/blog/2016/03/05/tsdb-opentsdb/
https://yq.aliyun.com/articles/69354
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185763.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...