暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TDengine的实践场景

原创 薛晓刚 2022-11-10
630

    前几日我们在讨论一个物联网场景时候,负责该项目的博士提出了一个他的想法--将各个采集的数据关联用以发现问题。我觉得这个思路不错,至于能不能做呢?

我下来模拟了一下。我们这里使用的是Tdengine,我这里有d1表和d2表两个表。d1和d2是两个物联网的检测器对应的数据表。 那么我按照车牌号码去关联,数据库提示我不支持。


这个结果其实也在我意料之中,毕竟时序数据库不属于RDBMS的范畴,应该算在NoSQL的范畴。不能关联也不怪它。

那么这个要怎么解决?我想起官方介绍过一种叫做超级表。摸索尝试用用。

taos> create table t (ts TIMESTAMP,x int,y int) tags (id int,no nchar(100));   -创建超级表  注意这里的tags,我意思是采集设备的id和车牌号码。


taos> CREATE TABLE t1 USING t TAGS ('1', '沪A12345');  --创建子表1,这里using用到了超级表的tags

Query OK, 0 of 0 row(s) in database (0.006030s)


taos> CREATE TABLE t2 USING t TAGS ('2', '沪A54321');  --创建子表2,这里using用到了超级表的tags

Query OK, 0 of 0 row(s) in database (0.017275s)


看一下表,只看到t1和t2, 但是注意看t1和t2最后一列其实显示了他们的父表。

给两个子表分别写一条数据。


直接查父表(超级表)就可以了。其实相当于RDBMS中执行了union all。


最后再执行带where条件的SQL,其实就等于给两个表做了关联。


所以从上述可以看到,时序数据库不能直接做关联(不支持),需要通过设计完成(而这个要怎么设定tags,以及设定多少个tags,这在上线之初要定义好,想好规划好)。

这样就可以完成物联网大量数据的关联分析。

我第一次听到这个产品时候,我觉得他说出了心声。物联网的数据是海量的,如果用左边这十几种技术栈(成本先不说),累也要累死了。而时序数据库基本是用来解决这个问题的。所以有时候我听到说要把时序数据库的数据拿到hadoop去分析,简直是搞笑。但凡懂这些技术的人都不会做出这样的方案。


今天意外还发现一个问题,同一个时间戳的数据是写不进来的。



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论