2016-11-18 87 views
0

我正在爲M2M IoT提供商工作。現場有數百萬部署的物聯網設備。數據由邊緣設備聚合併發送到我們的中央服務器。服務器處理設備數據並將處理後的信息發送給各種其他子系統。物聯網設備的分析引擎

我們正在概念化分析引擎(AE)與現有系統並行的想法。來自物聯網設備的數據應送入此引擎以進行不同類型的分析。示例:監控過去24小時內來自設備的事件,並計算出健康狀況或預測其他內容。 我們正在試圖找出在這方面的下列問題的答案:

1)我們應該從哪裏接收來自物聯網設備的輸入數據以輸入新系統(AE)?如果我們利用現有的服務器,那麼我們將在兩個系統之間引入強大的耦合。現有服務器的任何停機時間都應將管道乾燥至AE。這種情況下的一般建議策略是什麼?

2)我們計劃與卡夫卡進行前端AE以確保數據的可用性。應該有各種微服務作爲卡夫卡消費者並做他們的事情。根據過去24小時內報告的事件(即需要考慮歷史數據和實時數據),微型服務的架構應該如何管理設備狀態?有很多像Spark,Hadoop,Apache風暴那樣的技術,我不知道從哪一個開始。我應該如何堅持傳入的設備數據以及如何一起處理歷史和傳入數據以找出當前的設備狀態?這種情況下的標準做法是:預先計算和存儲彙總數據,還是根據收到的查詢實時計算彙總數據?

回答

0

一般:由於設備數量(百萬)不太相關,我使用術語tps(每秒事務)來指代負載。

1):您必須在某個地方點按。 :-)在我們的物聯網平臺中,我們直接在入站數據處理之後點擊並轉發到我們的AE。在任何情況下,確保入站AE容量(按照tps)高於「服務器」的容量。

恕我直言,它少了一個關於耦合的問題。它更多關於責任,即哪個組件負責「確認」數據傳輸,存儲它的可靠性等。

2)這取決於。尤其是它取決於

  1. 您在分析用什麼算法
  2. 的實時行爲做你的客戶期望
  3. 可靠性要求(你能負擔得起(在主場迎戰結果顯示每24h秒顯示結果)在服務器故障的情況下丟失一些結果)
  4. 數據量(多少個tps,也在每個設備級別上?)
  5. 是「設備本地」分析算法與混合多個設備的數據?

根據您的答案,你可能希望有一個看的T CEP引擎(複雜事件處理),以此爲基礎的AE(分析引擎)