實時數(shù)據(jù)處理與存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種實時數(shù)據(jù)處理系統(tǒng),基于構建在TCP或UDP傳輸協(xié)議之上的消息隊列數(shù)據(jù)傳輸通道,通過Pub/Sub的消息隊列主題模式,實現(xiàn)數(shù)據(jù)在傳輸過程中的數(shù)據(jù)過濾、處理和條件存儲。本發(fā)明所涉及系統(tǒng)提供了一種靈活的、可動態(tài)部署的、可插拔的實時數(shù)據(jù)處理框架,便于針對不同的應用環(huán)境和需求,快速部署和實現(xiàn)相應的數(shù)據(jù)處理系統(tǒng),使得易于將服務云化,變得可伸縮、可擴展,提高計算資源的使用效率和縮短服務開發(fā)與部署時間。
【專利說明】
實時數(shù)據(jù)處理與存儲系統(tǒng)
技術領域
[0001]本發(fā)明涉及物聯(lián)網(wǎng)、大數(shù)據(jù)技術領域。具體關于物聯(lián)網(wǎng)的數(shù)據(jù)采集、實時處理和存儲技術。
【背景技術】
[0002]大數(shù)據(jù)一般定義為一種規(guī)模大到在獲取、存儲、管理、分析方面大大超出了傳統(tǒng)數(shù)據(jù)庫軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉、多樣的數(shù)據(jù)類型和價值密度低等四大特征。
[0003]大數(shù)據(jù)技術的戰(zhàn)略意義不在于掌握龐大的數(shù)據(jù)信息,而在于對這些含有意義的數(shù)據(jù)進行專業(yè)化處理。換而言之,如果把大數(shù)據(jù)比作一種產(chǎn)業(yè),那么這種產(chǎn)業(yè)實現(xiàn)盈利的關鍵,在于提高對數(shù)據(jù)的“加工能力”,通過“加工”實現(xiàn)數(shù)據(jù)的“增值”和構建商業(yè)模式。
[0004]從技術上看,大數(shù)據(jù)與云計算的關系就像一枚硬幣的正反面一樣密不可分。大數(shù)據(jù)必然無法用單臺的計算機進行處理,必須采用分布式架構。它的特色在于對海量數(shù)據(jù)進行分布式數(shù)據(jù)挖掘。但它必須依托云計算的分布式處理、分布式數(shù)據(jù)庫和云存儲、虛擬化技術。而實時計算或者說實時數(shù)據(jù)處理是大數(shù)據(jù)應用的一個基礎環(huán)節(jié)和關鍵技術,是實現(xiàn)基于數(shù)據(jù)的快速響應、快速決策的關鍵。
[0005]實時計算一般都是針對海量數(shù)據(jù)進行的,一般要求為秒級。實時計算主要分為兩塊:數(shù)據(jù)的實時入庫、數(shù)據(jù)的實時處理?;ヂ?lián)網(wǎng)領域的實時計算一般都是針對海量數(shù)據(jù)進行的,除了像非實時計算的需求(如計算結果準確)以外,實時計算最重要的一個需求是能夠?qū)崟r響應計算結果,一般要求為秒級。
[0006]實時數(shù)據(jù)處理的應用場景一般包括:
[0007]I)數(shù)據(jù)源是實時的不間斷的,要求用戶的響應時間也是實時的(比如對于大型網(wǎng)站的流式數(shù)據(jù):網(wǎng)站的訪問PV/UV、用戶訪問了什么內(nèi)容、搜索了什么內(nèi)容等,實時的數(shù)據(jù)計算和分析可以動態(tài)實時地刷新用戶訪問數(shù)據(jù),展示網(wǎng)站實時流量的變化情況,分析每天各小時的流量和用戶分布情況)
[0008]2)數(shù)據(jù)量大且無法或沒必要預計,但要求對用戶的響應時間是實時的。比如某地區(qū)分布的大量的雨量傳感器,由于雨量達到某閾值,同時發(fā)出告警。
[0009]3)服務日志流,工業(yè)或網(wǎng)絡系統(tǒng)在不間斷的運行過程中產(chǎn)生的各種操作數(shù)據(jù)和運維數(shù)據(jù),并需要基于這些日志數(shù)據(jù)對系統(tǒng)進行不間斷的實時監(jiān)控和分析。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的是充分利用基于Pub/Sub消息隊列消息傳輸模式的數(shù)據(jù)系統(tǒng)架構設計,優(yōu)化數(shù)據(jù)的傳輸、處理和存儲模式,實現(xiàn)實時、高效、靈活、可擴展的數(shù)據(jù)處理、存儲及應用系統(tǒng),為物聯(lián)網(wǎng)、大數(shù)據(jù)應用和服務提供開發(fā)框架與基礎能力,而提供實時數(shù)據(jù)處理與存儲系統(tǒng)。
[0011]本發(fā)明為了實現(xiàn)上述目的而采用的技術方案為:實時數(shù)據(jù)處理與存儲系統(tǒng),所述系統(tǒng)是基于Pub/Sub的消息傳輸模式,將數(shù)據(jù)采集端、應用端、處理端、存儲端以及展示端通過松耦合的方式進行連接,彼此交互,形成面向服務的系統(tǒng)架構,所述的系統(tǒng)包括消息隊列服務模塊、應用程序模塊、數(shù)據(jù)庫系統(tǒng)模塊、實時數(shù)據(jù)展示模塊和數(shù)據(jù)過濾引擎模塊,
[0012]所述的消息隊列服務模塊為一個實時數(shù)據(jù)通道代理,其實現(xiàn)可基于通信協(xié)議包括AMQP、MQTT、WebS0Cket和TCP,所述的消息隊列服務模塊為實時數(shù)據(jù)傳輸提供管道;
[0013]所述的應用程序模塊通過系統(tǒng)A接口(其中A接口的實現(xiàn)方式依賴于消息隊列服務裝置所采用的通信協(xié)議)實現(xiàn)數(shù)據(jù)的輸入或輸出,應用程序模塊運行的主體包括個人計算機(PC)、服務器、移動終端(如智能手機)和嵌入式設備;
[0014]所述的實時數(shù)據(jù)展示模塊為一個基于Web的頁面程序,其通過HTTP、Websocket或MQ協(xié)議從消息隊列服務裝置獲取數(shù)據(jù),并實時展示;
[0015]所述的數(shù)據(jù)庫系統(tǒng)模塊包括關系型數(shù)據(jù)庫系統(tǒng)和NoSQL數(shù)據(jù)庫;
[0016]所述的數(shù)據(jù)過濾引擎模塊為一個腳本程序執(zhí)行環(huán)境,所述數(shù)據(jù)過濾引擎模塊,所述數(shù)據(jù)過濾引擎模塊的程序運行時的計算機語言環(huán)境包括Javascript、Java、Per 1、Python、Scala和ErIangο
[0017]進一步的,所述系統(tǒng)還包括插拔式的數(shù)據(jù)處理插件模塊,所述的插件模塊直接作用于在傳輸通道中流動的數(shù)據(jù),所述插件模塊通過動態(tài)部署的方式提交到數(shù)據(jù)過濾引擎模塊并運行,插件模塊為程序源代碼或編譯后的程序文件。
[0018]進一步的,所述的數(shù)據(jù)處理引擎模塊根據(jù)需求訂閱相應的消息主題,所述消息主題的數(shù)據(jù)結構包括一個類型(Type)、客戶端標識(ClientID)和語義主題(Topic)。
[0019]進一步的,所述消息主題的數(shù)據(jù)結構中各部分的連接方式包括:
[°02°] 1、通過特殊間隔字符的字符串連接,如“gateway_dsd2348_relay”,所述的特殊間隔字符包括下劃線,星號和井號;
[0021]2、通過二進制數(shù)分段標識各部分內(nèi)容的長度和構成。
[0022]進一步的,所述數(shù)據(jù)過濾引擎模塊設有數(shù)據(jù)處理程序,所述的數(shù)據(jù)處理程序process的執(zhí)行方式包括本地函數(shù)調(diào)用、RPC(遠程過程調(diào)用)、REST API或Webservice。
[0023]進一步的,所述的數(shù)據(jù)處理程序根據(jù)每個數(shù)據(jù)中包含的TAG進行條件匹配和二次過濾,所述的數(shù)據(jù)處理程序中待處理數(shù)據(jù)包含一組TAG值,而數(shù)據(jù)的整體結構包括JSON格式或XML格式,所述的TAG值包括數(shù)字或字符串;所述的數(shù)據(jù)處理程序?qū)AG值進行過濾匹配時,包括對單個TAG進行匹配和進行OR或者AND等組合條件匹配。
[0024]更進一步的,所述數(shù)據(jù)處理程序處理之后的數(shù)據(jù)當出現(xiàn)以下情況時需要轉發(fā):
[0025]1、數(shù)據(jù)包含的TAG中有需要被轉發(fā)的標識,如“relay_to_” ;
[0026]2、由數(shù)據(jù)處理程序的邏輯決定,如某種類型的數(shù)據(jù)需要轉發(fā),或處理后的數(shù)據(jù)滿足相應的條件(如大于某個閾值)。
[0027]進一步的,所述數(shù)據(jù)處理程序處理之后的數(shù)據(jù)當出現(xiàn)以下情況時需要寫入數(shù)據(jù)庫:
[0028]1、數(shù)據(jù)包含的TAG中有需要存入數(shù)據(jù)庫的標識,如“DB” ;
[0029]2、由數(shù)據(jù)處理程序的邏輯決定,如當數(shù)據(jù)產(chǎn)生于某段時間內(nèi)的數(shù)據(jù)需要寫入數(shù)據(jù)庫,而其他時間段的數(shù)據(jù)不需要寫入。
[0030]采用上述技術方案的有益效果是:本發(fā)明基于消息隊列的異步數(shù)據(jù)傳輸通道,通過Pub/Sub的消息主題模式,實現(xiàn)數(shù)據(jù)在傳輸過程中的數(shù)據(jù)過濾、處理和條件存儲;提出一種基于NoSQL數(shù)據(jù)庫集群進行實時數(shù)據(jù)讀寫,并集成傳統(tǒng)關系型數(shù)據(jù)庫的系統(tǒng)框架,實現(xiàn)對歷史遺留數(shù)據(jù)或系統(tǒng)的兼容,并實現(xiàn)對基于SQL查詢的應用開發(fā)的兼容。本發(fā)明提供了一種靈活的、可動態(tài)部署的、可插拔的實時數(shù)據(jù)處理框架,便于針對不同的應用環(huán)境和需求,快速部署和實現(xiàn)相應的數(shù)據(jù)處理系統(tǒng),使得易于將服務云化,變得可伸縮、可擴展,提高計算資源的使用效率和縮短服務開發(fā)與部署時間。
【附圖說明】
[0031 ]圖1為本發(fā)明所涉及實時數(shù)據(jù)處理與存儲系統(tǒng)框圖;
[0032]圖2為本發(fā)明所涉實時數(shù)據(jù)處理與存儲系統(tǒng)的數(shù)據(jù)過濾與處理應用框架;
[0033]圖3為本發(fā)明所涉數(shù)據(jù)過濾與處理過程示意圖;
[0034]圖4為系統(tǒng)消息主題的數(shù)據(jù)結構示意圖;
[0035]圖5為本發(fā)明所涉及Pub/Sub的消息主題數(shù)據(jù)結構示意圖;
[0036]圖6為本發(fā)明所涉及數(shù)據(jù)過濾引擎對數(shù)據(jù)過濾的示意圖一;
[0037]圖7為本發(fā)明所涉及數(shù)據(jù)過濾引擎對數(shù)據(jù)過濾的示意圖二;
[0038]圖8為本發(fā)明所涉及數(shù)據(jù)過濾引擎對數(shù)據(jù)過濾的示意圖三;
[0039]圖9為本發(fā)明所涉及傳輸數(shù)據(jù)的示意圖。
【具體實施方式】
[0040]以下結合附圖和本發(fā)明優(yōu)選的具體實施例對本發(fā)明的內(nèi)容作進一步地說明。所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0041]如圖1至圖9中所示,本方案中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),本發(fā)明所涉及的系統(tǒng)是基于Pub/Sub的消息傳輸模式,將數(shù)據(jù)采集端、應用端、處理端、存儲端以及展示端通過松耦合的方式進行連接,彼此交互,形成面向服務的系統(tǒng)架構,使得整個系統(tǒng)是一個靈活的、易于擴展的服務開發(fā)框架,并實現(xiàn)一個實時數(shù)據(jù)處理系統(tǒng),其中包括:實時數(shù)據(jù)處理與存儲系統(tǒng)及其應用框架和實時數(shù)據(jù)處理與過濾的方式;在本方案中所述的系統(tǒng)如圖1所示,本發(fā)明所涉及的系統(tǒng)構成包括:消息隊列服務裝置模塊、應用程序模塊、數(shù)據(jù)庫系統(tǒng)模塊、實時數(shù)據(jù)展示模塊和數(shù)據(jù)過濾引擎模塊。其中,消息隊列服務裝置模塊為一個實時數(shù)據(jù)通道代理,其實現(xiàn)是基于通信協(xié)議包括AMQP、MQTT、WebS0Cket和TCP等,所述的消息隊列服務裝置模塊為本發(fā)明所涉及系統(tǒng)的核心組件,為實時數(shù)據(jù)傳輸提供管道;所述的應用程序模塊通過系統(tǒng)A接口(其中A接口的實現(xiàn)方式依賴于消息隊列服務裝置所采用的通信協(xié)議)實現(xiàn)數(shù)據(jù)的輸入或輸出,應用程序模塊運行的主體包括個人計算機(PC)、服務器、移動終端(如智能手機)和嵌入式設備等,一般運行在嵌入式設備(如上位機)上的應用程序作為數(shù)據(jù)的采集端,往系統(tǒng)輸入數(shù)據(jù);而運行在PC或服務器上的應用程序作為數(shù)據(jù)的使用端。實時數(shù)據(jù)展示模塊為一個基于Web的頁面程序,其通過HTTP、WebS0Cket或MQ協(xié)議從消息隊列服務裝置獲取數(shù)據(jù),并實時展示;數(shù)據(jù)過濾引擎模塊為一個腳本程序執(zhí)行環(huán)境,數(shù)據(jù)過濾引擎模塊為本方案所涉及系統(tǒng)的一個主要模塊,大部分實時數(shù)據(jù)處理和過濾將在該數(shù)據(jù)過濾引擎模塊進行,該數(shù)據(jù)過濾引擎模塊的程序運行時環(huán)境包括Javascript、Java、Per1、Python、Scala和ErIang等計算機語言,各種運行時環(huán)境本身及其工作原理根據(jù)系統(tǒng)具體實現(xiàn)所采用或支持的程序運行時環(huán)境,本發(fā)明所涉及實時數(shù)據(jù)處理與過濾的邏輯將由對應的開發(fā)語言實現(xiàn);數(shù)據(jù)庫系統(tǒng)模塊包含關系型數(shù)據(jù)庫系統(tǒng)及NoSQL數(shù)據(jù)庫,但在本方案中,通過接口D與消息隊列服務裝置交互的數(shù)據(jù)庫僅限于NoSQL數(shù)據(jù)庫,為了保證數(shù)據(jù)傳輸?shù)膶崟r性和存儲能力的可擴展性,本方案所涉及系統(tǒng)采用NoSQL數(shù)據(jù)庫集群直接與消息隊列服務裝置交互,具體選擇何種NoSQL數(shù)據(jù)庫系統(tǒng)本方案不作限制。系統(tǒng)在具體實現(xiàn)時根據(jù)所選擇的NoSQL數(shù)據(jù)庫系統(tǒng),在消息隊列裝置模塊集成對應的NoSQL數(shù)據(jù)庫客戶端,如圖1所示。
[0042]本方案中所涉及的實時數(shù)據(jù)處理與存儲系統(tǒng)還提供一種可插拔的數(shù)據(jù)處理插件模塊,如圖2所示,在本方案中每個插件模塊應用程序直接作用于在傳輸通道中流動的數(shù)據(jù),每個插件應用程序通過動態(tài)部署的方式提交到數(shù)據(jù)過濾引擎模塊并運行(圖3),插件模塊應用程序可以為程序源代碼或編譯后的程序文件。
[0043]在本方案中所述的系統(tǒng)中,被采集或輸入的數(shù)據(jù)通過消息隊列服務裝置模塊,被按條件直接寫入NoSQL數(shù)據(jù)庫集群或由其他過濾插件進行處理,或直接被忽略掉。如圖3所示,若系統(tǒng)在進行數(shù)據(jù)過濾或處理的時候需要依賴系統(tǒng)中已存在的數(shù)據(jù)進行邏輯判斷,數(shù)據(jù)過濾插件直接通過數(shù)據(jù)讀寫接口讀取數(shù)據(jù)庫中的數(shù)據(jù)。本方案中所涉及系統(tǒng)支持基于關系型數(shù)據(jù)庫(RDBMS)的業(yè)務邏輯判斷和基于SQL的數(shù)據(jù)查詢與應用。如系統(tǒng)已經(jīng)存在歷史遺留數(shù)據(jù)在傳統(tǒng)關系型數(shù)據(jù)庫里,系統(tǒng)在進行數(shù)據(jù)過濾時需要查詢已經(jīng)存在于關系型數(shù)據(jù)庫中的數(shù)據(jù)或關系,系統(tǒng)定時(按秒、分或其他時間單位,由具體的系統(tǒng)實現(xiàn)而定)或根據(jù)事件觸發(fā)將關系型數(shù)據(jù)庫中的數(shù)據(jù)同步到NoSQL數(shù)據(jù)庫集群;存儲在NoSQL數(shù)據(jù)庫集群中的數(shù)據(jù)處理結果也根據(jù)需要通過數(shù)據(jù)同步接口同步到關系型數(shù)據(jù)庫中。
[0044]在本方案中所述的數(shù)據(jù)處理的方式如圖3所示,首先每個過濾應用程序根據(jù)需求,訂閱某個消息主題,而每個消息主題的數(shù)據(jù)結構定義如圖4所示,包含:一個類型(Type),客戶端標識(ClientID)和語義主題(Topic)等,每個消息主題數(shù)據(jù)結構中各部分的連接方式包括但以下幾種方式:
[0045]1、通過特殊間隔字符的字符串連接,如“gateway_dsd2348_relay”,且連接特殊字符包括但不限于下劃線“,星號、井號等;
[0046]2、通過二進制數(shù)分段標識各部分內(nèi)容的長度和構成,如圖5所示。
[0047]在本方案中當客戶端要發(fā)送關于某個語義主題(Topic)的數(shù)據(jù)時,客戶端應用程序會自動將其組裝成系統(tǒng)消息主題的數(shù)據(jù)結構,而數(shù)據(jù)結構中的其他部分可以從設備或客戶端屬性中讀取,也可以由程序設計主動指定。然后,應用程序?qū)?shù)據(jù)通過系統(tǒng)接口 A(根據(jù)系統(tǒng)具體實現(xiàn)所選擇的通信協(xié)議)發(fā)布(Pub)到上述組裝好的消息主題,由消息隊列系統(tǒng)裝置接收到,轉發(fā)給數(shù)據(jù)過濾引擎,并由數(shù)據(jù)過濾引擎根據(jù)消息主題進行過濾,過濾的方式如圖6所示,過濾引擎分別對消息主題的各個部分進行匹配(圖6),或者對各部分進行OR(邏輯或)條件組合匹配(圖7),或者對各部分進行AND(邏輯與)條件組合匹配(圖8),以及各種混合的組合匹配。匹配模式還包括任意(全匹配)模式,即消息主題的某部分或多個部分為任意值都被成功匹配。根據(jù)不同的匹配結果,數(shù)據(jù)過濾引擎執(zhí)行相對應的數(shù)據(jù)處理程序(如圖
6、圖7和圖8),數(shù)據(jù)處理程序process的執(zhí)行方式包括但本地函數(shù)調(diào)用、RPC(遠程過程調(diào)用)、REST API和Webservice等。
[0048]數(shù)據(jù)處理程序根據(jù)每個數(shù)據(jù)中包含的TAG進行條件匹配和二次過濾,如圖9所示,在本發(fā)明所涉及系統(tǒng)中每條待處理數(shù)據(jù)都包含一組TAG值,而數(shù)據(jù)的整體結構可以為一個JSON格式和XML格式,當然也可以是其他數(shù)據(jù)表達格式;而TAG值可以為數(shù)字、字符串或其他數(shù)據(jù)結構體;數(shù)據(jù)處理程序?qū)AG值進行過濾匹配時,既可以對單個TAG進行匹配,也可以進行OR或者AND等組合條件匹配。
[0049]在本發(fā)明所涉及系統(tǒng),對于處理程序處理后的數(shù)據(jù)可以被寫入數(shù)據(jù)庫或轉發(fā)/路由給其他處理程序或客戶端應用程序,若需要轉發(fā),該數(shù)據(jù)將被發(fā)布(Pub)到一個或多個對應的消息主題(如圖3虛線所示),并由訂閱了相應主題的客戶端應用程序或其他處理程序接收到。處理后的數(shù)據(jù)是否需要轉發(fā)有以下兩種決定方式:
[0050]I)、數(shù)據(jù)包含的TAG中有需要被轉發(fā)的標識,如“relay_to_” ;
[0051]2)、由數(shù)據(jù)處理程序的邏輯決定,如某種類型的數(shù)據(jù)需要轉發(fā),或處理后的數(shù)據(jù)滿足某種條件(如大于某個閾值)等。
[0052]在本方案中所涉及的系統(tǒng),對于數(shù)據(jù)是否需要寫入數(shù)據(jù)庫,由數(shù)據(jù)處理程序決定,而寫入的依據(jù)包含以下兩種情況:
[0053]I)數(shù)據(jù)包含的TAG中有需要存入數(shù)據(jù)庫的標識,如“DB” ;
[0054]2)由數(shù)據(jù)處理程序的邏輯決定,如當數(shù)據(jù)產(chǎn)生于某段時間內(nèi)的數(shù)據(jù)需要寫入數(shù)據(jù)庫,而其他時間段的數(shù)據(jù)不需要寫入等。
[0055]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【主權項】
1.實時數(shù)據(jù)處理與存儲系統(tǒng),所述系統(tǒng)是基于Pub/Sub的消息傳輸模式,將數(shù)據(jù)采集端、應用端、處理端、存儲端以及展示端通過松耦合的方式進行連接,彼此交互,形成面向服務的系統(tǒng)架構,其特征在于:所述的系統(tǒng)包括消息隊列服務模塊、應用程序模塊、數(shù)據(jù)庫系統(tǒng)模塊、實時數(shù)據(jù)展示模塊和數(shù)據(jù)過濾引擎模塊,所述的消息隊列服務模塊為一個實時數(shù)據(jù)通道代理,其實現(xiàn)可基于通信協(xié)議包括AMQP、MQTT、WebS0Cket和TCP,所述的消息隊列服務模塊為實時數(shù)據(jù)傳輸提供管道; 所述的應用程序模塊通過系統(tǒng)A接口(其中A接口的實現(xiàn)方式依賴于消息隊列服務裝置所采用的通信協(xié)議)實現(xiàn)數(shù)據(jù)的輸入或輸出,應用程序模塊運行的主體包括個人計算機(PC)、服務器、移動終端(如智能手機)和嵌入式設備; 所述的實時數(shù)據(jù)展示模塊為一個基于Web的頁面程序,其通過HTTP、WebS0Cket或MQ協(xié)議從消息隊列服務裝置獲取數(shù)據(jù),并實時展示; 所述的數(shù)據(jù)庫系統(tǒng)模塊包括關系型數(shù)據(jù)庫系統(tǒng)和NoSQL數(shù)據(jù)庫; 所述的數(shù)據(jù)過濾引擎模塊為一個腳本程序執(zhí)行環(huán)境,所述數(shù)據(jù)過濾引擎模塊,所述數(shù)據(jù)過濾引擎模塊的程序運行時的計算機語言環(huán)境包括Javascript、Java、Perl、Python、Scala和Erlang。2.根據(jù)權利要求1中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述系統(tǒng)還包括插拔式的數(shù)據(jù)處理插件模塊,所述的插件模塊直接作用于在傳輸通道中流動的數(shù)據(jù),所述插件模塊通過動態(tài)部署的方式提交到數(shù)據(jù)過濾引擎模塊并運行,插件模塊為程序源代碼或編譯后的程序文件。3.根據(jù)權利要求1中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述的數(shù)據(jù)處理引擎模塊根據(jù)需求訂閱相應的消息主題,所述消息主題的數(shù)據(jù)結構包括一個類型(Type)、客戶端標識(ClientID)和語義主題(Topic)。4.根據(jù)權利要求3中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述消息主題的數(shù)據(jù)結構中各部分的連接方式包括: 4-1、通過特殊間隔字符的字符串連接,如“gateway_dsd2348_relay”,所述的特殊間隔字符包括下劃線,星號和井號“#,,; 4-2、通過二進制數(shù)分段標識各部分內(nèi)容的長度和構成。5.根據(jù)權利要求1中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述數(shù)據(jù)過濾引擎模塊設有數(shù)據(jù)處理程序,所述的數(shù)據(jù)處理程序process的執(zhí)行方式包括本地函數(shù)調(diào)用、RPC(遠程過程調(diào)用)、REST API或Webservice。6.根據(jù)權利要求5中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述的數(shù)據(jù)處理程序根據(jù)每個數(shù)據(jù)中包含的TAG進行條件匹配和二次過濾,所述的數(shù)據(jù)處理程序中待處理數(shù)據(jù)包含一組TAG值,而數(shù)據(jù)的整體結構包括JSON格式或XML格式,所述的TAG值包括數(shù)字或字符串;所述的數(shù)據(jù)處理程序?qū)AG值進行過濾匹配時,包括對單個TAG進行匹配和進行OR或者AND等組合條件匹配。7.根據(jù)權利要求6中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述數(shù)據(jù)處理程序處理之后的數(shù)據(jù)當出現(xiàn)以下情況時需要轉發(fā): 7-1、數(shù)據(jù)包含的TAG中有需要被轉發(fā)的標識,如“relay_to_” ; 7-2、由數(shù)據(jù)處理程序的邏輯決定,如某種類型的數(shù)據(jù)需要轉發(fā),或處理后的數(shù)據(jù)滿足相應的條件(如大于某個閾值)。8.根據(jù)權利要求6中所述的實時數(shù)據(jù)處理與存儲系統(tǒng),其特征在于:所述數(shù)據(jù)處理程序處理之后的數(shù)據(jù)當出現(xiàn)以下情況時需要寫入數(shù)據(jù)庫: 8-1、數(shù)據(jù)包含的TAG中有需要存入數(shù)據(jù)庫的標識,如“DB” ; 8-2、由數(shù)據(jù)處理程序的邏輯決定,如當數(shù)據(jù)產(chǎn)生于某段時間內(nèi)的數(shù)據(jù)需要寫入數(shù)據(jù)庫,而其他時間段的數(shù)據(jù)不需要寫入。
【文檔編號】G06F9/54GK105956082SQ201610281670
【公開日】2016年9月21日
【申請日】2016年4月29日
【發(fā)明人】猶杰, 馬帝, 安謀
【申請人】深圳前海大數(shù)點科技有限公司