1. 程式人生 > 其它 >攜手 TDengine,釋普科技升級實驗室儀器、監控智慧方案

攜手 TDengine,釋普科技升級實驗室儀器、監控智慧方案

小 T 導讀:從試用到正式上線的一年多裡,釋普科技從 TDengine 2.0 版本一直關注到 2.4。目前,釋普的三款產品“監控保”、“資料寶”、“儀器保”均與 TDengine 達成了合作,不僅機器投入成本實現了顯著降低,查詢、儲存等效能也能滿足業務發展需求。本文將分享釋普科技應用 TDengine 的實踐經驗,供讀者參考。

公司簡介

釋普資訊科技(上海)有限公司(簡稱釋普科技)始終以“引領實驗室數智化服務”為己任,專注於實驗室和公共衛生領域,利用 AloT、物聯數智平臺以及人工智慧技術,幫助各行各業實驗室實現安全合規、提效降本、數字化決策。公司成立於 2016 年,總部位於上海,研發中心位於杭州,並在全國多地設有分支機構,客戶廣泛分佈於生物醫藥、檢驗監測、科研院所、政府機構、化學化工、園區及公共服務平臺、食品化妝品等行業。

專案介紹

為了幫助實驗室客戶在數字化層面實現更精準有效的數字洞察,為客戶提供更快速的資料分析、更高效的算力支援、更輕量便捷的查詢服務,釋普科技借力 TDengine,在實時資料儲存、高效壓縮和快速聚合查詢方面取得了良好的效果。截止到 2021 年,共計 18000 個點位,80000+ 臺裝置,10000+ 的 SKU 化學品通過 iLabService 釋普科技系列產品實現了智慧化監管。

我們通過“釋普·監控保”“釋普·儀器保”“釋普·庫存保”“釋普·樣本保”“釋普·資料寶” 5 大產品,為客戶構建實驗室數智化整體解決方案。現階段綜合客戶使用場景以及業務規劃,“釋普·監控保”、“釋普·資料寶”、“釋普·儀器保”三款產品因為智慧演算法的實現需要攜手 TDengine 資料庫,未來將會有更多產品接入 TDengine。

作為一家迅速成長的創業企業,為了滿足成長過程中客戶體量不斷增長的需求,為客戶提供更高價值的服務,我們綜合評估了 TDengine 單機、叢集的功能,加之其針對物聯網場景的特殊設計,可以在物聯網場景下顯著降低機器的投入成本,因此我們毫不猶豫地選擇 TDengine 進行了測試。

注:本案例中的截圖主要為我司自己的裝置場景,用作產品實用展示。

一、實踐與效果

該環境的 TDengine 資料庫服務版本為 2.2.2.15 單機模式,備份用其他方式完成。機器配置為 8C + 16G + 500G 機械硬碟。我們按照裝置的原始資料、操作狀態、樣本狀態,離線狀態四個維度建立了“超級表—子表”的資料模型。

“釋普·儀器保”的主要功能是為客戶提供裝置臺賬管理、利用率監控、資產管理、工單管理、計劃服務管理、共享預約、儀器裝置盤點等儀器裝置全生命週期管理。其底層邏輯是資料的採集和儲存。我們通過智慧閘道器對實驗室的裝置採集資料後,通過 mqtt 傳送到 EMQ 或者阿里雲平臺(根據客戶需求),然後再通過訊息佇列緩衝後,以 Java 的 RESTful 方式寫入到 TDengine,然後再把資料用以監控(監控保)、展示(資料保) 。

該環境目前共有數百臺裝置的接入,總資料量大概為 3 億行左右,佔據儲存空間粗略估算為672MB ,壓縮率滿足我們的預期。

   

“釋普·資料保”的主要功能是幫助客戶整合各類資料,個性化地展現資料統計分析,以資料價值賦能決策,為實驗室提供更智慧的決策建議,助力提升實驗室管理。因此,TDengine 對“資料保”的幫助主要體現在通過 SQL 語句進行資料展示,常用的 SQL 大致如下:

  1. select last_row(ts) ts, last_row(${item.measurement}) value from ilabservice.socket
  2. select ts, min(${item.measurement}) value from ilabservice.socket
  3. select ts, max(${item.measurement}) value from ilabservice.socket
  4. select avg(${item.measurement}) value from ilabservice.socket

值得一提的是,在 2、3 這樣的 SQL 語句中,TDengine 一開始是不支援的。當時的 SQL 不能實現 ts 和 max()/min() 函式同時返回結果,也就是說,一次查詢只能得到最大值/最小值,但是不能同時取到最大值/最小值和對應的時間戳。

後來官方聽到了使用者聲音後,對這個功能做了優化:在使用所有的選擇函式(max/min/last/last_row這類選擇出資料型別的函式)時,可以同時指定輸出 ts 列,甚至還有其他標籤列(包括 tbname),這樣就可以方便地知道被選出的值是源於哪個裝置、哪個時間了。從這一點上也可以看到,國產資料庫本地服務無疑會更加貼近使用者和市場,會真正通過聆聽使用者聲音來改善產品。

目前,我們還在開發 TDengine 在“監控保”中的應用。預計五月中下旬,客戶就能通過 TDengine 實時查詢裝置狀態表的最新資料,將體驗到安全級別更高、更快速流暢的儀器裝置執行引數、裝置能耗分析狀態、環境視訊監控、人員行為識別反饋、安防管理等一體化實驗室安全監控資料,在資料合規性上將會更有保障。

二、寫在最後

從試用到正式上線的一年多裡,我們從 TDengine 2.0 版本一直關注到 2.4 ,從最初的對資料庫基礎架構進行學習、SQL功能的除錯、叢集的高可用測試、JNI 和 RESTful 的選擇,再到連續查詢、監控模組等高階功能的試用,這個過程中我們看到了 TDengine 整個團隊都在努力地讓產品穩定性、功能性等各個方面變得更好,這也更加增強了我們打造好自己專案的信心。
我們相信,站在數字化智慧化的時代大潮下,優秀的企業和產品總會脫穎而出。


想了解更多 TDengine Database的具體細節,歡迎大家在GitHub上檢視相關原始碼。