1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft FabricAdvent Calendar 2024

Day 5

Fabric データパイプラインの監視方法について - 新しい Fabric ジョブイベントを使用したエラー通知 -

Last updated at Posted at 2024-12-04

はじめに

Fabric データパイプラインの監視方法について紹介します

基本

Microsoft Fabric でパイプラインを使用してデータを取り込む のチュートリアルを例に説明します。

実行結果の確認

パイプラインを実行すると、出力タブにて各アクティビティの実行結果が確認できます。

実行中:

image.png

実行後:

image.png

制御フロー系のアクティビティでは、単純な出力結果が json で確認できます。

image.png

image.png

データのコピーなどのデータ処理系アクティビティでは、処理のパフォーマンス情報にアクセスできます。

image.png

image.png

また、ノートブック呼び出しなどは、その時実行されたノートブックのスナップショットにアクセス可能です。

image.png

image.png

image.png

スケジュールと実行履歴

スケジュール設定では、毎日何時、毎週何曜日、毎月何日、などの実行タイミングの設定が可能です。

image.png

image.png

image.png

image.png

image.png

また、実行履歴からはそのパイプラインの過去の実行を確認できます。

image.png

監視ハブ

監視ハブでは、14日間のパイプラインその他のジョブすべての実行結果が確認可能です。

image.png

パイプラインの実行をクリックすると、上述の実行履歴と同様に当時の実行結果が確認できます。

image.png

エラー通知方法について

では、エラー通知について記載します。

パイプラインアクティビティによる通知

通知系のアクティビティを使用してメッセージを作成して送信が可能です。

Outlook アクティビティ

エラー分岐から Office 365 Outlook アクティビティを追加します。

image.png

サインインして、メール送信先と内容を決定します。

image.png

この時、動的なコンテンツ(システム変数などの情報)を使用して、URLの記載などが可能です。

参考:Microsoft Fabric データパイプラインのエラー通知機能に監視ハブURLなどの情報を記載する

失敗の分岐によりメール通知のアクティビティが実行されると、サインインしたアカウントによりメールが自動送信されます。

image.png

image.png

Teams アクティビティ

エラー分岐から Teams アクティビティを追加します。

image.png

サインインして、投稿先と内容を決定します。

image.png

image.png

失敗の分岐によりTeamsのアクティビティが実行されると、サインインしたアカウントにより自動投稿されます。

image.png

image.png

パイプラインアクティビティによるエラー通知の問題点

1. アクティビティをセットアップしたアカウントから送信される

前述でご覧の通り、アクティビティを設定したアカウントから送信されるので、退職後などに問題が発生します。
単純に個人からジョブの通知が送信されるのも気持ち悪いですね。

これについては、専用のアカウントを作成すればよいかもしれませんが、Officeのライセンスが必要となってしまいます。

2. エラー通知はすべての検出したいアクティビティから個別で接続が必要

エラー通知の分岐にたどり着く前にエラーが発生すると、通知されません。

image.png

発想的には、以下のような設定が考えられますが、実はこれは動作しません。接続されたアクティビティがAND条件で判定されてしまい、すべてエラーのときにTeamsアクテビティが実行される、というような状況になってしまいます。

image.png

なので、以下のようにアクテビティごとに設定が必要となってしまいます。

image.png

対処方法トリガー専用のパイプラインを作成する

この問題に対処するために、メイン処理の呼び出しとエラー通知、スケジュール設定のみを行うトリガー専用のパイプラインを構成することが考えられます。

image.png

対象方法すべての処理を完了でスルーし、エラーカウントによる判定で最後のエラー通知を制御する

またはメインパイプライン上の処理をすべて完了で進行するようにしていき、If分岐などでエラーカウントを設定することも考えられます※実装は面倒すぎるので割愛

image.png

新しい Fabric Job イベントを利用した通知

Fabric Real-Time Hubの新しいイベントカテゴリーの発表 にて、監視ハブで確認できるジョブについてリアルタイム監視ができるようになりました。

これからの推奨方法はこちらになるかと考えられます。

リアルタイムハブによる Fabric job イベントデータ取得

