天天看點

物聯網實時資料處理的架構

作者:聞數起舞
物聯網實時資料處理的架構

來源 Shutterstock

當我們談論物聯網時,首先想到的是有一盞智能燈,當外面天黑時在你的院子裡打開(對于那些有院子的人)。

對我來說,這是從一個智能助手(Alexa)開始的,盡管它比一個簡單的燈更複雜,但這種類型的技術背後的潛力有時讓我想知道,通過利用這些類型的東西,我們可以在生活中改善什麼。不甘心,我開始添加繼電器、Xbox、智能路由器等,我的房子變成了半自動的東西。

不幸的是,到了最後,這還不夠--作為一個資料愛好者,我又研究了一下物聯網,并認識到它們與資料架構有很多的協同作用。是以,不再贅述,我将分享我圍繞物聯網架構的一些想法,跨越我對Lambda和Kappa架構的一點認識。

物聯網實時資料處理的架構

從左到右看,我們有一個物聯網資料架構的多個層次。

資料來源

這是物聯網資料架構的第一層,我們的來源可以分成由幾種類型的資料組成。

  • 遙測。通過使用智能手機、平闆電腦、可穿戴裝置、傳感器等加載到網絡。
  • API。主要用于解決業務需求、客戶資訊或靜态資訊。這種類型的來源可以由CRM、ERP或用于整合的API網關來代表。
  • 關系型資料。可用于資料充實的資料來源,包含核心系統或遺留的客戶系統等資訊。

資料攝取

資料事件流

當我們談論事件流時,半結構化資料是非常常見的,它以JSON或XML有效載荷的形式被攝取,這些有效載荷利用了隊列和其他一些協定的使用。

這種類型的資料攝取最常用的協定是MQTT,它使用釋出/訂閱方法。基本上包括一個主題名稱,同時向MQTT代理釋出資料。

然後,這些主題負責為經紀人提供路由資訊,需要每個想要接收該特定主題消息的客戶的訂閱。代理商保證将所有與主題相比對的消息傳遞給用戶端。

可以使用其他類型的協定,如COAP(受限應用協定)、AMQP(進階消息排隊協定)、HTTP和DDS(資料分發服務)。

物聯網實時資料處理的架構

流輸入技術的例子

批量/API攝取

這種類型的資料攝取包括定期收集和分組資料并将其發送到目标系統。組可以根據任何邏輯順序、某些條件的激活或簡單的時間表來處理。這種類型的攝取通常用于使用CDC(變化資料捕獲)、快照或Deltas從關系資料庫加載資料,因為它通常更容易和更實惠。

物聯網實時資料處理的架構

批量輸入/API輸入的技術執行個體

流處理

考慮到所展示的圖表是基于Lambda架構的,流媒體層将隻存儲短期資訊,這些資訊将被轉移到批處理層進行進一步處理(複雜性遞增、曆史比較等)。

通過流處理,資料在到達時就被處理,在需要實時資料分析時非常有用。處理是立即進行的,但它隻适合于較簡單的分析功能。

這些是可以包括在這個進行中的任務。

  • 轉化 - 它包括從物聯網裝置和其他來源收集的資料的轉換。在這種轉換之後,産生的資料被轉移到進一步的分析中。
  • 資料充實--資料充實過程是将收集到的原始資料與其他資料集相結合的操作,以獲得快速的洞察力。
  • 短期存儲--以原始格式存儲資料,并在其轉換/豐富後,能夠對資料進行快速I/O。這就是為什麼建議使用無SQL或文檔資料庫。
物聯網實時資料處理的架構

流處理/存儲的技術執行個體

批量處理

資料存儲

