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

從 2.x 到 3.x,TDengine 在黑格智能 3D 打印業(yè)務(wù)的應(yīng)用實踐

黑格, 設(shè)備中心小組

2024-01-16 /

小T導(dǎo)讀:自 2021 年我們正式使用 TDengine 至今已接近三年,現(xiàn)在 TDengine 已經(jīng)成熟應(yīng)用于我們多個項目當(dāng)中,憑借著強大的讀寫存儲能力,為我司多項業(yè)務(wù)的核心數(shù)據(jù)保駕護航。近期我們團隊剛好完成 TDengine 2.x 到 3.x 的數(shù)據(jù)遷移,借此機會將 TDengine 的使用/遷移經(jīng)驗與大家分享。

選型過程及業(yè)務(wù)背景

我司的主要業(yè)務(wù)之一就是基于 3D 打印技術(shù)給客戶提供整體化解決方案,其中一個核心場景是我們要持續(xù)追蹤設(shè)備的運行狀態(tài),存儲海量的設(shè)備運行數(shù)據(jù)。這是一個典型的物聯(lián)網(wǎng)系統(tǒng)的核心需求——以設(shè)備為維度,按照時間順序大批量寫入和查詢設(shè)備的各項數(shù)據(jù)。

這個業(yè)務(wù)場景非常適合時序數(shù)據(jù)庫(Time Series Database,TSDB),但市場上的時序數(shù)據(jù)庫存在著各種各樣的痛點:或是數(shù)據(jù)讀寫性能不佳;或是部署的復(fù)雜性高,或是難以維護。經(jīng)過多方考察對比后,我們發(fā)現(xiàn) TDengine 是最適合我們的選擇。

從 2.x 到 3.x,TDengine 在黑格智能 3D 打印業(yè)務(wù)的應(yīng)用實踐 - TDengine Database 時序數(shù)據(jù)庫

TDengine 遷移過程

為順利升級到 TDengine 3.x 版本,我們先把數(shù)據(jù)從 2.x 抽出寫入到了一個 3.x 版本的臨時集群,驗證無誤之后,再利用如下方案實現(xiàn)了無需停機、不影響業(yè)務(wù)寫入的 3.x 版本之間的數(shù)據(jù)庫遷移工作。過程如下:

a. 新增節(jié)點D\E\F:

CREATE DNODE "D";
CREATE DNODE "E";
CREATE DNODE "F";

b. 逐個刪除節(jié)點A\B\C(以 A 為例):

#刪除A節(jié)點MNODE角色
DROP MNODE ON DNODE A_DNODE_ID;

#添加D節(jié)點MNODE角色
CREATE MNODE ON DNODE D_DNODE_ID;

#刪除A節(jié)點,節(jié)點A刪除過程,節(jié)點A的數(shù)據(jù)會同步到接口D\E\F中
DROP DNODE A_DNODE_ID;

典型業(yè)務(wù)場景分享

由于一臺設(shè)備每天有數(shù)以萬計的數(shù)據(jù)需要存儲,世界各地范圍內(nèi)的設(shè)備匯集起來,便產(chǎn)生了海量的數(shù)據(jù)存儲和查詢需求。關(guān)于 TDengine ,我們主要有以下三個方向的應(yīng)用:

  • 在設(shè)備運行出現(xiàn)問題時,根據(jù)消息定位具體的問題;
  • 以設(shè)備長時間運行的數(shù)據(jù)作數(shù)據(jù)分析,解決設(shè)備運行存在的隱患;
  • 生成 BI 報表,展示設(shè)備各種傳感器最近一段時間的狀態(tài)。

從眾多的超級表中,我們?nèi)∫粋€百億級別的超級表來舉例說明 TDengine 的應(yīng)用過程,具體表結(jié)構(gòu)如下:

從 2.x 到 3.x,TDengine 在黑格智能 3D 打印業(yè)務(wù)的應(yīng)用實踐 - TDengine Database 時序數(shù)據(jù)庫

當(dāng)我們對這張設(shè)備消息表 s_mqtt 查詢 ‘2023-12-15 00:00’ 至 ‘2023-12-15 02:50:00’ 時間段的 ‘1011’ 類型,設(shè)備序列號為 ‘xxxxxxx’ 的所有消息內(nèi)容,可以看到,查詢結(jié)果是毫秒級返回的

select * from s_mqtt where ts>'2023-12-15 00:00:00.000' and ts<'2023-12-15 03:00:00.000' and device_sn='xx' and kind=1011 ;
從 2.x 到 3.x,TDengine 在黑格智能 3D 打印業(yè)務(wù)的應(yīng)用實踐 - TDengine Database 時序數(shù)據(jù)庫

TDengine 高效的寫入和讀取性能很好的滿足了我們頻繁寫入和讀取數(shù)據(jù)的迫切需要。而在存儲方面,壓縮率經(jīng)過計算在 10% 左右,也完全符合我們的存儲需求。

遇到的問題

在 2.x 升級到 3.x 的過程中,我們遇到了以下兩個比較棘手的問題,得到了 TDengine 官方技術(shù)團隊的技術(shù)講解和遠程排查問題等支持,在此衷心表達感謝。

1. vgroups 設(shè)置問題。TDengine 3.x 版本增加了 vgroups 參數(shù),代表了數(shù)據(jù)庫讀寫數(shù)據(jù)的一個并行度,合理的設(shè)置可以最大程度的激發(fā)讀寫性能。我們在測試環(huán)境測試時,發(fā)覺表的讀寫比 2.x 版本慢了好多,經(jīng) TDengine 技術(shù)團隊排查,發(fā)現(xiàn)我們只使用了默認的 2 個 vgroups,具體使用規(guī)則可以參考參考《體驗 TDengine 3.0 高性能的第一步,請學(xué)會控制建表策略》。

2. taosAdapter 無返回問題。在 TDengine 3.x 版本上線后,微服務(wù)通過 restful 方式連接 TDengine 時,taosAdapter 會出現(xiàn)無響應(yīng)但 taosd 服務(wù)正常的現(xiàn)象。這個問題我們自己排查了好久,后面尋求官方技術(shù)團隊的幫忙,經(jīng)過遠程排查服務(wù)器環(huán)境和日志分析,最后定位到是我們大量使用”show cluster alive”作為微服務(wù)監(jiān)聽語句的頻繁請求導(dǎo)致。隨后官方建議我們更換”select 1″作為健康檢查語句,順利解決了這個問題。后續(xù)官方也優(yōu)化了”show cluster alive”這個命令的實現(xiàn),避免類似情況出現(xiàn)。

未來展望

使用 TDengine 三年來,TDengine 在我們的物聯(lián)網(wǎng)業(yè)務(wù)、設(shè)備 BI 數(shù)據(jù)展示等模塊作用巨大,它直觀地展示了設(shè)備運行狀況,幫助我們快速定位和解決設(shè)備問題。接下來,我們將會繼續(xù)探索 TDengine 在智能設(shè)備打印、智能設(shè)備運維等方面應(yīng)用與實踐。祝 TDengine 越來越好。