日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文读懂TDengine的窗口查询功能

發布時間:2024/3/7 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文读懂TDengine的窗口查询功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為一款時序數據庫(Time-Series Database),TDengine?提供了按時間自動劃分窗口并執行查詢的能力。這個功能的用途和使用場景你是不是清楚呢?本文將為你介紹這一功能及其典型使用場景。

什么是窗口查詢?

時序數據常常需要根據采集時間對數據進行查詢,本質上是在時間軸上劃分出時間窗口,并對窗口內的數據進行聚合和查詢計算。比如一個最簡單的場景:查詢”2018-01-01 00:00:00.000″到”2018-01-31 00:00:00.000″原始數據的最大值、最小值、平均值,則”2018-01-01 00:00:00.000″到”2018-01-31 00:00:00.000″就形成了一個查詢的時間窗口。

在實際生產應用中,業務場景要求的查詢條件往往比這個更復雜,需要時序數據庫能夠按照不同規則、沿時間軸進行窗口劃分,并對各個窗口內的時序數據分別進行聚合、選擇計算等操作。

TDengine 提供的三種窗口查詢能力詳解

TDengine 從 2.2.x.x 版本起,支持了三類時序窗口查詢,分別是等間隔窗口(interval)、狀態窗口(state_window)會話窗口(session),大大簡化了應用開發時對時間序列邏輯的處理。

窗口查詢,從子表的查詢語法為:

SELECT function_list FROM tb_name [WHERE where_condition] [SESSION(ts_col, tol_val)][STATE_WINDOW(col)] [INTERVAL(interval [, offset]) [SLIDING sliding]] [FILL({NONE | VALUE | PREV | NULL | LINEAR | NEXT})]

窗口查詢,從超級表的查詢語法為:

SELECT function_list FROM stb_name [WHERE where_condition] [INTERVAL(interval [, offset]) [SLIDING sliding]] [FILL({NONE | VALUE | PREV | NULL | LINEAR | NEXT})] [GROUP BY tags]

下面分別看一下這三類時序窗口查詢功能。

1. 等間隔窗口(interval)

按照固定的時間窗口長度,周期性地對時間軸進行窗口劃分,并允許對每個窗口內的數據進行聚合查詢。

?我們再通過幾個例子看看等間隔窗口的具體應用場景。

在工業生產中,有很多監控指標需要實時展示趨勢線。但有些指標如振動等,實際采集的頻率非常高,如果展示原始數據會難以看清趨勢,同時由于數據量過于密集,會給前端頁面的展示造成巨大壓力。

但通過 interval 等間隔窗口,可以按照指定窗口長度對原始數據做聚合(相當于對原始數據進行了降采樣),之后再展示趨勢線時,前端展示需要從數據庫拉取的數據量會大大減少,從而顯著提高效率。

下圖中,綠色曲線為基于每 60 秒采集一次的原始數據直接展示繪制的曲線,橙色曲線為對原始數據按照 5 分鐘長度進行窗口劃分后求取平均值的曲線,可以看到橙色曲線這種情況下,很好地反映了整體的數據變化趨勢,而前端繪圖所需的數據量卻減少了 80%。

在實際生產中高頻采集數據的趨勢線,均可以考慮通過 TDengine 的 interval 語法提供的降采樣能力,在不丟失整體趨勢信息的情況下,快速展示數據。

2. 狀態窗口(state_window)

狀態窗口讓用戶可以按照某個整型/字符串型的采集量(一般是表征狀態的值,如設備工作模式等)的值來劃分窗口,將該狀態值連續不變的記錄劃入同一個窗口。然后對每個窗口內的采集值進行avg/max/min等統計聚合、或計算狀態持續時間等。

比如加工廠的機床運維人員,需要統計每個機床的工作和待機的時間,這本質上是以工作狀態 “status” 這個狀態量的值來劃分窗口,并統計窗口時長。

?上圖中 “status” 列,表征設備的當前工作狀態,狀態窗口對 “status” 值的連續變化情況進行判斷,劃分出三個窗口,并可以分別對每個窗口進行聚合,比如計算每個窗口內的開始時間、結束時間、總記錄條數、平均值、窗口持續時間等。這些均可在 TDengine 中通過一條 SQL 查詢語句直接實現,具體 SQL 語句和查詢結果見下圖。

?3. 會話窗口(session)

在詳細討論會話窗口之前,我們先看車聯網平臺的一個典型應用場景:通過車輛行駛數據對車輛行程進行劃分。一部車從發動起步,到停車熄火的中間行駛過程視為一個完整的“行程”。車輛在行駛時,車載 T-Box 一般會按照 30 秒的間隔,向車聯網平臺發送自身的狀態數據;而停車熄火時,則不再發送。因此,通過分析車輛上報消息的連續性,可以推算出該車輛的行程。