リアルタイムハブ は、 ストリームデータ(Kafka トピックなどのストリームデータソース、データベース CDC ,Fabric イベントなど )を取得するためのカタログです。

リアルタイムハブにアクセスすると、現在アクセス可能なストリームデータソースや、ストリームデータソースに接続するためのウィザードにアクセスできます。

image.png

image.png

今回の発表で、Fabric ジョブイベント と、OneLake イベントが対象のソースとして追加されました。

image.png

ジョブイベントの詳細

image.png

OneLake イベントの詳細

image.png

アクティベーターによるエラー通知のセットアップ

どうも手順か機能自体に問題がありそうなので追って修正します。

Fabric ジョブイベントを使用して、エラー通知を構成してみます。

リアルタイムハブから、ジョブイベントのアラート設定にアクセスします。

image.png

ソースとなるイベントを設定します。

image.png

対象イベントは4つありますが、一旦すべて取得でいいと思います。

image.png

現在のところ、ワークスペースで発生するジョブ全体を取得できず、指定したアイテムでのジョブイベントが取得可能です。

image.png

フィルタ設定はここではやめておきます。

image.png

設定を確認したら保存します。

image.png

対象のイベントが発生するたびにアクションとしてメール通知されるようにしましょう。

image.png

また、この設定が定義されるアイテムである、 アクティベーター の名前と保存先を決めてやります。

image.png

image.png

作成すると、アクティベーターアイテムとアクティベーターに接続されたストリームデータソースが表示されます。

image.png

アクティベーターを開くと、先ほど定義したルールが設定されていることがわかります。まだ条件設定をしていないので一旦停止しておきます。

image.png

取得したイベントの内容

アラートを設定した対象のイベントをクリックすると以下の情報にアクセスできます。

image.png

ライブフィード:

image.png

最初は空の状態になるので、パイプラインを実行してイベントを起こしてやると、10分ほど時間経過後にフィードが表示されるようになります。

重要な項目としては 対象のアイテムとジョブの実行IDが入った Type ,invokeType、jobStatus などでしょうか

image.png

image.png

image.png

image.png

image.png

分析:

イベントがどれだけの数発生しているかが表示されます。

image.png

ソースの管理:

リアルタイムハブで行った設定が入っていますね

image.png

アラート設定の評価結果

アラート設定に移動すると、作成時に指定した内容が表示されています。

image.png

条件内容を変更していくと評価結果に応じて定義での評価結果が変化します。

すべての値ではなく、ここでJobStatus=Failed、invokedType=Scheduledを条件として設定してやることで、スケジュール実行が失敗したときのみの条件となります。

image.png

image.png

最初の取得でjobFailedのソースとしたイベントで検証時に、重複カウントが発生し、すべての値ではなく条件をつけてやると評価が正しくなるという事象がありました。(想定された動作かは後々確認予定)

アクションの編集をクリックするとメッセージのプレビューが確認できます

image.png

メッセージを編集します。
ここでメッセージに監視ハブの検索で使えるjobInstanceIdをコンテキストとして追加しておきましょう。(監視ハブに飛ぶURLでも作ろうと思いましたが、空白が入ってしまい作れませんでした。)

image.png

テストアクションを送信してやると、以下のようになります。

image.png

監視ハブで、jobInstanceIdを検索してやることで、ジョブを確認できます。

image.png

アラートの評価が正しいことを確認できたら保存して開始するとパイプラインのエラー通知が有効となります。

image.png

なお、アクションはメールのほかにも Teams や、 Power Automate (プレミアムコネクタが必要)が利用できます。

image.png

従来のパイプラインアクテビティと比べてまだイマイチな点
  • メールメッセージの中に直接リンクなどを埋め込めない

※気づき次第追記予定

制限事項:https://learn.microsoft.com/ja-jp/fabric/real-time-intelligence/data-activator/activator-limitations

補足:ジョブイベントの内容

アクティベーター内では他のイベントを追加することも可能です。

image.png

リアルタイムハブのようなものが表示されます。

image.png

その他アクティベータ参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?