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

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

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

2024-01-16 /

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

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

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

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

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

TDengine 遷移過程

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

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

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

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

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

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

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

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

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

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

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

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

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

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)用實(shí)踐 - TDengine Database 時(shí)序數(shù)據(jù)庫

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

遇到的問題

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

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

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

未來展望

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