参照データ JOIN (Azure Stream Analytics)
通常のシナリオでは、イベント処理エンジンを使用して非常に短い遅延時間でストリーミング データを計算します。 多くの場合、ユーザーは永続的な履歴データまたは変更頻度が高くないデータセット (aka. 参照データ) をリアルタイムのイベント ストリームと関連付けて、システムに関してより賢明な判断を下す必要があります。 たとえば、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"
一致しない可能性があります。 キーを共通型に明示的に変換することをお勧めします。 - 参照データは、静的 (1 回のみ読み込む) または動的 (定期的に更新) できます。 ただし、動的な場合でも、参照データは時間の進行を行わないので、左側のストリームは出力を生成するために新しいイベントを取得する必要があります。 詳細については、「 Azure Stream Analytics での時間の進行状況 」も参照してください。
パフォーマンスに関する考慮事項
パフォーマンスの低下を防ぐには、参照結合述語 (ON
句) を単純なキーの等値 (ON s.myKey = r.myKey
) を使用して定義する必要があります。 複雑な式 (不等式) を使用すると、内部的にクロス結合の後にフィルター (フル スキャンとルックアップ) が続き、全体的な待機時間に影響を与える可能性があります。
可能な場合は、これらの複雑な式をクエリ ステップの 句に WHERE
移動するか、同じ参照データを複数の単純な条件で結合します。