會話窗口讓用戶可以按照上報記錄的時間連續性來劃分窗口,即相鄰兩條記錄時間間隔不超過某一閾值,則劃歸同一窗口;超過該閾值,則老窗口結束,新窗口開始;然后對每個窗口進行諸如持續時間等統計,或對窗口內的原始采集數據進行各種聚合計算,可以是 avg/max/min/count 或其他用戶自定義函數。

?會話窗口針對的場景是:讓用戶通過一條 SQL 語句實現按時序數據的“連續程度”來自動劃分窗口。

如下圖中的 SQL 所示,用戶設置 session ( ts, 10s ),就是將相鄰記錄時間間隔小于 10 秒的記錄劃分到同一個 session window 內;而對間隔超過 10 秒的兩條相鄰記錄則劃分到不同窗口。這樣就在下圖中劃分出了藍色、紅色、灰色標示出的 3 個窗口,每個窗口可獨立計算窗口開始/結束時間、窗口長度、窗口內記錄數等用戶感興趣的統計量。

總結

時序數據除了數據量大、結構相對簡單的特點外,還在查詢場景中大量涉及時間戳的處理。我們往往要根據業務場景,按時間戳對采集數據進行分組并計算。對于這類計算,如果開發者將原始數據讀入內存,再由應用層程序去處理時間窗口劃分的邏輯,就不得不面對讀取海量原始時序記錄的磁盤 IO、CPU 及內存開銷,同時業務層代碼復雜度也變得更高。

如果開發者可以靈活運用 TDengine 這樣的 Database 提供的時序數據窗口劃分能力,結合業務場景,選擇合適的窗口劃分函數來將相關計算負荷下沉到數據庫層,則能大大提升系統響應性能、減少負載開銷,起到事半功倍的效果。


想了解更多 TDengine Database的具體細節,歡迎大家在GitHub上查看相關源代碼。

總結

以上是生活随笔為你收集整理的一文读懂TDengine的窗口查询功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天综合视频 | 成人性生交大片免费看96 | 亚洲一级av无码毛片精品 | 在线观看视频亚洲 | 亚洲人天堂 | 韩国三级hd中文字幕 | 91精品国产一区二区三区蜜臀 | 免费大片av | 成人黄色片视频 | 伊人久艹| 不卡的中文字幕 | 久久加勒比 | 91九色porny视频 | 成人一区二区在线 | 蝌蚪久久 | 欧美在线导航 | 中文字幕超碰在线 | 男女www视频 | 亚洲免费小视频 | 国产精品一区二区三区免费观看 | 97中文字幕 | 99精品视频免费 | 国产日韩在线视频 | 91禁在线观看 | 久久精品一区 | 奇米影视77777| 免费久草视频 | 性感美女毛片 | 福利视频大全 | 高清不卡一区 | 欧美αv| 奇米影视在线观看 | 亚洲AV成人无码网站天堂久久 | 国产精品电影一区二区三区 | 妖精视频一区二区三区 | 96国产精品 | 一级黄色伦理片 | 亚洲视频网站在线观看 | 久久精品播放 | 国产99热| 人人免费操 | 欧美一区二区网站 | 白又丰满大屁股bbbbb | 巨胸挤奶视频www网站 | 污污的视频软件 | 欧美激情片一区二区 | 臭脚猛1s民工调教奴粗口视频 | 亚洲国产精品第一页 | 无码精品一区二区三区AV | jlzzzjlzzz国产免费观看 | 欧美一区二区三区爽爽爽 | 青青青国内视频在线观看软件 | 中国毛片网站 | 国产尤物在线 | 亚洲精品一二区 | 国产精品伦一区二区三级视频 | 动漫美女被x | www,xxx69 japan| 男人av影院 | 黑帮大佬和我的365日第二部 | 亚洲色图1| 99热在线观看 | 精品福利视频一区二区 | 美女视频三区 | 美美女高清毛片视频免费观看 | 人人看超碰| 人人射视频| 亚洲成年人免费观看 | 国产在线综合视频 | 国产日本欧美在线 | 久久毛片网站 | 日本男人的天堂 | 伊人一二三 | 欧美视频在线一区二区三区 | 国产精品人成在线观看免费 | 亚洲欧美字幕 | 欧美一级免费视频 | 国产精品国产精品国产 | 日日躁夜夜躁aaaabbbb | 91免费黄视频 | 尤果网福利视频在线观看 | 国产影音先锋 | 亚洲综合网站 | 大胸喷奶水www视频妖精网站 | 亚洲人在线视频 | 超清纯大学生白嫩啪啪 | 制服丝袜在线播放 | 亚洲国产精彩中文乱码av | 精品国产不卡 | 丁香婷婷激情 | 欧美色精品在线 | 18av视频| 男女操操视频 | 日韩黄色精品视频 | 丰满放荡岳乱妇91ww | 中文字幕 亚洲一区 | 国产原创视频在线观看 | 污污网站在线观看视频 | 在线观看成人av |