資料湖是一個以自然格式存儲的資料庫,通常是以Blobs或檔案形式存儲。它可以按原樣存儲資料,而不必首先對其進行結構化處理,并運作不同類型的分析--從儀表盤和可視化到大資料處理、實時分析和機器學習技術,以指導更好的決策。意思是說,是一個利用分布式計算能力來存儲和處理海量資料的計算叢集。通常情況下,它由以下幾個區域組成。

  • 原始區。原始資料被攝入分布式檔案系統的着陸區。
  • 策劃區。存儲的資料已被清理和修改為确定的符合模式。

我們應該考慮到,在上述兩層之上,總有一個資料品質層可以/應該被建立,以跟蹤我們的資料,并告知業務使用者需要進行的任何修正。

物聯網實時資料處理的架構

資料存儲的技術執行個體

處理/轉換和資料提供

轉換,企業資料倉庫和資料

轉化是将資料從一種格式轉換為另一種格式的過程。資料往往駐留在整個企業的不同位置和格式,為此,有必要進行資料轉換,以確定來自一個應用程式或資料庫的資料對其他應用程式和/或資料庫是可了解的。業務規則的應用也可能要求需要進行資料轉換。

此外,EDW或企業資料倉庫被用來以綜合方式存儲企業資料,以便能夠為戰術和戰略報告提供資料。EDW提供了一個單一的、全面的目前和曆史資訊的來源。在資料集市上,它們是資料倉庫的簡單子集,通常面向單一主題或功能區。一個EDW可以被分割成不同的資料集市,因為每一個資料集市都是專門針對一個特定的主題或功能領域。資料可以被彙總、轉換和規範化。

請注意,一些用于批處理/API攝取的技術可以在這些層中執行ETL(提取、轉換和加載)。

物聯網實時資料處理的架構

處理/資料提供/資料品質的技術執行個體

進階分析/機器學習

進階分析是分析功能,涉及使用現代資料挖掘、模式比對、資料可視化和預測模組化工具,以産生分析和算法,幫助企業做出更好的決策。這些工具允許使用者使用不同的方法、算法和技術來分析資料,通常需要編碼技能。

物聯網實時資料處理的架構

進階分析/機器學習的技術執行個體

資料消費

資料消費層旨在通過一套分析資料和展示資訊的工具來提供資訊,以幫助終端使用者做出更明智的商業決策。

此外,發生在整個企業的分析活動主要利用結構化資料、孤立的資料存儲、資料提取、專有工具和各種程式設計語言。傳統的分析方法可以從資料湖或資料存儲庫中擷取。

物聯網實時資料處理的架構

資料消費的技術執行個體

企業資料管理

這個話題是你可以和别人圍繞資料進行的最普遍和最廣泛的對話之一。它包含了從資料架構到資料治理,甚至是中繼資料管理或協調的一切。

我不會深究這個問題,但當我們談論資料管理時,需要記住的是它可以被劃分為幾個功能。

  • 資料治理
  • 資料整合與互操作性
  • 資料品質管理
  • 中繼資料管理
  • 檔案和内容管理
  • 倉儲、BI、ML和資料科學
  • 資料架構
  • 資料模組化
  • 資料存儲、資料湖和營運
  • 資料安全
  • 參考和主資料

要了解更多關于資料管理的資訊,我建議你快速浏覽一下 DAMA-DMBOK.盡管如此,我還是要給你留下一些可以适合這個空間的技術。

物聯網實時資料處理的架構

涵蓋部分資料管理功能的技術執行個體

結論和使用案例

物聯網實時資料處理的架構

資料來源:麥肯錫

物聯網是當今的一個主要趨勢,就像我們在圖表中看到的那樣,以跨行業的方式存在着巨大的經濟影響。

有一個用例,我往往很喜歡。辦公室占用率。

随着COVID-19的限制和遠端工作的普遍化,在辦公桌上安裝傳感器可以為那些仍然喜歡在辦公室工作的員工帶來很多價值。這樣我就知道辦公設施是否擁擠,是否能享受到新鮮空氣

免責聲明:這篇文章反映了我的個人意見、建築觀點和經驗,應予以相應處理。

繼續閱讀