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去分析,簡直是搞笑。但凡懂這些技術的人都不會做出這樣的方案。
今天意外還發現一個問題,同一個時間戳的資料是寫不進來的。