当前位置:   article > 正文

小白入门IoTDB【元数据操作】_iotdb create

iotdb create

我的学习过程基本按照IoTDB用户手册的顺序,我目前觉得这一套线的逻辑没有太大的问题,我的理解是先了解整体是什么,然后对于底层的存储结构要有基础的了解,接着是对数据库的操作,操作,要从大到小,因此需要先是数据库的操作,数据类型的管理这样的操作入手。

然后我们说什么是元数据,元数据(Metadata)是描述数据的数据,它提供了关于数据的信息和属性。因此,我理解就是,所有的保存数据信息的内容都叫元数据(看用户手册我觉得应该就是这样)。也就是数据库,数据库中的表的一些信息,都可以被算作是元数据。

本文我将会从大到小,对于元数据的操作进行学习。

元数据模板

这个说大也大,说小也小,不过对于只学过关系型数据库的我来说,我觉得这很酷

我理解元数据模板就是你规定一个表的结构,然后你把这个模板挂载到树的任意节点上面,然后这个节点下的所有实体都会遵循这个模板。我觉得这很棒,感觉真的节省了很多维护成本。这对于懒狗来说简直是天大的好事。

模板的操作

在这里插入图片描述
(来自用户手册)

感觉没有太多需要注意的点了,我自己都试了,感觉是顺利的。稍微注意一下数据类型,其他的我没遇到啥x_x

从对数据库的操作开始

从创建数据库开始

(这里和我学的关系数据库不一样,他应该是root后面的那里才是数据库的名称,我的理解是)

create database root.{databasename}
  • 1


经过我的尝试,这样命名都是可以的

支持的:中英文字符、数字、下划线的组合;纯数字或包含其他字符的用反引号引起来;还有想后两个,共属于同一个父节点(尝试的结果告诉我这是可以的)

然后错误(应该错误)的操作:

  1. 根节点不对
  2. 已经存在的database,不能重建
  3. 由于大小写不敏感,所以root.ln和root.LN应该是算同一个,但是这个没有报错,后面那里我要求show database可以看到它确实给我建了两个,x_x,无法理解,理论上我觉得需要报错501

查看数据库

IoTDB> show databases
IoTDB> show databases root.*(可以若干个*)
  • 1
  • 2

在这里插入图片描述

删除数据库

delete/drop database {databasename}
  • 1

在这里插入图片描述
在这里插入图片描述

对于节点操作

(悄咪咪说,不是很懂为什么要单独写这个?

或者我的猜想是,对于工业的用途,可以看到同级的传感器有多少个?或者可以用来统计带有特定采样点的设备数。(这么看来还是挺有用的了x_x

一些常规的命令:

SHOW CHILD PATHS pathPattern	//查看此路径模式所匹配的所有路径的下一层的所有路径和它对应的节点类型
show child paths root.ln   //查询 root.ln 的下一层
  • 1
  • 2

我觉得很有用的(都很有用):

统计当前 Metadata
树下满足某路径模式的路径中指定层级的节点个数。这条语句可以用来统计带有特定采样点的设备数。

COUNT NODES <PathPattern> LEVEL=<INTEGER>
  • 1

时间序列管理

学到这儿我发现我的知识出现了一个bug,我以为时间序列是一条数据的唯一标识,我发现我错了,唯一标识应该是时间戳。所以是要创建一个时间序列,然后向时间序列里面存储数据。(时间序列是一条时间线,所以说他不是一个时间点x_x)

补一个概念:时间序列和对齐时间序列

时间序列是一个物理实体的某个物理量在时间轴上的记录

对齐时间序列是(在实际应用中,存在某些实体的多个物理量同时采样),因此这几个物理量的时间序列是相同的,被称为对齐时间序列

手动创建

IoTDB > create timeseries root.ln.wf01.wt01.status BOOLEAN encoding=PLAIN
IoTDB > create timeseries root.ln.wf01.wt01.temperature FLOAT encoding=RLE
IoTDB > create timeseries root.ln.wf02.wt02.hardware TEXT encoding=PLAIN
IoTDB > create timeseries root.ln.wf02.wt02.status BOOLEAN encoding=PLAIN
IoTDB > create timeseries root.sgcc.wf03.wt01.status BOOLEAN encoding=PLAIN
IoTDB > create timeseries root.sgcc.wf03.wt01.temperature FLOAT encoding=RLE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

需要注意的点大概就是编码方式与数据类型的对应问题

对齐时间序列:

IoTDB> CREATE ALIGNED TIMESERIES root.ln.wf01.GPS
(latitude FLOAT encoding=PLAIN compressor=SNAPPY, 
 longitude FLOAT encoding=PLAIN compressor=SNAPPY) 
  • 1
  • 2
  • 3

(具体操作看手册就好,没发现啥bug)

自动创建

根据写入数据的特征自动创建出用户未定义的时间序列

(这感觉好方便,感觉像关系数据库不用建表了一样,我的理解x_x,不过我还没学数据写入,晚点再试试吧

这篇就先到这儿,我的感觉就是,IoTDB的数据管理或者说数据操作,和之前我学过的关系数据库还是挺不一样的。有趣,不过感觉还只是学习,没有接触工业的,所以没感觉到实操上的便利性,这是有点遗憾的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/943049
推荐阅读
相关标签
  

闽ICP备14008679号