加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

用時(shí)序數(shù)據(jù)庫 DolphinDB 搭建一套輕量化工業(yè)試驗(yàn)平臺解決方案

02/29 08:23
1533
閱讀需 18 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?DolphinDB 作為集成了高容量高速度流數(shù)據(jù)分析系統(tǒng)和強(qiáng)大編程語言的一站式解決方案,旨在為用戶提供快速存儲(chǔ)、檢索、分析和計(jì)算龐大的結(jié)構(gòu)化數(shù)據(jù)服務(wù)。本文將提供一個(gè)輕量化的工業(yè)試驗(yàn)平臺數(shù)據(jù)處理解決方案,快速簡單地實(shí)現(xiàn)海量數(shù)據(jù)采集、存儲(chǔ)、處理和分析,幫助企業(yè)提高產(chǎn)品的質(zhì)量和競爭力。

  1. ? ?? 場景介紹

? ? ??工業(yè)試驗(yàn)平臺在工業(yè)測試領(lǐng)域廣泛應(yīng)用,它是一種集成了各種傳感器數(shù)據(jù)采集器、控制器計(jì)算機(jī)等設(shè)備的系統(tǒng),可以提供模擬高速、高溫、高濕、高壓等各種從簡單機(jī)械到復(fù)雜化學(xué)、生物的工業(yè)測試環(huán)境,并能對各種類型的產(chǎn)品進(jìn)行全面、準(zhǔn)確、可靠的測試。其典型應(yīng)用場景包括汽車工業(yè)、航空航天、能源電力、醫(yī)療化工等領(lǐng)域。

? ? ??1.1 場景特點(diǎn)

? ? ??工業(yè)試驗(yàn)平臺的數(shù)據(jù)存儲(chǔ)與處理面臨多方面的挑戰(zhàn):

  • ? ??來自不同設(shè)備、不同頻率的多源異構(gòu)數(shù)據(jù)接入與存儲(chǔ)
  • ? ??平臺需要對所有可能影響結(jié)果的傳感器和儀器設(shè)備進(jìn)行可用性監(jiān)控、故障診斷和健康管理,以保障試驗(yàn)結(jié)果的準(zhǔn)確性。
  • ? ??考慮到效率和成本,試驗(yàn)通常在短時(shí)間內(nèi)進(jìn)行,但會(huì)生成海量的測試數(shù)據(jù),因此系統(tǒng)需要支持千萬點(diǎn)每秒的高頻寫入。
  • ? ??最終試驗(yàn)結(jié)果通常是多維度的,需要系統(tǒng)具備復(fù)雜的計(jì)算和分析能力。以航空器、車輛載具的故障模式影響及危害度分析(FMECA)為例,試驗(yàn)結(jié)果可能包括故障模式清單、危害性矩陣圖以及 FMEA/CA 表等。因此,流式計(jì)算和復(fù)雜指標(biāo)計(jì)算的能力對于平臺至關(guān)重要。

? ? ??1.2 解決方案

? ? ??上述工業(yè)試驗(yàn)平臺在數(shù)據(jù)存儲(chǔ)與處理時(shí)所面臨的問題,可由 DolphinDB 的數(shù)據(jù)接入、分布式存儲(chǔ)和流計(jì)算功能為支撐,搭建以下解決方案:

  • ? ??多源異構(gòu)數(shù)據(jù)融合:依托于豐富的插件生態(tài),DolphinDB 既支持 Kafka、MQTT、MySQL、Oracle 等外部數(shù)據(jù)源的寫入,也支持批量文件寫入,實(shí)現(xiàn)了不同頻率、類型設(shè)備的數(shù)據(jù)寫入與融合。
  • ? ??實(shí)時(shí)異常檢測DolphinDB 實(shí)時(shí)計(jì)算引擎用簡單表達(dá)式定義復(fù)雜異常規(guī)則,實(shí)時(shí)篩查狀態(tài)異常數(shù)據(jù),保障設(shè)備的正常運(yùn)轉(zhuǎn)。
  • ? ??實(shí)時(shí)計(jì)算平臺:DolphinDB 內(nèi)置豐富的函數(shù)和流計(jì)算引擎,可完成時(shí)序數(shù)據(jù)的 ETL、多維度聚合分析和計(jì)算、實(shí)時(shí)預(yù)警和機(jī)器學(xué)習(xí)等實(shí)時(shí)計(jì)算任務(wù)。
  1. ? ?? 方案實(shí)施

