Microsoftの動画番組「Data Exposed」において、Azure SQL DatabaseとMicrosoft Fabricを組み合わせた自動異常検知ソリューションが解説されました。Change Event Streamingでデータベース変更をFabricへストリーミング転送し、KQLのアルゴリズムとActivatorで異常検知から自動対処までシームレスに行う実装手順を紹介しています。
何が発表されたのか
Microsoft公式の技術動画配信番組「Data Exposed MVP Edition」において、Microsoft Data Platform MVPのMatt Gordon氏(Lean Techniques社 データ&アナリティクス担当ディレクター)と、MicrosoftのAnna Hoffman氏が登壇し、Azure SQL DatabaseとMicrosoft Fabricを連携させた高度なリアルタイムデータ異常検知ソリューションの実装アーキテクチャを発表・解説しました。
本ソリューションは既存機能の高度な組み合わせによるもので、Azure SQL Databaseの機能である「Change Event Streaming」を用いてデータベースの更新ログ(トランザクションログ)を直接Microsoft FabricのEventstreamへ押し出し(Push)、KQL(Kusto Query Language)の時系列解析関数を活用して手動のしきい値設定なしで異常なデータスパイクを検出します。すでに提供中のプレビューおよび一般提供機能を活用した実用的な構成であり、今すぐ実務に導入可能なレベルで手順が示されています。
発表された機能・アップデートの全容
Azure SQL DatabaseにおけるChange Event Streamingの構成
動画では、Azure SQL Database Hyperscale上で動作するデータベース「GlobalGlassDB」を対象に、Change Event Streamingの設定手順がT-SQLコードを用いて説明されました。従来のChange Tracking(変更追跡)やChange Data Capture(CDC)と異なり、Change Event Streamingはトランザクションログから取得した変更イベントを、Polling処理なしで外部の宛先へ直接Pushするストリーミングメカニズムを提供します。
実演画面では、まずCREATE DATABASE SCOPED CREDENTIALコマンドを実行してManaged Identityを用いた認証情報を設定し、Azure SQL DatabaseからMicrosoft Fabricへのセキュリティで保護されたアクセス権限を付与しました。続けてシステムストアドプロシージャsys.sp_rx_create_event_stream_groupを実行し、Eventstreamの接続先URLやEvent Hubsの構成パラメータ(スキーマなしのRAWデータ、JSONフォーマット指定)を定義しました。最後にsys.sp_rx_add_table_to_event_stream_groupを用いて、チケット販売情報を保持するdbo.TicketSalesテーブルをストリームグループに追加することで、テーブル更新が即座に外部ストリームへ伝播する基盤を構築しました。
チケット販売シミュレーションと異常データの発生
異常検知の性能を実証するため、架空の国際サッカー大会「Global Glass 2026」の決勝戦チケット販売システムを模したシミュレーションデータが作成されました。リアルタイム検知アルゴリズムが正確に機能するには、事前に正常なデータパターンの「ベースライン」が存在している必要があります。
デモでは3つのフェーズでSQLクエリ(Query 1)が実行されました。フェーズ1では、一般の購入者による通常のチケット購入(正規の注文)のログを一定時間流し込み、システムの標準的な負荷と購入頻度のベースラインを形成しました。フェーズ2では、不正なBotプログラムによる買い占め攻撃(スキャルピング行為)を想定し、20秒間にわたり通常数値を大幅に逸脱する大量の購入リクエストを意図的に発生させました。そしてフェーズ3では再び通常の販売状態に戻す操作を行い、異常なデータスパイクが前後の正常データに挟まれた状態を作り出しました。このようにして、短時間で明確なスパイクを含むリアルタイムストリームを生成しました。
Fabric EventstreamとEventhouse(KQL Database)のリアルタイム連携
Azure SQL DatabaseからPushされた変更イベントは、Microsoft Fabricのリアルタイムインテリジェンス機能群によってシームレスに受信・蓄積されます。FabricのWebコンソール上では、グラフィカルなUIを用いてデータフローが可視化されました。
具体的には、Azure SQL側のChange Event Streamingからデータを受け取る「CustomEndpoint Source」ノードが配置され、そこからEventstreamノード「es-gg2026-sales」を経由して、最終的なデータストレージである「Eventhouse(KQL Database / Kusto Database)」へと自動接続されています。Eventhouseは時系列データの超高速な検索・分析に特化した分散データベースであり、ストリーミングデータに対してミリ秒単位の応答速度で分析クエリを実行できます。複雑なETLパイプラインやサードパーティのメッセージブローカーを一切挟むことなく、管理の行き届いたセキュリティ境界内でSQLログが時系列データベースへ流れ込む構成が示されました。
KQL関数「series_decompose_anomalies」による自動異常検知
本アーキテクチャの中核となるのが、FabricのKQL Queryset画面で実演された自動異常検知クエリです。従来のシステムでは「1分間の注文数が1,000件を超えたらアラート」といった固定のしきい値を人間が手動設定する必要がありましたが、本手法では機械学習アルゴリズムを数行のKQLで呼び出すことで完全自動化を実現しています。
使用された主要な関数はseries_decompose_anomaliesです。この関数は、時系列データに対して季節性(周期性)、トレンド、ノイズを自動的に分解(Decomposition)し、過去のパターンから統計的に大きく外れたデータポイントを検出します。デモ画面の「Anomaly Chart」タブでは、青い折れ線グラフで表示された正常値の推移の中に、Bot攻撃が発生した時刻(2026-06-16 20:11前後)において赤いマーカーで顕著なスパイク(Anomaly scoreが高いポイント)が自動強調表示されました。スコアは「標準偏差からどれだけ離れているか」を数値化したものであり、人間がルールを厳密に書くことなく、数分前の正常値と比較して異常と判定されたログ行(Anomaly Rows)のみが正確に抽出されました。
Fabric Activatorを活用した自動アラートと後続アクションの自動化
検知された異常データに対して、即座に運用上のアクションを起こすための仕組みとして「Fabric Activator(旧称Reflex)」が統合されています。KQL QuerysetのUI上にある「More -> Set Alert」ボタンをクリックすることで、クエリ結果を直接Activatorのルールの入力ソースとしてバインドする設定画面が開かれました。
Activatorの設定パネルでは、チェック間隔(例:5分ごと)と発火条件(イベント検出時)を定義でき、アクションの選択肢として多角的な自動化ルールが提示されました。単にチケット販売担当者のMicrosoft TeamsチャネルやEメールへ通知を発行するだけでなく、不正アクセスIPアドレスをファイアウォールで遮断する「Custom Action」の実行、データ補正処理を行う「Run Fabric Pipeline」「Run Dataflow」、あるいは「Run Notebook(PySpark/Pythonスクリプト)」を直接起動させることが可能です。これにより、人間がダッシュボードを監視し続ける必要がなく、データ面での異常検知からシステム的な自己修復や隔離処理までを完全自動化する一連のデータループが完成します。
性能・ベンチマーク
| 評価項目 |
測定値・仕様 |
備考・補足 |
出典 |
| データ転送方式 |
Push型 Change Event Streaming |
トランザクションログから直で送信(Polling不要) |
動画内デモ(3:00) |
| データベースエンジン |
Azure SQL Database Hyperscale |
高速かつ低コストな自動スケール対応エディション |
動画内発言(4:58) |
| 異常データ発生時間 |
20秒間(Bot攻撃シミュレーション) |
意図的なデータスパイクを生成 |
動画内デモ(4:35) |
| 分析対象時間ウィンドウ |
直近15分間(make-series) |
リアルタイム時系列分析の集計範囲 |
動画内コード(8:12) |
| 使用アルゴリズム |
時系列分解アルゴリズム(KQL内蔵) |
series_decompose_anomalies関数 |
動画内コード(7:57) |
| アラート検知からアクション |
即時 / 5分周期等のスケジュール実行 |
Fabric Activatorによる監視周期 |
動画内デモ(8:38) |
動画内では定量的なスループット限界値の測定は行われていませんが、Azure SQL HyperscaleとKQL(Kusto)エンジンの組み合わせにより、ミリ秒〜秒レベルの遅延でペタバイトスケールのストリーミングデータを処理可能であることが示されています。
競合サービスとの比較
Microsoft FabricとAzure SQLによる本構成を、クラウドデータプラットフォームにおける主要な競合ソリューションと比較します。
| 機能・比較項目 |
Microsoft Fabric + Azure SQL |
Snowflake + Snowpipe Streaming |
Databricks (Delta Live Tables) |
AWS (Kinesis + DynamoDB / Timestream) |
| データ連携の容易さ |
高(T-SQL数行でPush型連携完了) |
中(SDKやKafkaコネクタの設定が必要) |
中(Auto LoaderやSpark Streamingの記述) |
中(Kinesis ConnectorやLambdaの構築が必要) |
| 異常検知の実装難易度 |
極めて低(KQL関数1行で時系列分解) |
中(Snowflake ML関数の呼び出しクエリ記述) |
中(PySpark / MLflowでのモデル構築が必要) |
高(Amazon Lookout for Metrics等の別サービス連携) |
| ノーコードでの自動アクション |
対応(Fabric Activator標準搭載) |
非対応(外部のWebhookやAWS Lambda連携が必要) |
制限あり(Databricks Workflows / Webhook連携) |
非対応(EventBridge + Lambdaの構築が必要) |
| ID・認証管理 |
Managed Identityによる統合 |
独自キーまたはOAuth認証 |
Cloud IAM統合 |
AWS IAM統合 |
※競合サービスの仕様は編集部注に基づく知識補足です。
Microsoftの強みは、Azure SQLからFabricへのデータ移動、KQLでの機械学習関数適用、Activatorによるノーコード・アクション発火までが同一のエコシステム内で完全に統合されている点にあります。他社プラットフォームでは複数のサービス(メッセージブローカー、分析エンジン、アラートツール)を個別に配管・認証設定する必要がありますが、Microsoftプラットフォームではインフラ管理のオーバーヘッドを大幅に削減できます。
料金・提供プラン
動画内では、具体的な利用料金や課金体系に関する直接的な言及はありませんでした。
(編集部注)
本ソリューションを実際に構築する場合、以下の料金が発生します:
- Azure SQL Database: 選択したエディション(General Purpose、Provisioned/Serverless、Hyperscale等)およびvCore数・ストレージ容量に基づく従量課金。
- Microsoft Fabric: Fabric Capacity(F SKU:F2〜F2048)の容量に基づく時間単位の課金、またはPower BI Premium(P SKU)容量の利用。Fabric環境内のEventstream、Eventhouse(KQL)、Activatorの消費量はFabric Capacity Unit(CU)から差し引かれます。
日本から使う方法
日本のユーザーが本ソリューションを即座に試すための手順は以下の通りです。
- AzureおよびFabricアカウントの準備: Microsoft AzureサブスクリプションおよびMicrosoft Fabricが有効化されたテナントを用意します。
- Azure SQL Databaseの作成: 東日本リージョン(Japan East)または西日本リージョン(Japan West)にて、Azure SQL Database(推奨:HyperscaleまたはServerless)を起動します。
- Managed Identityの設定: Azure SQL Databaseのシステム割り当てID(Managed Identity)を有効化し、Fabricワークスペースに対するアクセス権限を付与します。
- Change Event Streamingの有効化: T-SQLクエリツール(Azure PortalのQuery EditorやSSMS)から、
CREATE DATABASE SCOPED CREDENTIALおよびsys.sp_rx_create_event_stream_groupを実行し、対象テーブルを指定します。
- Fabricワークスペースでの受信: Fabricの「Real-Time Intelligence」体験に切り替え、Eventstreamを作成。カスタムエンドポイントの接続情報を配置してSQLからのストリームを受信します。
- KQL Querysetでの検知設定: Eventhouseにデータが読み込まれた後、KQLクエリを作成し
series_decompose_anomalies関数を適用します。
- Activatorによる通知設定: KQL画面から「Set Alert」を選択し、Teams通知や自動パイプライン実行のトリガーを設定します。
リージョン制限については、Microsoft FabricおよびAzure SQL DatabaseのChange Event Streaming機能が利用可能なリージョンであれば日本国内からも問題なく利用可能です。UIやドキュメントは日本語表示に対応しています。
誰にどう効くのか
エンジニア・データアーキテクト
- 影響: 複雑なETLパイプラインやストリーミングミドルウェア(Kafka等)を独自に運用・保守する手間が大幅に削減されます。
- メリット: T-SQLとKQLの標準的な知識だけで、リアルタイムのデータ変更検知から機械学習を用いた異常検出、自動リカバリパイプラインの起動までを一気通貫で実装できます。
企画・プロダクトマネージャー
- 影響: 不正注文、システム障害、データ品質劣化などのトラブルに対する検知・対応のリードタイムが劇的に短縮されます。
- メリット: サービスダウンやセキュリティ侵害によるビジネス損失を最小限に抑え、エンドユーザーへのサービス品質(SLA)を安定して維持できます。
経営層・CIO / CISO
- 影響: 高価なサードパーティ製データ監視ソリューションを導入することなく、既存のMicrosoftエコシステム(Azure + Fabric)の投資対効果を最大化できます。
- メリット: ガバナンスとセキュリティ(Managed Identity)が統合された環境でリアルタイムリスク管理を実現し、運用コスト(OpEx)の削減とデータ信頼性の向上を両立できます。
まとめ
Azure SQL DatabaseのChange Event StreamingとMicrosoft FabricのReal-Time Intelligenceを組み合わせることで、従来のしきい値監視とは一線を画す高度な自動異常検知システムを極めてシンプルなコードで構築できることが実証されました。
データ基盤の運用保守を担当するエンジニアは、まず公式ドキュメントで提供されているT-SQLサンプルスクリプトを参照し、テスト用データベースのテーブル変更をFabric Eventstreamへ送信する検証から着手することを推奨します。