工業數據治理范式革新:時序數據庫 TDengine虛擬表技術解析

小T導讀:在工業數字化過程中,數據如何從設備采集順利“爬坡”到上層應用,一直是個難題。傳統“單列模型”雖貼合設備協議,卻讓上層分析舉步維艱。TDengine 用一種更聰明的方法打通了這條數據通路:不強求建模、不手動轉換,通過“虛擬表”機制,讓數據以業務所需的形式自動呈現。本篇文章將帶你深入了解 TDengine 如何搭建 OT 到 IT 的橋梁,真正實現設備數據“即采即用”,讓工業應用更簡單、更高效。

在工業數字化進程中,設備數據采集多采用“KVQT”單列模型(即測點名、變量值、質量戳、時間戳),這與工控傳統協議緊密相關。例如,通過 OPC 設備采集時,底層設備上傳的數據多為單列模型,而非多列數據模型。這種模式導致數據采集與上層應用之間存在明顯割裂,業務與底層數據難以統一。在后續業務查詢中,如 30 列寬表查詢展示,在使用 SQL 語句場景下,操作極為復雜,需要多次 join 操作,效率低下。

為解決這一問題,TDengine 推出了一種創新的橋接方式。在工業底層數據采集匯聚到上層時,無需特殊建模,而是直接以單列模型進行采集和存儲。待數據到達上層應用后,根據業務需求重新創建虛擬表。通過 IO 點表,使用 SQL 語句,可批量創建虛擬子表,從而大幅降低數據采集、建模處理和查詢分析的工作量。

工業數據結構演變的挑戰

工業控制系統基于國際標準 IEC 62264-1,采用五層架構模型,用于描述工業自動化系統的功能分層。從底層設備通道 IO 采集,到 MES 系統的多列模型,再到 ERP 系統的多列表格展示,數據組織需求隨著層級上升而發生變化。

在 I/O 設備層,數據組織基于模擬信號通道,通過傳感器,感知溫度、壓力等被觀測量,并轉成模擬信號(4~20mA或0-5V),傳輸至過程監控層的 PLC、DCS 系統。在這些系統中,通過 A/D 轉換將模擬信號轉換為計算機可識別的數字信號。此時,數據組織仍以 IO 通道為基礎。

為了實現調度中心的遠程監視與控制,SCADA 系統會采集控制器信號,并與計算機中的圖形應用綁定,通過數字驅動動畫實現現場仿真。SCADA 系統內部已經封裝了與測點變量相關的功能模塊,如報表、曲線等,可輕松實現日報、月報、對比曲線展示等功能。部分 SCADA 系統也引入了模型概念,但在對外數據轉發時,仍以單列模型為主。

進入生產管理層的 MES/MOM 系統后,數據需求轉變為寬表多列模型,需要將工單、批次、工藝信息等進行綁定。然而,由于實時庫多為單列模型,而 MES 系統建設通常需要多列模型表格,因此只能選擇關系數據庫。海量的歷史數據則從實時庫抽取。為解決多庫應用不便的問題,許多 MES 廠商引入了支持寬表的時序數據庫,但這又面臨采集與轉換的難題:如何將從 OT 層的 SCADA、控制器或設備采集的單列數據模型存儲為 IT 層 MES 系統所需的多列模型?目前的解決方案多為定制開發,將單列數據映射到預定的多列模型表格中,但這帶來了高昂的定制開發成本、后期業務變更成本和維護成本,同時也存在數據斷線、過期和亂序數據寫入導致的數據完整性問題。

在生產車間中,同一條生產線往往需要生產不同產品和批次,并且需要記錄溫度、電壓、電流等數十個工藝參數。這些參數需要與產品類型、批次進行綁定,以便為后續的質量追溯和工藝分析提供數據基礎。然而,在傳統方法中,操作人員需要通過關系庫查詢批次起始時間,從實時庫的測點變量中獲取數據。這種操作方式不僅復雜,而且后期管理難度較大。如果工廠擁有幾萬甚至幾十萬個測點,一旦設計不當,后期的應用和運維難度將呈指數級上升。

對于上層業務而言,底層設備的變動不應與其綁定。以礦山場景為例,當采礦的工作面發生變更時,下位采集點位可能并未發生變化,只是工作面標識發生了改變。如果按照傳統方式,為一個新的工作面重新建表,未來可能會導致數據庫中出現上億張點位表,這將對數據庫以及上層業務應用帶來沉重負擔。隨著數據庫點位的擴增,上層應用需要重新映射點位,這一連串的工作不僅會增加工作強度,還容易出現問題,同時也會給歷史數據查詢帶來極大不便。

OT 到 IT 的橋梁——虛擬表

TDengine 提出“虛擬表”這一創新概念,可自由組合不同測點變量,生成所需的表格式,無需為建模和業務應用過度操心。

具體而言,通過工控協議采集設備數據后,無需提前規劃表模型(因為大部分 IoT 數據并無統一的數據組織結構)。數據進入 TDengine 后,可根據業務需求,基于實體表創建虛擬表。虛擬表與物化表在除寫入以外的應用場景中幾乎沒有區別,且在便利性和系統擴展性方面遠超傳統視圖功能。