? ? ??本章將通過 DolphinDB 快速簡單地實(shí)現(xiàn)海量數(shù)據(jù)的采集、存儲(chǔ)、處理和分析。首先介紹 DolphinDB 的安裝和部署,講解數(shù)據(jù)建模的過程,接著使用 DolphinDB 實(shí)現(xiàn)數(shù)據(jù)回放、狀態(tài)保持計(jì)算、波形錄制等多種功能。

? ? ??2.1 安裝部署

? ? ??1.下載官網(wǎng)社區(qū)最新版,建議 2.00.10 及以上版本。下載鏈接:DolphinDB 下載

? ? ??2.Windows 操作系統(tǒng)下的解壓路徑不能包含空格,避免安裝到 Program Files 路徑下。詳細(xì)步驟可以參考官網(wǎng)教程:單節(jié)點(diǎn)部署與升級

? ? ??3.本次測試使用免費(fèi)的社區(qū)版,企業(yè)版 license?可申請免費(fèi)試用。

? ? ??安裝及測試過程中,有任何問題,可添加小助手(dolphindb1)咨詢。

? ? ??2.2 數(shù)據(jù)建模

? ? ??在該案例中,1臺設(shè)備有5000個(gè)測點(diǎn),每個(gè)測點(diǎn)的采集頻率為50Hz(即每秒采集50次)。我們使用寬表進(jìn)行建模,它包含5002個(gè)字段,分別為時(shí)間戳、設(shè)備號和測點(diǎn)1到測點(diǎn)5000。

? ? ??首先建立一個(gè)組合分區(qū)的分布式數(shù)據(jù)庫,以小時(shí)和設(shè)備號哈希值為組合分區(qū)依據(jù),通過時(shí)間戳和設(shè)備號進(jìn)行分區(qū)索引。

? ? ??第一步:建庫

? ? ??在此處,我們采用時(shí)間分區(qū)和哈希分區(qū)組合的方式進(jìn)行數(shù)據(jù)切分和建模。

? ? ??具體而言,當(dāng)設(shè)備產(chǎn)生的數(shù)據(jù)量在每小時(shí)、每天、每月、每年等時(shí)間間隔內(nèi)持續(xù)穩(wěn)定在100MB到1GB的最佳實(shí)踐范圍內(nèi)時(shí),我們僅使用時(shí)間值作為分區(qū)依據(jù)進(jìn)行數(shù)據(jù)建模。如果時(shí)間分區(qū)的大小超過1GB,則可以根據(jù)哈希值來建立第二級哈希分區(qū)。哈希分區(qū)將字符串或數(shù)字等數(shù)據(jù)類型轉(zhuǎn)換成哈希值,并將相同哈希值的數(shù)據(jù)分配到同一分區(qū)內(nèi),以實(shí)現(xiàn)數(shù)據(jù)切分。簡單來說,如果我們希望將第一級分區(qū)切分成10份,則第二級分區(qū)可以設(shè)置為哈希5分區(qū)。分區(qū)教程可見:DolphinDB 分區(qū)教程

? ? ??在本案例中,每秒會(huì)生成50條記錄,即每小時(shí)將生成180,000條記錄。因此,每小時(shí)的數(shù)據(jù)量大小為3.35GB。對于每天產(chǎn)生的數(shù)據(jù),我們會(huì)首先進(jìn)行小時(shí)分區(qū)切分,然后對于每個(gè)小時(shí)的數(shù)據(jù),會(huì)基于設(shè)備id的哈希值再進(jìn)行切分。最終,可以通過時(shí)間戳和設(shè)備id進(jìn)行分區(qū)索引。

? ? ??第二步:建表

? ? ??表的信息如下:

? ? ??第三步:數(shù)據(jù)接入

? ? ??DolphinDB 支持對接消息中間件和標(biāo)準(zhǔn)協(xié)議實(shí)時(shí)接入試驗(yàn)平臺數(shù)據(jù),以用于實(shí)時(shí)監(jiān)控預(yù)警等場景。也支持批量導(dǎo)入文件,在試驗(yàn)完成后導(dǎo)入數(shù)據(jù)進(jìn)行分析,用于不需要實(shí)時(shí)監(jiān)控的場景,以減輕系統(tǒng)壓力。詳情見DolphinDB 數(shù)據(jù)導(dǎo)入概述DolphinDB 插件消息中間件

? ? ??在本教程中,我們使用自定義函數(shù)模擬設(shè)備 d001 實(shí)時(shí)生成一小時(shí)數(shù)據(jù),共180,000條數(shù)據(jù),將生成的數(shù)據(jù)實(shí)時(shí)寫入 DolphinDB 數(shù)據(jù)庫中,并通過數(shù)據(jù)回放,展示實(shí)時(shí)流計(jì)算功能。詳細(xì)的實(shí)現(xiàn)過程請參考文章末尾的完整示例代碼。

