Azure Stream Analytics で MATCH_RECOGNIZE をサポート

2019年8月8日 に投稿済み

Senior Software Engineer, Azure Stream Analytics

Azure Stream Analytics で MATCH_RECOGNIZE がサポートされました。これにより、アラートまたは追加のデータ計算を行うために、イベントのシーケンスに一致するクエリを作成、変更、保守する場合に複雑さとコストが大幅に削減されます。

Azure Stream Analytics の概要

Azure Stream Analytics は、Azure のフルマネージド型のサーバーレス PaaS サービスです。お客様はミッションクリティカルなシナリオにおいて、高速なデータ ストリームを分析、処理し、リアルタイムのインサイトを入手することができます。開発者は、カスタム コードを追加して拡張できるシンプルな SQL 言語を使用して、スケールアップおよびスケールアウト可能な強力な分析処理ロジックを作成、デプロイし、ミリ秒単位のレイテンシでインサイトを提供できます。

従来の方法によるストリーム処理へのパターン マッチングの組み込み

多くのお客様は、Azure Stream Analytics を使用して大量のデータを継続的に監視し、イベントのシーケンスを検出して、それらのイベントからアラートをトリガーしたり、データを集計したりしています。これは本質的にはパターン マッチングです。

パターン マッチングを行う場合、従来お客様は複数の結合を利用し、結合ごとに単一のイベントを検出していました。これらの結合を組み合わせて、イベントのシーケンスの検索、結果の計算、アラートの作成を行います。パターン マッチング用のクエリの作成は複雑なプロセスであり、非常にミスが発生しやすく、保守とデバッグが困難です。また、Kleene Star、Kleene Plus、ワイルドカードなどの複雑なパターンを表現しようとする場合に制限があります。

これらの問題に対応し、カスタマー エクスペリエンスを向上させるため、Azure Stream Analytics では MATCH_RECOGNIZE 句を提供することで、パターンを定義して、一致したイベントから値を計算できるようにしました。MATCH_RECOGNIZE 句は、作成が容易で可読性や保守性が高いため、ユーザーの生産性が向上します。

MATCH_RECOGNIZE の典型的なシナリオ

イベント マッチングは、データ ストリーム処理の重要な側面です。データ ストリーム内のパターンを表現および検索できるようになることで、ユーザーは特定のイベントのシーケンスが検出された場合にアラートをトリガーしたり、値を計算したりできるシンプルかつ強力なアルゴリズムを作成できます。

たとえば、食品調理施設のシナリオを考えてみましょう。この施設には、複数の調理器具があり、それぞれに温度モニターが付いています。特定の調理器具の温度が 5 分以内に 2 倍になった場合には、停止操作を生成する必要があります。調理器具を停止する必要があるのは、温度の急激な上昇によって、食品が焦げたり、火災を引き起こしたりする危険があるためです。

Query
SELECT * INTO ShutDown from Temperature
MATCH_RECOGNIZE (
     LIMIT DURATION (minute, 5)
     PARTITON BY cookerId
     AFTER MATCH SKIP TO NEXT ROW
     MEASURES
         1 AS shouldShutDown
     PATTERN (temperature1 temperature2)
     DEFINE
         temperature1 AS temperature1.temp > 0,
         temperature2 AS temperature2.temp > 2 * MAX(temperature1.temp)
) AS T

上記の例では、MATCH_RECOGNIZE によって、制限時間 5 分、一致が見つかった場合に出力する値、一致するパターン、各パターン変数の定義方法を定義しています。一致が見つかると、MEASURES 値を含むイベントが ShutDown に出力されます。この一致は cookerId によって調理器具ごとにパーティション分割されているため、個々に評価されます。

MATCH_RECOGNIZE のサポートにより、パターン マッチングの表現が容易になり、パターン マッチング クエリの作成と保守に費やす時間が短縮され、以前は作成やデバッグがほぼ不可能だったリッチなシナリオを実現できるようになりました。

Azure Stream Analytics の利用を開始

Azure Stream Analytics を使用すると、IoT デバイスやアプリケーションからの高速なデータ ストリーム、クリックストリーム、その他のデータ ストリームをリアルタイムで処理できます。利用を開始するには、Azure Stream Analytics のドキュメントをご覧ください。