共用方式為


參考資料 JOIN

✅ Azure 串流分析 ✅ 網狀架構事件串流

在一般案例中,我們會使用事件處理引擎來計算延遲非常低的串流數據。 在許多情況下,用戶必須將持續性歷程記錄數據或變更緩慢的數據集(也稱為參考數據)與即時事件串流相互關聯,以更聰明地決定系統。 例如,將事件數據流聯結至靜態數據集,以將IP位址對應至位置。 這是串流分析中唯一支援的 JOIN,其中不需要時態系結。 參考數據也可以用來具有裝置特定的臨界值。

範例

如果一輛商用車輛向收費公司註冊,他們可以通過收費站,而不停止檢查。 我們將使用商用車輛登記查找表來識別所有已過期登記的商用車輛。

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'

參考數據 JOIN 的特殊性

  • 使用參考數據 JOIN 需要定義參考數據的輸入來源。
  • 內部 JOIN(預設值)和左外部 JOIN 支援參考資料 JOIN,而 JOIN 運算子右邊的參考數據。
  • 數據類型是聯結述詞 (ON 子句) 評估的重要層面。 不同數據類型 (1.0"1") 上的類似值可能不相符。 建議明確地將索引鍵轉換成一般類型。
  • 參考數據可以是靜態(僅載入一次)或動態(定期重新整理)。 不過,即使在動態案例中,參考數據也不會進行時間進度,因此左側的數據流必須取得新的事件,才能產生輸出。 如需詳細資訊,請參閱 Azure 串流分析中的時間進度

效能考量

若要防止效能降低,應透過簡單的索引鍵相等來定義參考聯結述詞(ONON s.myKey = r.myKey子句)。 使用複雜表達式或不平等,會在內部產生交叉聯結,後面接著篩選條件(完整掃描與查閱),這可能會影響整體延遲。

可能的話,請將這些複雜表達式移至 WHERE 查詢步驟的 子句,或使用更簡單的條件多次聯結相同的參考數據。

另請參閱