? ? ??2.3 功能實(shí)現(xiàn)

? ? ??DolphinDB 作為集成了高容量高速度流數(shù)據(jù)分析系統(tǒng)和強(qiáng)大編程語言的一站式解決方案,旨在為用戶提供快速存儲(chǔ)、檢索、分析和計(jì)算龐大的結(jié)構(gòu)化數(shù)據(jù)服務(wù)。在以下內(nèi)容中,我們將介紹 DolphinDB 在 SQL 查詢、數(shù)據(jù)分析、數(shù)據(jù)導(dǎo)出和備份、數(shù)據(jù)導(dǎo)入和備份恢復(fù)、關(guān)系模型、數(shù)據(jù)回放、波形錄制、存儲(chǔ)過程、狀態(tài)保持計(jì)算、時(shí)間序列聚合引擎和磁盤查詢等方面所提供的豐富功能。

? ? ??以下各節(jié)中的代碼僅展示了實(shí)現(xiàn)各項(xiàng)功能的核心語句,詳細(xì)的實(shí)現(xiàn)過程請參考文章末尾的完整示例代碼。有關(guān) DolphinDB 的詳細(xì)文檔,請參閱?DolphinDB 文檔中心。

? ? ??2.3.1 SQL查詢

? ? ??DolphinDB 具有豐富而多樣化的查詢功能,其中包括總數(shù)查詢、條件查詢、單點(diǎn)查詢和范圍查詢等多種功能,可以滿足客戶的不同查詢需求。并且,DolphinDB 能夠輕松地處理海量數(shù)據(jù),實(shí)現(xiàn)毫秒級的查詢響應(yīng)。

? ? ??2.3.2 數(shù)據(jù)分析(降采樣,滑動(dòng)平均計(jì)算)

? ? ??降采樣是指將數(shù)字信號的采樣率降低的過程,即通過去除部分采樣點(diǎn)來減少信號的采樣率。降采樣通常用于降低信號的復(fù)雜度,以便減少計(jì)算量和存儲(chǔ)空間。DolphinDB 為用戶提供了 bar 函數(shù),能夠輕松實(shí)現(xiàn)降采樣過程,幫助用戶有效管理大規(guī)模數(shù)據(jù)。

? ? ??滑動(dòng)平均,也叫做指數(shù)加權(quán)平均,可以用來估計(jì)變量的局部均值,使得變量的更新與一段時(shí)間內(nèi)的歷史取值有關(guān)。通過 DolphinDB 提供的 mavg 函數(shù),用戶能夠使用一條語句輕松實(shí)現(xiàn)滑動(dòng)平均的計(jì)算,這極大地提高了數(shù)據(jù)的處理效率。

降采樣圖像

滑動(dòng)平均圖像

? ? ??2.3.3 數(shù)據(jù)導(dǎo)出和導(dǎo)入

? ? ??為了方便用戶在不同數(shù)據(jù)源和目標(biāo)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換和傳輸,DolphinDB 提供了多種數(shù)據(jù)導(dǎo)入導(dǎo)出方式。在數(shù)據(jù)導(dǎo)出方面,DolphinDB 支持兩種方式:使用 saveTable 將一個(gè)表對象以二進(jìn)制形式保存到文件中,或使用saveText將數(shù)據(jù)保存到文本文件中。

? ? ??DolphinDB 還提供了多種靈活的數(shù)據(jù)導(dǎo)入方法,以幫助用戶輕松地從多個(gè)數(shù)據(jù)源導(dǎo)入海量數(shù)據(jù)。對于本地?cái)?shù)據(jù),DolphinDB 提供了兩種方式:CSV 文本文件導(dǎo)入和二進(jìn)制文件導(dǎo)入。對于外部數(shù)據(jù),DolphinDB 支持多種方式:二進(jìn)制文件導(dǎo)入,ODBC、MySQL、MongoDB、HBase 等第三方數(shù)據(jù)庫導(dǎo)入,還支持連接消息中間件以發(fā)布和訂閱消息。

? ? ??2.3.4 數(shù)據(jù)備份和備份恢復(fù)

? ? ??DolphinDB 提供了簡單易用的數(shù)據(jù)備份和恢復(fù)功能,幫助用戶保護(hù)重要數(shù)據(jù)。使用 DolphinDB 編程語言,用戶可以自定義所需的備份策略和恢復(fù)方案。DolphinDB 以分區(qū)為單位進(jìn)行數(shù)據(jù)備份,每個(gè)分區(qū)備份為一個(gè)數(shù)據(jù)文件。用戶可以使用 backup 函數(shù)指定要備份的數(shù)據(jù)庫、表或分區(qū),以及備份文件的路徑。使用 migrate 函數(shù)可以恢復(fù)數(shù)據(jù)庫中已備份的數(shù)據(jù)。

