使用 HDInsight Spark 和 Kafka

已完成

身為資料工程師,您需要決定哪種 HDInsight 叢集最適合建立,以建置您的解決方案。 Spark 和 Kafka 叢集一起使用時,可提供絕佳的方式來內嵌和處理即時或近乎即時的資料流。

使用 Kafka 來內嵌即時資料

Apache Kafka 可以用做訊息系統、發佈訂閱系統或串流處理平台。 其會將資料儲存至可以即時讀取、後置處理,以及可以同時由多個取用者讀取的記錄。

使用 Spark 結構化串流來處理即時事件

Apache Spark 是一個開放原始碼分散式資料處理引擎,可在許多情況下用來大規模快速地處理、查詢、分析和轉換資料。 Spark 通常用來在大型資料上執行 ETL 和 SQL 作業,也會處理串流資料,以及執行機器學習。

Spark 結構化串流具有其他平台無法提供的功能,例如容錯保證、聯結批次和串流資料的能力、處理延遲送達資料的能力,以及我們稍後將在本課程模組中深入了解的許多其他能力。 此外,有了 Azure HDInsight,您也可以建立同時裝載 Spark 和 Kafka 叢集的 VNET。 一個 VNET 有這兩個叢集時,Spark 叢集可以存取 Kafka 叢集內的個別資料分割區,而不是在叢集或端點之間進行交談。 藉由提供個別資料分割區的存取權,您可以增加您在即時處理作業中所擁有的平行處理原則,這會為您提供更好的輸送量。

使用 Kafka 搭配 Spark 的情節

有許多即時分析情節,可受益於 Apache Kafka 和 Spark 啟用的即時串流。 所有這些情節都具有串流資料內嵌元件 (即 Kafka 元件),以及在資料上執行的分析程序 (即 Spark 元件)。

Scenarios for using Kafka with Spark

  • 即時詐騙偵測,用來內嵌財務交易資料,並將其與詐騙行為的歷程記錄模式進行比較。
  • 車隊管理和連線的汽車情節,其中您可以內嵌 IoT 裝置資料,並在某些感應器資料 (例如里程、速度、位置或溫度資料) 達到閾值時做出回應。
  • 電子商務解決方案上的點選流分析,用來分析產品的頁面放置如何影響衝動購買和點擊次數。
  • 即時患者監視,用來監看血壓和心率資訊,並在患者處於危急狀態時通知醫生。
  • 智慧電網解決方案,可監看電力使用並在需求變更時做出回應。
  • 商店中的客戶行為,以了解客戶在一天的特定時間進行了哪些購買,以安排補貨並修改結帳通道的人員配置。
  • IT 基礎結構和網路監視,用來在需要時監看伺服器可用性和頻寬,以及重新路由流量。
  • 即時需求和庫存管理,用來監看低庫存水平,並提示您重新訂購這些商品或進行補貨。

從批次輕鬆移轉至串流

在許多情況下,這些情節會從內部部署或批次處理資料開始,但隨著解決方案的開發和需求的發展,批次處理會移至串流,而內部部署應用程式則會移至雲端。 如上所述,Spark 結構化串流在處理批次和串流作業的能力方面是獨一無二的,這可讓您更輕鬆地將任何執行的批次處理轉換成即時作業,因為您可以從某個作業轉換至另一個作業,或使用相同的應用程式和架構來同時使用它們。