在一般案例中,我們使用事件處理引擎來計算資料流資料 (延遲非常低)。 在許多情況下,使用者需要讓保存的歷程資料或變更緩慢的資料集 (也稱為參考資料) 與即時事件資料流相互關聯,以便做出更聰明的決策。 例如,將事件資料流聯結至可將 IP 位址對應至位置的靜態資料集。 這是 Stream Analytics 中唯一支援且不需要暫時繫節的 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 串流分析中的時間進度 。
效能考量
若要避免效能降低,應該透過簡單索引鍵相等 () ON s.myKey = r.myKey
定義參考聯結述詞 (ON
子句) 。 使用複雜運算式或複雜運算式會在內部產生交叉聯結,後面接著篩選 (完整掃描與查閱) ,這可能會影響整體延遲。
可能的話,請將這些複雜的運算式移至 WHERE
查詢步驟的 子句,或使用更簡單的條件多次聯結相同的參考資料。