? ? ??2.3.5 關(guān)系模型

? ? ??DolphinDB 對關(guān)系模型的支持包括以下幾點(diǎn):

  • ? ??除了包含時(shí)間戳的時(shí)序數(shù)據(jù),還支持存儲(chǔ)和處理不含時(shí)間戳的關(guān)系型數(shù)據(jù)
  • ? ??支持標(biāo)準(zhǔn)的 SQL 語言。包括常用的 select、insert、update 和 delete 等操作,group by 和 order by 等子局,還擴(kuò)展了context by 和 pivot by 以擴(kuò)展數(shù)據(jù)的分析能力
  • ? ??支持復(fù)雜的多表關(guān)聯(lián),包括 inner join、left join、left semijoin 和 full join,已經(jīng)拓展的 asof join 和 window join以便用戶能夠方便地將不同數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行關(guān)聯(lián)和整合。

? ? ??這些功能的支持使得 DolphinDB 能夠更好地滿足用戶對于數(shù)據(jù)處理和分析的需求,提高工作效率和數(shù)據(jù)處理的準(zhǔn)確性。

? ? ??2.3.6 數(shù)據(jù)回放

? ? ??DolphinDB 提供了歷史數(shù)據(jù)回放的功能。該功能可以幫助用戶更加方便地發(fā)現(xiàn)歷史數(shù)據(jù)中的異常,從而有助于排查試驗(yàn)故障。具體實(shí)現(xiàn)方式是通過 replay 函數(shù),將內(nèi)存表或數(shù)據(jù)庫表中的記錄按照一定速率寫入到目標(biāo)表中,以模擬實(shí)時(shí)數(shù)據(jù)流不斷注入目標(biāo)表的場景。

? ? ??replay 函數(shù)支持單表回放和多表回放兩種模式。在最基礎(chǔ)的單表回放模式中,一個(gè)輸入表將被回放至一個(gè)具有相同表結(jié)構(gòu)的目標(biāo)表中。而在多表回放模式中,多個(gè)輸入表將被回放至多個(gè)目標(biāo)表中,且輸入表與目標(biāo)表一一對應(yīng)。

? ? ??通過 DolphinDB 的歷史數(shù)據(jù)回放功能,用戶可以更加靈活地進(jìn)行數(shù)據(jù)分析,并且能夠更加快速地定位數(shù)據(jù)異常問題。這一功能的應(yīng)用范圍非常廣泛,可以被廣泛應(yīng)用于各種數(shù)據(jù)分析場景中。

數(shù)據(jù)回放

? ? ??2.3.7 波形錄制

? ? ??錄制某段波形數(shù)據(jù)在工業(yè)場景中是一項(xiàng)很常見的需求,錄制關(guān)鍵數(shù)據(jù)可以提高故障排查的效率。例如,當(dāng)某個(gè)指標(biāo)出現(xiàn)20%的幅度偏移時(shí),記錄前10秒和后10秒內(nèi)的數(shù)據(jù),自動(dòng)保存?zhèn)洳椤T?DolphinDB 中能通過自定義函數(shù)輕松實(shí)現(xiàn)波形錄制功能,并且可以根據(jù)用戶的需求進(jìn)行個(gè)性化功能定制。

? ? ??2.3.8 存儲(chǔ)過程

? ? ??2.3.9 狀態(tài)保持計(jì)算

? ? ??在工業(yè)場景中,統(tǒng)計(jì)設(shè)備使用時(shí)長的需求十分常見。通過對設(shè)備使用時(shí)長的統(tǒng)計(jì),可以實(shí)現(xiàn)設(shè)備保養(yǎng)預(yù)警和設(shè)備生命周期管理,同時(shí)也能夠幫助運(yùn)維人員更好地進(jìn)行設(shè)備維護(hù),從而延長設(shè)備的使用壽命。DolphinDB提供了統(tǒng)計(jì)設(shè)備使用時(shí)長的功能,可以為運(yùn)維人員制定維保計(jì)劃提供數(shù)據(jù)支持,實(shí)現(xiàn)預(yù)防性維護(hù)。

