六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

用實(shí)際案例告訴你,在 TDengine 如何進(jìn)行數(shù)據(jù)建模

小 T 導(dǎo)讀:在使用 TDengine 的時(shí)候,通過(guò)官網(wǎng)的技術(shù)文檔可以學(xué)習(xí)到建庫(kù)(database)、建表(table)的各種 SQL 語(yǔ)句,但是一旦要跟自己的具體業(yè)務(wù)場(chǎng)景結(jié)合,經(jīng)驗(yàn)不足的朋友可能會(huì)不知道到底如何下手,本文將分享一些常見(jiàn)的建模方式,希望幫助大家更好地落地 TDengine。

不同于 OpenTSDB、Prometheus 等時(shí)序數(shù)據(jù)庫(kù)(Time-Series Database),TDengine 允許一個(gè)表有多個(gè)列(即每條記錄中,多個(gè)采集量共用一個(gè)時(shí)間戳的存儲(chǔ)方式),這樣在建表時(shí)可以有更大的靈活性。

智能電表是個(gè)典型的可以按照設(shè)備建表,多列存儲(chǔ)時(shí)序數(shù)據(jù)的例子。但在實(shí)際使用過(guò)程中,情況可能會(huì)更復(fù)雜,一定要結(jié)合本身數(shù)據(jù)的情況來(lái)靈活設(shè)計(jì)表結(jié)構(gòu)。

按照設(shè)備建表,在官網(wǎng)文檔中已經(jīng)有詳細(xì)的例子和介紹,本文除了介紹一個(gè)設(shè)備一張表的建模方式外,還會(huì)對(duì)另外幾種建模方式做一個(gè)補(bǔ)充。

1、按照設(shè)備建表的標(biāo)準(zhǔn)情形

上文中的智能電表例子就是一個(gè)設(shè)備一張表的標(biāo)準(zhǔn)情形。這種標(biāo)準(zhǔn)情形有以下特點(diǎn):

(1) 相同類型的設(shè)備,采集指標(biāo)完全相同。(比如上文例子中的智能電表,只采集電流、電壓、相位三個(gè)指標(biāo))

(2) 就同一個(gè)設(shè)備而言,各采集指標(biāo)同時(shí)采集,采集時(shí)間戳相同。

(3) 就同一個(gè)設(shè)備而言,各采集指標(biāo)每次采集的數(shù)據(jù)最好是在同一個(gè)消息中上報(bào)到 TDengine,而非分別上報(bào)。


這種情況的處理最簡(jiǎn)單:

  1. 采用多列模式,即為每個(gè)類型的設(shè)備創(chuàng)建一張多列超級(jí)表。
  2. 為該類型的每個(gè)設(shè)備創(chuàng)建一張子表。
  3. 子表從第二列起,每一列均為一個(gè)采集指標(biāo)。
TDengine Database
圖一:TDengine database 表設(shè)計(jì)

以智能電表為例:

TDengine Database
圖二:一個(gè)采集點(diǎn)一張表
TDengine Database
圖三:超級(jí)表使用實(shí)例

2、按照設(shè)備建表,但同類型設(shè)備的采集指標(biāo)不完全相同

實(shí)際生產(chǎn)中,同類型的設(shè)備有時(shí)候采集指標(biāo)也不完全相同,這種情況下有以下特點(diǎn):

(1) 相同類型的設(shè)備,采集指標(biāo)大體相同,但每個(gè)設(shè)備可能有少量個(gè)性化的指標(biāo)。(前提:所有個(gè)性化指標(biāo)總數(shù)加上共有指標(biāo)總數(shù)不超過(guò) 1024 個(gè),2.1.7.0 版本后總數(shù)為不超過(guò) 4096 個(gè))

(2) 就同一個(gè)設(shè)備而言,各采集指標(biāo)同時(shí)采集,采集時(shí)間戳相同。

(3) 就同一個(gè)設(shè)備而言,各采集指標(biāo)每次采集的數(shù)據(jù)在同一個(gè)消息中上報(bào)到 TDengine,而非分別上報(bào)。


這種情況類似于 1,但區(qū)別是每個(gè)設(shè)備可能有個(gè)性化的采集指標(biāo)。針對(duì)這種情形的處理思路常稱為“大寬表”:

  1. 創(chuàng)建一個(gè)多列超級(jí)表,包含所有不同的采集指標(biāo)列,為所有采集指標(biāo)的全集。
  2. 為每個(gè)設(shè)備創(chuàng)建一張子表。
  3. 子表從第二列起,每一列均為一個(gè)采集指標(biāo)。
  4. 數(shù)據(jù)寫入時(shí),對(duì)于該設(shè)備不具備的采集指標(biāo)填入 null 值。


