数据模型
(1)Measurement
从原理上讲更像SQL中表的概念。这和其他很多时序数据库有些不同,其他时序数据库中Measurement可能和Metric等同。
(2)Tags
维度列,在InfluxDb中,表中Tags组合会被作为记录的主键,因此主键并不唯一,所有时序查询最终都会基于主键查询之后再经过时间戳过滤完成。
(3)Fields
数值列,数值列存放用户的时序数据。
(4)Point
类似SQL中一行记录,而并不是一个点。
系统架构
(1)DataBase
InfluxDB中有DataBase的概念。
(2)Retention Policy(RP)
数据保留策略,核心作用有3个:指定数据的过期时间,指定数据副本数量以及指定ShardGroup Duration.
RP是数据库级别而不是表级别的属性,每个数据库可以有多个数据保留策略,但只能有一个默认策略,不同表可以根据保留策略规划写入数据的进修指定RP进行写入。
(3)Shard Group
Shard Group包含多个Shard,每个Shard Group只存储指定时间段的数据,不同Shard Group对应的时间段不会重合。
(4)Shard
Shard是InfluxDB中真正存储数据以及读写服务的概念。Shard是InfluxDB的存储引擎实现,具体称之为TSM(Time Sort Merge Tree),TSM类似于LSM,因此Shad和HBase Region一样包含Cache、WAL以及Data File等各个组件,也会有flush、等这类数据操作。InfluxDB根据hash(Measurement+Tags)将时序数据映射到不同的Shard。