Azure Stream Analytics とは、複数のソースからの大量の高速ストリーミング データを同時に分析および処理するように設計された、リアルタイムの分析および複合イベント処理エンジンのことである。
Stream Analytics クエリ言語には、ストリーミング データを分析するための豊富な関数が用意されているため、CEP (Complex Event Procssing、複合イベント処理) を実行することができる。
Azure Stream Analytics はJavaScriptで書かれたuser-defined aggregates (UDA) をサポートしている。
[windowing function]
Tumbling
時間帯による設定。重複なし。TumblingWindow(second,10)の様に書く。
特定の期間の合計や平均などを求める際に使用される。
Hopping
時間帯による設定。重複あり。HoppingWindow(second,10,2)の様に書く。
Sliding
イベント発生時。SlidingWindow(second,10)の様に書く。
Session
似た時刻に到着したイベントがクラスター化され、データが存在しない期間がフィルターで除外される。
[ウォーターマーク遅延メトリック(watermark delay metric)]
どこまで処理できたかを算出・推測する機構をウォーターマークと呼び、追加の負荷を処理するのに十分な処理リソースがあることを確認するためにウォーターマーク遅延メトリックを監視する。
遅れている時は、大量の受信データを処理するためのリソースがジョブに不足していることが考えられる。
[高可用性を向上させる]
同一の Azure Stream Analytics ジョブを Azureのペアになっているリージョンにデプロイする。
[専用のAzure Event Hubs]
作成後にパーティション数を変更できる。
[遅延を減らす方法]
partition by を使用してクエリをスケールアウト。
ストリーミングユニットの数を増やす。
[バックログされた入力イベントの数を減らす]
ストリーミング ユニットの数を増やす。