Microsoft Fabric では、各ワークスペースの操作ログやメトリック情報を自動的に収集し、
「ワークスペース監視(Workspace Monitoring)」として可視化することができます。
ただし、
ドキュメントにも記載がある通り、保持期間は30日間となっています。
このため、30日を過ぎたログを残したい場合は別途保存先を用意する必要があります。
そこで今回は、レイクハウスを使って長期保管する方法を紹介します。
ちなみに、長期で保持しておくことで
リアルタイム監視とは異なる「バッチ的な過去分析」が可能になります。
たとえば月次レポートや利用傾向の可視化などに活用できます。
【参考】検討したアプローチ
30日を過ぎてもデータが失われないようにするため、
まず思いつくのはレイクハウスに長期保管する方法です。
最初に考えたのは、ワークスペース監視のリアルタイムデータソースからイベントストリームを使って直接レイクハウスに書き込むという方法でした。
しかし、実際には次のような制約がある認識です。(間違っていたら教えて下さい。)
- ワークスペース監視のソースは、ワークスペース設定で自動作成されるイベントストリームにしか含まれていない
- 新しくイベントストリームを作成しても、そこからはワークスペース監視のデータを参照できない
- さらに、この自動生成されたイベントストリームは編集不可のため、宛先にレイクハウスを追加することもできない
今回の方法
そこで今回は、
KQLデータベース(ワークスペース監視で自動作成されるもの)をソースとして、
Data PipelineでレイクハウスにUpsertする方法を採用しました。
手順
まず、スキーマを有効化したレイクハウスを作成します。
レイクハウスの画面上部から
[新しいパイプライン]をクリックします。

ナビゲーションが立ち上がるので、
この方法だと簡単に一度に対象テーブルを登録することができます。
RowLogsだけはあとでエラーになるので外します。(Timestamp列がないから)
そもそもデータも空なので、今回は対象から外しました。

スキーマ名を設定しておくと整理がしやすくなります。
今回は「WS_Monitor」にしました。
重要!
[データ転送をすぐに開始する] のチェックを外してからOKします。
このあとアップサート設定を編集するためです。

以下のようなループとコピーアクティビティが含まれたパイプラインが作成されます。

コピーアクティビティの宛先設定を開き、
アップサート(Upsert) に変更。
キー列は Timestamp を指定します。
保存して実行します。
全ての実行が完了すると、以下のように
レイクハウスに10個のテーブルが連携されます。

念のため、
その後、もう一度パイプラインを実行して
アップサートが正しく機能しているか(重複がないか) 確認します。
最後に、パイプラインをスケジュール登録しておきます。
まずは週1回の実行で十分でしょう。
まとめ
Fabric のワークスペース監視は非常に便利ですが、
保持期間が短いため、長期保管・履歴分析には一工夫が必要です。
今回のように
KQLデータベース → Data Pipeline → Lakehouse
という構成にすることで、
過去データを蓄積し、より柔軟な分析や監査ログの可視化ができるようになります。
Youtubeもやってます!
FabricやDatabricksについて学べる勉強会を毎月開催!
次回イベント欄から直近のMicrosoft Data Analytics Day(Online) 勉強会ページ移動後、申し込み可能です!








