本文描述如何使用無程式碼編輯器,輕鬆建立串流分析作業。 其會持續從事件中樞讀取、篩選傳入的資料,然後持續將結果寫入Azure Data Lake Storage Gen2。
必要條件
- 您的 Azure 事件中樞資源必須可公開存取,且不可位於防火牆後方或在 Azure 虛擬網路中受保護。
- 事件中樞中的資料必須以 JSON、CSV 或 Avro 格式序列化。
開發串流分析作業以篩選並內嵌即時資料
在 Azure 入口網站中,找出並選取 Azure 事件中樞執行個體。
在 [事件中樞] 視窗中指定資料的 [序列化] 類型,以及作業要用於連線至事件中樞的 [驗證方法]。 然後選取 [連線]。
如果建立連線成功,且有資料流量流向事件中樞執行個體,便可立即看到兩個項目:
選取 Azure Data Lake Storage Gen2 磁片。 選取 [Azure Data Lake Gen2] 帳戶以傳送篩選的資料:
- 從下拉式功能表中選取 [訂用帳戶]、[儲存體帳戶名稱] 和 [容器]。
- 選取 [訂用帳戶] 之後,系統應會自動填入 [驗證方法] 和 [儲存體帳戶金鑰]。 選取 Connect。
如需欄位的詳細資訊,以及查看路徑模式的範例,請參閱 Azure 串流分析的 Blob 儲存體和 Azure Data Lake Gen2 輸出。
您也可選取 [取得靜態預覽/重新整理靜態預覽],查看從 Azure Data Lake Storage Gen2 內嵌的資料預覽。
若要啟動作業,請指定作業執行時所使用串流單位 (SU) 的數目。 SU 代表配置給作業的計算和記憶體數量。 建議先使用三個,再視需要調整。
選取 [啟動] 之後,作業會在兩分鐘內開始執行,且計量會在下方的索引標籤區段中開啟。
您可以在 [串流分析作業] 索引標籤的 [處理資料] 區段下查看作業。選取 [重新整理] 直到您看到作業狀態為 [執行中]。 選取 [開啟計量] 以進行監視,或視需要停止並重新啟動。
以下是範例 測量指標 頁面:
確認 Data Lake Storage 中的資料
您應該會看到建立在您所指定容器中的檔案。
下載並開啟檔案,以確認您只看到篩選過的資料。 在下列範例中,您會看到 [SwitchNum] 設定為 [US] 的資料。
{"RecordType":"MO","SystemIdentity":"d0","FileNum":"548","SwitchNum":"US","CallingNum":"345697969","CallingIMSI":"466921402416657","CalledNum":"012332886","CalledIMSI":"466923101048691","DateS":"20220524","TimeType":0,"CallPeriod":0,"ServiceType":"S","Transfer":0,"OutgoingTrunk":"419","MSRN":"1416960750071","callrecTime":"2022-05-25T02:07:10Z","EventProcessedUtcTime":"2022-05-25T02:07:50.5478116Z","PartitionId":0,"EventEnqueuedUtcTime":"2022-05-25T02:07:09.5140000Z", "TimeS":null,"CallingCellID":null,"CalledCellID":null,"IncomingTrunk":null,"CalledNum2":null,"FCIFlag":null} {"RecordType":"MO","SystemIdentity":"d0","FileNum":"552","SwitchNum":"US","CallingNum":"012351287","CallingIMSI":"262021390056324","CalledNum":"012301973","CalledIMSI":"466922202613463","DateS":"20220524","TimeType":3,"CallPeriod":0,"ServiceType":"V","Transfer":0,"OutgoingTrunk":"442","MSRN":"886932428242","callrecTime":"2022-05-25T02:07:13Z","EventProcessedUtcTime":"2022-05-25T02:07:50.5478116Z","PartitionId":0,"EventEnqueuedUtcTime":"2022-05-25T02:07:12.7350000Z", "TimeS":null,"CallingCellID":null,"CalledCellID":null,"IncomingTrunk":null,"CalledNum2":null,"FCIFlag":null} {"RecordType":"MO","SystemIdentity":"d0","FileNum":"559","SwitchNum":"US","CallingNum":"456757102","CallingIMSI":"466920401237309","CalledNum":"345617823","CalledIMSI":"466923000886460","DateS":"20220524","TimeType":1,"CallPeriod":696,"ServiceType":"V","Transfer":1,"OutgoingTrunk":"419","MSRN":"886932429155","callrecTime":"2022-05-25T02:07:22Z","EventProcessedUtcTime":"2022-05-25T02:07:50.5478116Z","PartitionId":0,"EventEnqueuedUtcTime":"2022-05-25T02:07:21.9190000Z", "TimeS":null,"CallingCellID":null,"CalledCellID":null,"IncomingTrunk":null,"CalledNum2":null,"FCIFlag":null}
使用事件中樞地理複寫功能時的考量
「Azure 事件中樞」最近在公開預覽版中推出了 Geo-Replication(地理複寫) 功能。 這項功能與 Azure 事件中樞的異地災害復原功能不同。
當容錯移轉類型為強制且複寫一致性為非同步時,串流分析作業不保證能以「恰好一次」的方式輸出至 Azure 事件中樞的輸出。
Azure 串流分析作為產生者且事件中樞為輸出時,可能會在容錯轉移期間和事件中樞節流期間觀察到作業的浮水印延遲,尤其當主要與次要之間的複寫延遲達到設定的延遲上限時。
Azure 串流分析作為取用者且事件中樞為輸入時,可能會在容錯轉移期間觀察到作業的浮水印延遲,而且在容錯轉移完成後可能會略過資料或發現重複的資料。
由於上述這些限制,請在事件中樞容錯移轉完成後,立即以適當的開始時間重新啟動串流分析作業。 另外,因為 Event Hubs 的地理複製功能目前還在公開預覽階段,目前不要用這個模式來處理生產的 Stream Analytics 工作。 在事件中樞異地復寫功能正式推出之前,目前的串流分析行為將會改善,並可用於串流分析生產作業。
下一步
深入了解 Azure 串流分析,以及如何監視所建立的作業。