? ? ??具體實(shí)現(xiàn)過程中,設(shè)備信息表會(huì)記錄不同設(shè)備的開關(guān)機(jī)時(shí)間,表中包含時(shí)間戳、設(shè)備ID和設(shè)備狀態(tài)三個(gè)字段。統(tǒng)計(jì)設(shè)備使用時(shí)長需要計(jì)算設(shè)備的關(guān)機(jī)時(shí)間和開機(jī)時(shí)間之差,并將差值進(jìn)行總和。

? ? ??DolphinDB 使用列式存儲(chǔ),可以輕松地計(jì)算出每列相鄰元素之間的差值,因此可以快速計(jì)算出設(shè)備使用時(shí)長。相比之下,MySQL 和 PostgreSQL 等傳統(tǒng)的關(guān)系數(shù)據(jù)庫使用行式存儲(chǔ),需要迭代才能計(jì)算出每列相鄰元素之間的差值,這種方法繁瑣復(fù)雜且耗時(shí)長。

? ? ??2.3.10 時(shí)間序列聚合引擎

? ? ??DolphinDB 數(shù)據(jù)庫功能強(qiáng)大,可以在實(shí)時(shí)數(shù)據(jù)流計(jì)算場景中高效地進(jìn)行計(jì)算。用戶可以通過簡單的表達(dá)式實(shí)現(xiàn)復(fù)雜的流計(jì)算。DolphinDB 的流式數(shù)據(jù)處理引擎能夠?qū)崿F(xiàn)低延遲高吞吐的流式數(shù)據(jù)分析,并提供了十種不同的引擎以滿足不同的計(jì)算需求。此外,DolphinDB 數(shù)據(jù)庫支持多種數(shù)據(jù)終端輸出,如共享內(nèi)存表、流數(shù)據(jù)表、消息中間件、數(shù)據(jù)庫和 API 等。在計(jì)算復(fù)雜表達(dá)式時(shí),用戶還可以通過級聯(lián)多個(gè)流數(shù)據(jù)引擎來實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)流拓?fù)?。此外,DolphinDB 數(shù)據(jù)庫還提供了 createTimeSeriesEngine 函數(shù),可以進(jìn)一步提高計(jì)算效率,實(shí)現(xiàn)基于時(shí)間的滑動(dòng)窗口或滾動(dòng)窗口進(jìn)行實(shí)時(shí)計(jì)算。

  1. ? ?? 性能測試

? ? ??3.1 測試環(huán)境

? ? ??本文將通過 DolphinDB 數(shù)據(jù)庫,以腳本的形式實(shí)現(xiàn)大型試驗(yàn)平臺的以上功能。

? ? ??部署環(huán)境如下:

? ? ??模擬一次持續(xù) 1 小時(shí)的試驗(yàn)數(shù)據(jù)。

? ? ??3.2 測試結(jié)果

? ? ??我們對 DolphinDB 的性能進(jìn)行了測試,測試結(jié)果如下表。從表格中可以看出,在處理180,000條數(shù)據(jù)時(shí),DolphinDB 的查詢響應(yīng)時(shí)間均在毫秒級別。這表明 DolphinDB 在處理大規(guī)模數(shù)據(jù)時(shí)表現(xiàn)出了出色的性能。

  1. ? ?? 總結(jié)

? ? ??以上為 DolphinDB 在工業(yè)試驗(yàn)平臺的簡單應(yīng)用,可見 DolphinDB 特別適用于對速度要求極高的低延時(shí)或?qū)崟r(shí)性任務(wù),例如基于海量歷史數(shù)據(jù)的交互式查詢與計(jì)算、實(shí)時(shí)數(shù)據(jù)處理與監(jiān)控等。當(dāng)然上述內(nèi)容僅僅是一個(gè)簡單的 DolphinDB 使用案例,DolphinDB 除了上述簡單的存儲(chǔ)、分析之外,還能支持更加復(fù)雜的數(shù)據(jù)處理和業(yè)務(wù)邏輯限于篇幅,本文不作過多介紹。感興趣的用戶可查閱?DolphinDB 教程?進(jìn)行更加深入的了解。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
EPM2210F256C5N 1 Altera Corporation Flash PLD, 11.2ns, 1700-Cell, CMOS, PBGA256, 17 X 17 MM, 1 MM PITCH, LEAD FREE, FBGA-256
$423.74 查看
M1A3P250-FG144I 1 Microsemi FPGA & SoC Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, 6144-Cell, CMOS, PBGA144, 13X 13 MM, 1.45 MM HEIGHT, 1 MM PITCH, FBGA-144
暫無數(shù)據(jù) 查看
A3P250-FG144 1 Microsemi FPGA & SoC Field Programmable Gate Array, 250000 Gates, CMOS, PBGA144, 1 MM PITCH, FBGA-144
$21.67 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