iotdb的数据模型

一 数据模型

1.1 数据模型

root 是整个树状结构的父节点, CirroData-TimeS 有存储组、设备、测点等概念,数据在
存储的时候,不同的存储组的数据是存储在不同的文件夹中的。上图中有 root.sgcc、root.ln
两个存储组。叶子节点叫做测点,叶子节点的父节点叫做设备 从父节点 root 到叶子节点的
全路径叫做时间序列 比如下图中有 root.sgcc.wf01.status 4 条时间序列。
IoTDB的语法规定, ROOT节点到叶子节点的路径以“.”连接,以此完整路径命名IoTDB中的一个时间序列。ROOT.ln.wf01.wt01.status

1. 存储组(Storage Group): IoTDB为了管理时序数据提出的一个概念,类似于关系数据库中的数据库的概念。从用户角度,主要用于对设备数据进行分组管理;从IoTDB数据库角度,存储组又是一个并发控制和磁盘隔离的单位,不同存储组之间可以并行读写。

设置合理数量的存储组可以带来性能的提升:既不会因为产生过多的存储文件(夹)导致频繁切换IO降低系统速度(并且会占用大量内存且出现频繁的内存-文件切换),也不会因为过少的存储文件夹(降低了并发度从而)导致写入命令阻塞。

在路径中,不允许使用单引号。如果你想在LayerName中使用.等特殊字符,请使用双引号。例如,root.sg."d.1"."s.1"。双引号内支持使用转义符进行双引号的嵌套,如 root.sg.d1."s.\"t\"1"

 存储组节点名只支持中英文字符、数字、下划线和中划线的组合。例如root.存储组_1-组1 。

2.设备 (Device):对应现实世界中的具体物理设备,例如:电厂某制造单元、风力发电机、汽车、飞机发动机、地震波采集仪器等。在IoTDB中, device是时序数据一次写入的单位,一次写入请求局限在一个设备中。

 3.传感器(Sensor): 对应现实世界中的具体物理设备自身携带的传感器,例如:风力发电机设备上的风速、转向角、发电量等信息采集的传感器。在IoTDB中,Sensor也称为测点(Measurement),具体指传感器采集的某时刻的传感器值,在IoTDB内部采用<time, value>的形式进行列式存储

4.时间序列(Time Series): 类似于关系数据库中的一张表,不过这张表主要有时间戳(Timestamp)、设备ID(Device ID)、测点值(Measurement)三个主要字段。为了便于对时间序列的设备信息进行更多描述,IoTDB还增加了Tag和Field等扩展字段,其中Tag支持索引,Field不支持索引。在有的时序数据库中,又称为时间线,表示记录某设备某传感器值随着时间不断变化的值,形成一条沿着时间轴不断追加测点值的时间线。

在IoTDB中所有的时间序列必须以root开始、以传感器作为结尾。一个时间序列也可称为一个全路径。

https://www.cnblogs.com/huaweiyun/p/14943751.html

5.路径(Path):IoTDB构造了一个以root为根节点、把存储组、设备、传感器串联在一起的树形结构,从root根节点经过存储组、设备到传感器叶子节点,构成了一条路径。也叫时间序列。

在本文所述场景中,每次到达的数据通常以集团为单位(即数据可能为跨电场、跨设备的),为了写入数据时避免频繁切换IO降低系统速度,且满足用户以集团为单位进行物理隔离数据的要求,我们将存储组设置在集团层。
6.时间戳

IOTDB中绝对时间戳分为二种,一种为LONG类型,一种为DATETIME类型(包含DATETIME-INPUT, DATETIME-DISPLAY两个小类)。在用户在输入时间戳时,可以使用LONG类型的时间戳或DATETIME-INPUT类型的时间戳,其中DATETIME-INPUT类型的时间戳支持格式如表所示:

format
yyyy-MM-dd HH:mm:ss
yyyy/MM/dd HH:mm:ss
yyyy.MM.dd HH:mm:ss
yyyy-MM-dd'T'HH:mm:ss
yyyy/MM/dd'T'HH:mm:ss
yyyy.MM.dd'T'HH:mm:ss
yyyy-MM-dd HH:mm:ssZZ
yyyy/MM/dd HH:mm:ssZZ
yyyy.MM.dd HH:mm:ssZZ
yyyy-MM-dd'T'HH:mm:ssZZ
yyyy/MM/dd'T'HH:mm:ssZZ
yyyy.MM.dd'T'HH:mm:ssZZ
yyyy/MM/dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss.SSS
yyyy.MM.dd HH:mm:ss.SSS
yyyy/MM/dd'T'HH:mm:ss.SSS
yyyy-MM-dd'T'HH:mm:ss.SSS
yyyy.MM.dd'T'HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss.SSSZZ
yyyy/MM/dd HH:mm:ss.SSSZZ
yyyy.MM.dd HH:mm:ss.SSSZZ
yyyy-MM-dd'T'HH:mm:ss.SSSZZ
yyyy/MM/dd'T'HH:mm:ss.SSSZZ
yyyy.MM.dd'T'HH:mm:ss.SSSZZ
ISO8601 standard time format

相对时间戳

相对时间是指与服务器时间now()DATETIME类型时间相差一定时间间隔的时间。 形式化定义为:

 

 

now() - 1d2h //比服务器时间早1天2小时的时间
now() - 1w //比服务器时间早1周的时间

总结:

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值