物聯(lián)網(wǎng)的發(fā)展為智能安防和自動(dòng)化監控帶來(lái)了更多便利,同時(shí),新型城鎮建設、智慧城市與智慧社區的發(fā)展也為門(mén)禁管理等安防問(wèn)題智能化提出了更高的要求。在智能化發(fā)展的背景下,門(mén)禁成為一套集成了訪(fǎng)客、考勤、消費、巡更、梯控等更多功能的全面便捷的系統安全應用,隨著(zhù)門(mén)禁系統應用愈發(fā)廣泛,對海量數據的實(shí)時(shí)快速處理也成為了日益重要的問(wèn)題。
作為一款高性能分布式時(shí)序數據庫,DolphinDB 提供了流數據表和流計算引擎用于實(shí)時(shí)數據處理,為智能安防提供了有力支持。今天,我們將介紹如何通過(guò)流計算引擎多級級聯(lián)實(shí)現對門(mén)禁設備異常狀態(tài)的實(shí)時(shí)監測,基于 DolphinDB 流數據處理框架,為大家提供一套實(shí)時(shí)監測門(mén)禁設備異常狀態(tài)的低延時(shí)解決方案。
常見(jiàn)的智能安防系統一般包含有監控、報警、門(mén)禁和遠程控制4個(gè)主要功能,可以單獨運行也可統一管理。而門(mén)禁則是整個(gè)智能安防系統中的基礎應用,同時(shí)也關(guān)系到物聯(lián)網(wǎng)領(lǐng)域中的公共安全、城市管理、智能家居等多個(gè)方面。首先,我們先來(lái)了解一下門(mén)禁系統的具體應用場(chǎng)景與功能設置:
1.門(mén)禁、報警綜合管理系統服務(wù)器:提供集中管理及監控、輸出、聯(lián)動(dòng)功能。
2.門(mén)禁工作站:門(mén)禁工作站提供功能設置及事件監控。
3.門(mén)禁控制器:門(mén)禁管理系統的核心部分,直接管理及控制相關(guān)設備,具有存儲功能,可存放持卡人資料及各種事件記錄。
4.讀卡器:工作于射頻方式,采集感應卡的數據傳輸到門(mén)禁控制器,以便控制器進(jìn)行各種管理及相應的控制。
5.電鎖:電子方式開(kāi)關(guān),實(shí)現開(kāi)門(mén)及鎖門(mén),由門(mén)禁控制器直接控制。
6.開(kāi)門(mén)按鈕:提供便利的開(kāi)門(mén)方式。
7.門(mén)磁:檢測門(mén)的狀態(tài)信息,然后傳輸到控制器。
8.報警輸入輸出設備:為加強系統的保安,可以將輸入輸出設備接入門(mén)禁控器的接口,實(shí)現系統的報警及聯(lián)動(dòng)。
工業(yè)中心門(mén)禁管理系統結構
上圖展示了一個(gè)常見(jiàn)的門(mén)禁管理系統結構,報警系統是安防及門(mén)禁系統中保障安全問(wèn)題的重要功能組件及環(huán)節,也可以實(shí)現與其他監控設備的聯(lián)防聯(lián)控。
1. 設計思路與方案
隨著(zhù)接入智能門(mén)禁系統的終端不斷增多,如何對海量數據進(jìn)行實(shí)時(shí)高效計算、及時(shí)反饋報警消息,成為智能門(mén)禁及智慧社區建設的關(guān)鍵問(wèn)題。保持門(mén)禁正常關(guān)閉狀態(tài)是保證樓宇內居民安全的基礎需求之一,假定有一個(gè)監控系統,對所有門(mén)禁設備每5秒鐘采集1次數據,同時(shí)開(kāi)門(mén)或關(guān)門(mén)的事件會(huì )主動(dòng)上報數據,本案例中的門(mén)禁異常狀態(tài)檢測需求是:開(kāi)門(mén)狀態(tài)連續存在超過(guò)5分鐘報警。首先需要對采集數據進(jìn)行去重處理,再檢測出數據中狀態(tài)持續超時(shí)的記錄。此時(shí)的記錄會(huì )包括所有狀態(tài)持續超過(guò)5分鐘的數據,因此仍需將數據接入下一級引擎去除關(guān)門(mén)告警,只保留開(kāi)門(mén)狀態(tài)超時(shí)報警。采用 DolphinDB 響應式狀態(tài)引擎完成過(guò)濾篩選數據的任務(wù),并通過(guò)會(huì )話(huà)窗口引擎檢測超時(shí)數據。將三個(gè)引擎級聯(lián),實(shí)現檢測異常門(mén)禁狀態(tài)(開(kāi)門(mén)時(shí)間大于5分鐘)的流水線(xiàn)處理模式。
門(mén)禁異常狀態(tài)數據處理流程
2. 內置流計算引擎監測門(mén)禁異常狀態(tài)
DolphinDB 內置了響應式狀態(tài)引擎和會(huì )話(huà)窗口引擎實(shí)現門(mén)禁異常狀態(tài)的實(shí)時(shí)監測。
響應式狀態(tài)引擎(createReactiveStateEngine):
·有兩種因子計算:無(wú)狀態(tài)因子和有狀態(tài)因子。
·無(wú)狀態(tài)因子只依賴(lài)最新數據,不需要歷史數據。
·有狀態(tài)因子需要最新數據和歷史數據,并會(huì )更新?tīng)顟B(tài)。
·每輸入一條數據都將觸發(fā)一條結果輸出,輸入和輸出數據量一致。
·算子中只能包含向量函數,對于常見(jiàn)狀態(tài)算子進(jìn)行了優(yōu)化,大幅提高計算效率。
會(huì )話(huà)窗口引擎(creatSessionWindowEngine):
·適用于物聯(lián)網(wǎng)場(chǎng)景,解決設備在線(xiàn)時(shí)間不均勻的問(wèn)題。
·窗口不按固定頻率生成,窗口長(cháng)度也不是固定的。
·以第一條數據的時(shí)間戳作為第一個(gè)窗口的起始時(shí)間。
·若在指定等待時(shí)間內未收到新數據,則當前窗口結束。
·解決滑動(dòng)窗口計算中無(wú)數據窗口增加不必要計算開(kāi)銷(xiāo)的問(wèn)題。
3.?實(shí)現步驟
接下來(lái),我們一起來(lái)詳細了解下如何通過(guò) DolphinDB 實(shí)現多級引擎級聯(lián)檢測異常門(mén)禁狀態(tài)的流水線(xiàn)處理模式。
3.1 定義并共享輸入輸出流數據表
首先定義一個(gè)用于實(shí)時(shí)接收門(mén)禁監控設備數據的流數據表,表結構共包含七列,通過(guò)?enableTableShareAndPersistence函數共享流數據表并持久化到硬盤(pán)上。其次定義異常狀態(tài)流數據表,用于響應式狀態(tài)引擎的輸出,并將其持久化到磁盤(pán)上。
3.2?創(chuàng )建響應式狀態(tài)引擎過(guò)濾重復數據
響應式狀態(tài)引擎會(huì )對輸入的每一條消息做出計算響應,產(chǎn)生一條記錄作為結果,可以啟用過(guò)濾條件保證只有滿(mǎn)足條件的結果才會(huì )輸出。在本案例中,只有事件碼有變化的數據才會(huì )被輸出到設置的輸出表中。DolphinDB 內置的流計算引擎均實(shí)現了數據表的接口,因此多個(gè)引擎流水線(xiàn)處理變得異常簡(jiǎn)單,只要將后一個(gè)引擎作為前一個(gè)引擎的輸出即可。
3.3?通過(guò)級聯(lián)會(huì )話(huà)窗口引擎檢測狀態(tài)超時(shí)數據
首先創(chuàng )建一張內存表,為響應式狀態(tài)引擎提供輸入的表結構,與上一級引擎輸出表的結構一致。在會(huì )話(huà)窗口引擎中,設置分組列??keyColumn??為門(mén)號??doorNum?,時(shí)間列??timeColumn??為時(shí)間??eventDate?。檢測需求是五分鐘內無(wú)數據報警,因此??sessionGap??為300(秒),表示收到某條數據后經(jīng)過(guò)該時(shí)間的等待仍無(wú)新數據到來(lái),就終止當前窗口。?metrics??設為??last(doorEventCode)?,即返回窗口內的最后一條記錄數據。會(huì )話(huà)窗口引擎的輸入數據為上一級響應式狀態(tài)引擎的輸出,輸出作為下一級響應式狀態(tài)引擎的輸入。
3.4?響應式狀態(tài)引擎過(guò)濾關(guān)門(mén)告警
上級會(huì )話(huà)窗口引擎獲取到的數據包括開(kāi)門(mén)和關(guān)門(mén)超過(guò)5分鐘的數據,因此需要再通過(guò)響應式狀態(tài)引擎過(guò)濾掉關(guān)門(mén)狀態(tài)超時(shí)數據,只保留開(kāi)門(mén)告警。
3.5?訂閱流數據
過(guò)濾了關(guān)門(mén)告警數據后,訂閱流數據表??doorRecord??并把收到的流數據寫(xiě)入上述會(huì )話(huà)窗口引擎。
3.6?從 MQTT 服務(wù)器接收數據
DolphinDB 提供了 MQTT 插件用于訂閱 MQTT 服務(wù)器的數據,在訂閱時(shí)需要數據格式解析函數,目前插件提供了??json??和??csv??格式的解析函數,本例使用??mqtt::createJsonParser??解析??json??格式數據。隨著(zhù)網(wǎng)絡(luò )與數字技術(shù)飛速發(fā)展,門(mén)禁系統早已不再是單純的門(mén)道及鑰匙管理,而是逐漸演變成為一套完整的出入門(mén)禁安全管理系統,集微機自動(dòng)識別技術(shù)和現代安全管理措施為一體。DolphinDB 提供了一種實(shí)時(shí)監測門(mén)禁設備異常狀態(tài)的低延時(shí)解決方案,實(shí)現了會(huì )話(huà)窗口引擎和響應式狀態(tài)引擎級聯(lián),降低開(kāi)發(fā)難度,有效提升海量數據的實(shí)時(shí)計算效率,滿(mǎn)足了門(mén)禁系統智能化的計算需求。
以上是基于 DolphinDB 流數據處理框架進(jìn)行引擎級聯(lián)監測門(mén)禁異常狀態(tài)的完整方案,想知道詳細實(shí)現步驟并自己動(dòng)手模擬驗證?歡迎關(guān)注公眾號【DolphinDB 物聯(lián)網(wǎng)】深入了解。
相關(guān)稿件