通過可視化配置,TDengine 能夠直接將設備數據采集到數據庫中。以 OPC 采集為例,TDengine 的 OPC 采集器具備自動點位更新功能,當 OPC Server 端的點位發生變化且滿足 TDengine 的過濾條件時,TDengine 可自動同步更新,無需人工手動干預,從而大幅降低運維溝通成本。對于 OPC DA 協議,由于其自身限制,OPC DA 協議數據無法跨路由器或 VLAN 進行通信,且跨計算機部署時需要降低安全配置并手動配置 DCOM,操作復雜且容易出錯。相比之下,TDengine 支持 Agent 部署,可實現遠程運維管理,基本不受網絡環境限制(單向網閘場景除外),極大地簡化了運維流程。此外,TDengine Agent 支持斷線續傳功能,進一步保障 OPC 數據的完整性和可靠性。

以下是 OPC 自動采集數據的示例:

...

當上位應用需查詢不同產品的批次信息及對應工藝參數時,需求是明確的,以上述 3 個測點為例,在 TDengine的操作如下:

1.創建虛擬表:

//創建普通表或者超級表,此處以普通表為例
create vtable d1(ts timestamp,batchNo.val,Temp.val,Current.val) 

//支持創建時以別名方式,將底層采集數據與上位應用結構相互解耦
create vtable d1(ts timestamp,batchNo varchar(64)from batchNo.val,Temp float from Temp.val,Current float from Current.val) 

2.查詢虛擬表并拉齊數據:

select last(*) from d1 interval(1s)fill(prev)

查詢結果如下:

3.查詢虛擬表原始數據:

Select * from d1

其中時間戳為各原始子表時間戳的匯總,查詢結果:

TDengine 通過簡單創建虛擬表和 SQL 語句,輕松實現了不同測點之間的關系查詢。與傳統方式相比,TDengine 無需通過視圖構建復雜的JOIN語句,也無需提前設計數據模型,從而避免了前期數據接入和轉換的繁瑣流程,以及后期修改和維護的不便。借助虛擬表,TDengine 讓數據組織變得更加簡潔、靈活,為上層業務應用分析提供了強大的數據支持,同時顯著提升了運維的便捷性和效率。

結語

憑借卓越的性能和強大的功能,TDengine成功搭建了 OT 與 IT 場景之間的高效過渡橋梁。未來,業務應用將不再受制于 OT 數據與 IT 業務數據格式的差異,數據整合與應用將更加順暢。隨著業務規模的不斷擴大,TDengine 的易用性優勢將愈發顯著,為企業數字化轉型筑牢堅實的數據根基,助力企業邁向智能化、高效化的未來發展之路。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901844.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901844.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901844.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis面試——日志

一、RDB(Redis DataBase) RDB 全程是 Redis DataBase,它是一種將 Redis 在某一時刻內存中的數據以快照形式保存到磁盤的機制 ,相當于給執行save/bgsave命令時刻的內存數據庫數據拍了一張快照我們如果通過save命令來執行快照&…

【Android】常用參數實踐 用戶界面UI 布局文件XML

本文將系統總結 Android XML 布局的通用參數和常用布局類型的專屬規則 一、通用布局參數 這些參數適用于所有 View 和 ViewGroup,是布局設計的基石。 1. 尺寸控制 android:layout_width 與 android:layout_height 定義視圖的寬度和高度,可選值&#xf…

解決 VSCode 中 NVM 配置后無法識別 Node 和 NPM 的問題

在開發中,我們經常需要使用 Node.js 和 NPM 來管理 JavaScript 項目依賴,而 NVM(Node Version Manager)是開發者在本地環境中管理多個 Node.js 版本的得力工具。不過,有時候在 VSCode 中配置完 NVM 后,可能…

BGP分解實驗·23——BGP選路原則之路由器標識

在選路原則需要用到Router-ID做選路決策時,其對等體Router-ID較小的路由將被優選;其中,當路由被反射時,包含起源器ID屬性時,該屬性將代替router-id做比較。 實驗拓撲如下: 實驗通過調整路由器R1和R2的rout…

Linux: 線程同步

目錄 一 前言 二 線程饑餓 三 線程同步 四 條件變量 1. cond ( condition) 2. pthread_cond_wait() : 3. pthread_cond_signal() 五 條件變量的使用 一 前言 在上篇文章Linux : 多線程互斥-CSDN博客我們講解了線程互斥的概念&#xff…

MyBatisPlus-QueryWrapper的exists方法拼接SQL中的EXISTS子句

在 MyBatis-Plus 中,QueryWrapper 的 exists 方法用于拼接 SQL 中的 EXISTS 子句,通常用于構 建子查詢條件。以下是具體用法和示例: ??1. 基本語法?? // 判斷是否存在符合條件的記錄 queryWrapper.exists(String existsSql); queryWrapper.notExists(String existsSq…

[數據結構]哈希表