圖示和圖三接近,不同處在于建立超級(jí)表時(shí),采集指標(biāo)需要按照最多的設(shè)備去處理。

3、按照采集指標(biāo)建表-1

更復(fù)雜的場(chǎng)景中,設(shè)備的固定表結(jié)構(gòu)很難抽象出來(lái),或者表結(jié)構(gòu)經(jīng)常改變,無(wú)法固定,此時(shí)需要有更靈活的處理思路。以下任一個(gè)特點(diǎn)滿足時(shí),需考慮按指標(biāo)建表的思路:

(1) 相同類型的設(shè)備,采集指標(biāo)無(wú)法固定,或者每個(gè)設(shè)備有大量個(gè)性化的指標(biāo)。(前提:所有個(gè)性化指標(biāo)總數(shù)加上共有指標(biāo)總數(shù)超過(guò) 1024,2.1.7.0 版本后為指標(biāo)總數(shù)超過(guò) 4096 個(gè))

(2) 就同一個(gè)設(shè)備而言,各采集指標(biāo)有各自的采集時(shí)間戳。(即同一個(gè)設(shè)備的不同采集指標(biāo)的采集時(shí)間、采集周期等無(wú)法保證相同)

(3) 就同一個(gè)設(shè)備而言,各采集指標(biāo)每次采集的數(shù)據(jù)分多個(gè)消息上報(bào)到 TDengine,且時(shí)間延遲無(wú)法確定。


這種情形要求更高的靈活性。一般處理思路如下:

  1. 創(chuàng)建單列的超級(jí)表,即時(shí)間戳+采集值,而在標(biāo)簽項(xiàng)中增加采集指標(biāo) ID 這一標(biāo)簽。
  2. 每個(gè)設(shè)備的每個(gè)采集指標(biāo)單獨(dú)創(chuàng)建一張表,在標(biāo)簽項(xiàng)中增加具體的采集指標(biāo) ID。 
  3. 不同數(shù)據(jù)類型的采集指標(biāo)要?jiǎng)潥w不同超級(jí)表,比如數(shù)值型、布爾型和字符串型的數(shù)據(jù)應(yīng)該分別歸入三類對(duì)應(yīng)的超級(jí)表。
TDengine Database
圖四:?jiǎn)瘟心P徒J纠?/figcaption>

示例如下:

TDengine Database
圖五:?jiǎn)瘟心P徒?shí)例

4按照采集指標(biāo)建表-2

此場(chǎng)景可能出現(xiàn)在工業(yè)物聯(lián)網(wǎng) PLC 數(shù)據(jù)采集中。

(1) 相同類型的設(shè)備,采集指標(biāo)無(wú)法固定。

(2) 就同一設(shè)備而言,各采集指標(biāo)有各自的采集頻率,不過(guò)采集頻率是確定的,比如 PLC1~PLC10 的采集頻率是 10ms,PLC11~PLC20 的采集頻率是 20ms。

(3) 就同一設(shè)備而言,后續(xù)可能會(huì)動(dòng)態(tài)添加 PLC 通道。期望可以在不修改代碼的情況下動(dòng)態(tài)增加超級(jí)表的列。

(4) 希望通過(guò)一個(gè)超級(jí)表來(lái)統(tǒng)一管理。


建模思路:

  1. 創(chuàng)建多列的超級(jí)表,采集字段不同的數(shù)據(jù)類型各設(shè)置建立一個(gè)。即時(shí)間戳+采集值 int+采集值 double+ 采集值 nchar……,而在標(biāo)簽項(xiàng)中增加采集指標(biāo) ID 這一標(biāo)簽。
  2. 每個(gè)設(shè)備的采集指標(biāo)單獨(dú)創(chuàng)建一張表,在標(biāo)簽項(xiàng)中增加具體的采集指標(biāo) ID。
  3. 其中時(shí)間戳必填的列,剩余列則要根據(jù)測(cè)點(diǎn)類型填寫,比如測(cè)點(diǎn)上報(bào)的是整形數(shù)據(jù),就只需要設(shè)置time、采集值 int 這兩列,其余列為 null。

示例如下:

TDengine Database
圖六:按照采集指標(biāo)建模實(shí)例

以上為幾種常見(jiàn)建模方式,覆蓋了大部分的實(shí)際場(chǎng)景,當(dāng)然實(shí)際業(yè)務(wù)中的情況是多種多樣的,如果以上建模思路不能滿足,也歡迎和加入 TDengine 的用戶社區(qū),我們一起交流。