1. 程式人生 > >Azure EventHubs快速入門和使用心得

Azure EventHubs快速入門和使用心得

Azure Event Hubs(事件中心)是一個大資料流式資料攝取服務平臺,每秒接受數百萬事件;

  EventHubs 是一個有資料保留期限的緩衝區,類似分散式日誌;可縮放的關鍵在於【分割槽消費模型】,每分割槽獨立儲存資料,被後端獨立消費。隨著時間推移,事件會逐漸老化,所以分割槽不會 full.

傳送到Eventhub 中的資料可以被 readl-time analytics provider 和後端batch/storage adapters 處理和儲存。

為什麼要使用EventHubs?

從EventHubs中及時獲取、探索資料 相當簡單,EventHubs 提供了低延遲的分散式流式處理平臺(低延遲、無縫整合Azure內外的資料和分析服務)

EventHubs代表“event管道”的前門,一般被定義為事件攝取器:在事件釋出者和事件消費者之間起解耦作用的元件或服務。

 

特性

  • Paas 上全託管
  • 支援實時和批處理
  • 可縮放
  • 豐富的生態

本文主要記錄兩個重要知識點:Partition, EventHubs Capture

Azure上建立EventHubs名稱空間之後,新增EventHubs時要關注以上配置。

 

 

Partition Consumer Model

為支援攝取、儲存、 實時處理流式資料,EventHub是建立在分割槽消費模型之上,提高了可用性和併發度;

① 水平擴充套件事件處理能力,提供了Queue和topic等流式結構不具備的特性(某分割槽節點下線,其餘分割槽可繼續提供 傳送和接受能力)

② 可讓多程序併發處理流式資料, 並可自行控制處理速度。

③ 支援批量傳送事件, 單批次傳送不超過1M事件

【是否啟用分割槽】取決於開發者在【資料一致性和可用性之間的平衡思考】

 If high availability is most important, do not specify a partition key; in that case events are sent to partitions using the round-robin model described previously.

 In many cases, using a partition key is a good choice if event ordering is important.     著名的CAP定理。

 

EventHubs Capture

Azure EventHubs Capture 是把資料載入到Azure中最快捷的方式,可在使用 EventHubs Capture時 指定 Azure Blob storage account 或者 Azure Data Lake Store account儲存資料。

捕獲時機: 最上面Capture配置圖, 捕獲時機支援2種策略:time window 和 size window,  每個分割槽滿足任一策略則觸發該分割槽的捕獲動作。

// 檔案路徑如下,包含名稱空間、捕獲分割槽,每個檔案以秒命名
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

Azure EventHubs Capture 開始工作之後,在沒有資料的情況下預設會寫入空檔案,這給後端消費程式提供了穩定的流量預期, 當然也可在建立EventHubs 配置勾選【Do not emit empty files when no events occur during the Capture time window<】

捕獲檔案格式: avro 是一種簡潔快速,攜帶豐富資料結構的二進位制格式

 

 

 捕獲的檔案可使用Azure Storage Explorer檢視, 注意這裡要使用賬號登陸Azure中國區, 後面就是 Azure Storage Account的事