目錄 1、哈希表 1.1、概念 1.2、沖突 2、哈希函數設計 3、負載因子調節 4、閉散列 5、開散列/哈希桶(重點掌握) 6、實現哈希桶 6.1、put方法 6.2、HashMap的擴容機制 6.3、get方法 7、HashMap 8、HashSet 8.1、哈希表性能分析 9、hashcod…

VS-Code創建Vue3項目

1 創建工程文件 創建一個做工程項目的文件夾 如:h5vue 2 cmd 進入文件 h5vue 3 輸入如下命令 npm create vuelatest 也可以輸入 npm create vitelatest 4 輸入項目名稱 項目名稱:自已輸入 回車 可以按鍵盤 a (全選) 回車: Playwright…

linux休眠喚醒流程

1、框架 2、休眠流程 應用層通過echo mem > /sys/power/state寫入休眠狀態,給一張大概流程圖 這個操作對應在kernel/power/main.c的state這個attr的store操作 static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr, …

Mysql--基礎知識點--93--兩階段提交

1 兩階段提交 以update語句的具體執行過程為例: 具體更新一條記錄 UPDATE t_user SET name ‘xiaolin’ WHERE id 1;的流程如下: 1.執行器負責具體執行,會調用存儲引擎的接口,通過主鍵索引樹搜索獲取 id 1 這一行記錄&#…

Windows 環境下 Apache 配置 WebSocket 支持

目錄 前言1. 基本知識2. 實戰前言 ?? 找工作,來萬碼優才:?? #小程序://萬碼優才/r6rqmzDaXpYkJZF 爬蟲神器,無代碼爬取,就來:bright.cn 原先寫過apache的http配置:Apache httpd-vhosts.conf 配置詳解(附Demo) 1. 基本知識 ?? WebSocket 是 HTTP 的升級協議 客戶…

UMAEA論文閱讀

Preliminaries MMKG為一個五元組G{E, R, A, V, T},其中E、R、A和V分別表示實體集、關系集、屬性集和圖像集。 T?ERE是關系三元組集。 給定兩個MMKG G1 {E1, R1, A1, V1, T1} 和 G2 {E2, R2, A2, V2, T2}, MMEA旨在識別每個實體對(e1…

AIGC-十款知識付費類智能體完整指令直接用(DeepSeek,豆包,千問,Kimi,GPT)

Unity3D特效百例案例項目實戰源碼Android-Unity實戰問題匯總游戲腳本-輔助自動化Android控件全解手冊再戰Android系列Scratch編程案例軟考全系列Unity3D學習專欄藍橋系列AIGC(GPT、DeepSeek、豆包、千問、Kimi)??關于作者 專注于Android/Unity和各種游戲開發技巧,以及各種資…

Qt界面卡住變慢的解決方法

本質原因: 當Qt界面出現卡頓或無響應時,通常是因為主線程(GUI線程)被耗時操作阻塞。 完全忘了。。。 Qt Creater解決方法 1. 定位耗時操作 目標:找到阻塞主線程的代碼段。 方法: 使用QElapsedTimer測量代碼執行時間…

【LangChain4j快速入門】5分鐘用Java玩轉GPT-4o-mini,Spring Boot整合實戰!| 附源碼

【LangChain4j快速入門】5分鐘用Java玩轉GPT-4o-mini,Spring Boot整合實戰! 前言:當Java遇上大模型 在AI浪潮席卷全球的今天,Java開發者如何快速擁抱大語言模型?LangChain4j作為專為Java打造的AI開發框架&#xff0c…

Vue 3 reactive 和 ref 區別及 失去響應性問題

在 Vue 3 中,reactive 和 ref 是實現響應式數據的兩個核心 API,它們的設計目標和使用場景有所不同。以下是兩者的詳細對比: 1. 基本定義與核心功能 特性reactiveref作用創建對象類型的響應式代理(對象、數組、Map 等&#xff09…

第一節:Vben Admin 最新 v5.0初體驗

系列文章目錄 基礎篇 第一節:Vben Admin介紹和初次運行 第二節:Vben Admin 登錄邏輯梳理和對接后端準備 第三節:Vben Admin登錄對接后端login接口 第四節:Vben Admin登錄對接后端getUserInfo接口 第五節:Vben Admin權…

Nginx部署spa單頁面的小bug

沒部署過,都是給后端干的,自己嘗試部署了一個下午終于成功了 我遇到的最大的bug是進入后只有首頁正常顯示 其他頁面全是404,于是問問問才知道,需要這個 location / { try_files $uri $uri/ /index.html; } 讓…

面試算法高頻08-動態規劃-01

動態規劃 遞歸知識要點 遞歸代碼模板:提供遞歸代碼的標準形式public void recur(int level, int param) ,包含終止條件(if (level> MAX_LEVEL))、當前層邏輯處理(process(level, param))、向下一層遞歸…

若依框架前后端分離版部署全流程詳解(本地+服務器+高級配置)

若依框架前后端分離版部署全流程詳解(本地服務器高級配置) 若依(RuoYi)作為一款基于SpringBoot和Vue的權限管理系統,憑借其模塊化設計和開箱即用的特性廣受開發者歡迎。本文將從本地部署、服務器部署、高級配置三個維…