了解事件處理
Azure 串流分析是一項服務,可用於處理和分析串流資料的複雜事件。 串流分析可用來:
- 從輸入擷取資料,例如 Azure 事件中樞、Azure IoT 中樞或 Azure 儲存體 Blob 容器。
- 使用查詢來選取、預測和彙總資料值來處理資料。
- 將結果寫入輸出,例如 Azure Data Lake Gen 2、Azure SQL Database、Azure Synapse Analytics、Azure Functions、Azure 事件中樞、Microsoft Power BI 或其他。
一旦啟動之後,串流分析查詢將會永久執行,並在輸入到達時處理新的資料,並將結果儲存在輸出中。
串流分析可保證「僅只一次」的事件處理,以及「至少一次」的事件傳遞,因此永遠不會遺失事件。 其具有可在事件傳遞失敗時進行復原的內建功能。 此外,串流分析可提供內建檢查點來維護作業的狀態,並產生可重複出現的結果。 因為 Azure 串流分析是平台即服務 (PaaS) 解決方案,完全受控且高度可靠。 其與各式來源和目的地內建整合,並提供靈活程式設計模型。 因為串流分析引擎支援記憶體內計算,所以可提供高效能。
Azure 串流分析作業和叢集
使用 Azure 串流分析最簡單的方式是在 Azure 訂用帳戶中建立串流分析作業、設定其輸入和輸出,以及定義作業將用來處理資料的查詢。 查詢會使用結構化查詢語言 (SQL) 語法來表示,並可以併入來自多個資料來源的靜態參考資料,以提供可與從輸入擷取的串流資料結合的查閱值。
如果您的串流處理需求很複雜或需要大量資源,您可以建立串流分析叢集,其使用與串流分析作業相同的底層處理引擎,但是位於專用租用戶中 (因此您的處理不會受到其他客戶影響),而且具有可設定的可擴縮性,可讓您針對特定案例在輸送量和成本之間定義正確的平衡性。
輸入
Azure 串流分析可以從下列類型的輸入擷取資料:
- Azure 事件中樞
- Azure IoT 中樞
- Azure Blob 儲存體
- Azure Data Lake Storage Gen2
輸入通常用來參考串流資料的來源,它會在新增事件記錄時進行處理。 此外,您可以定義用來內嵌靜態資料的 參考 輸入,以增強即時事件資料流程資料。 例如,您可以擷取即時天氣觀測資料的資料流,其中包含每個氣象站的唯一識別碼,並使用符合天氣站識別碼與更有意義名稱的靜態參考輸入來增強該資料。
輸出
輸出是傳送資料流處理結果的目標。 Azure 串流分析支援各種不同的輸出,可用來:
- 保存資料流處理的結果以供進一步分析; 例如,將其載入至資料湖或資料倉儲。
- 顯示資料流的即時視覺效果; 例如,將資料附加至 Microsoft Power BI 中的資料集。
- 產生下游處理的篩選或摘要事件; 例如,將資料流處理的結果寫入事件中樞。
查詢
資料流處理邏輯會封裝在查詢中。 查詢是使用 SQL 陳述式來定義,SELECT 資料欄位 FROM 一或多個輸入、篩選或彙總資料,並將結果寫入 INTO 輸出中。 例如,下列查詢會篩選來自 weather-events 輸入的事件,只包含 溫度 值小於 0 的事件資料,並將結果寫入 cold-temps 輸出:
SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0
系統會自動建立名為 EventProcessedUtcTime 的欄位,以定義 Azure 串流分析查詢處理事件的時間。 您可以使用此欄位來判斷事件的時間戳記,也可以使用 TIMESTAMP BY 子句明確指定另一個 DateTime 欄位,如此範例所示。 視讀取資料流資料的輸入而定,可能會自動建立一或多個可能的時間戳記欄位; 例如,使用 事件中樞 輸入時,會產生名為 EventQueuedUtcTime 的欄位,以記錄事件中樞佇列中收到事件的時間。
彙總時態性時間範圍的資料時,用來做為時間戳記的欄位很重要,接下來會加以討論。