系统设计

系统设计

在时序领域,分为2大流派:一派是以Timescale为代表的标准SQL,另外一派是以influxdb为代表的NoSQL(SQL-Like)这2大类型的时序数据库都具备一些通用能力:包括多值模型,数据类型既包含string,也包含数值。非常丰富的算子和后聚合的能力,生态方面兼容Promtheus

  • 数据模型方面,influxdbtsdb是动态schematimescale是固定schema

  • 存储模型方面,influxdb采用了倒排索引,自研的TSMT结构以及Gorilla压缩;timescale底层则是基于PG,按时间管理chunk table

  • 计算模型方面,timescale依赖于外部的流处理框架,而influxdata则集成了Kapacitor

  • 分布式方面:influxdb单机,集群商业化。timescale利用master-slave方式保障HA,可以scale-up还不具备scale-out的能力。

数据模型

在时序领域数据的组织方式分为2类:单值模型和多值模型:influxdb,timescale都是多值模型,单值模型的代表是OpenTSDBPTSDB。单值模型是指单一指标的数据值,比如某个机器的cpu指标。多值模型是指同样的维度在同一时刻不同的字段值,比如(cpu, mem, disk)。针对数据源的采集场景适合多值,可以把单值是多值的一种特例。

存储模型

聚合计算模型

时序数据的读取分为3个部分:用索引检索出时间线;从存储引擎加载数据;执行分布式流式聚合;

上一页