次の方法で共有


イベント プロセッサ エディターを使用してイベント データを処理する

イベント プロセッサ エディターはコードなしのエクスペリエンスであり、イベント データ処理ロジックをドラッグ アンド ドロップで設計できます。 この記事では、エディターを使用して処理ロジックを設計する方法について説明します。

Note

プレビュー段階の拡張機能を使用する場合は、上部にある [拡張機能] を選択します。 それ以外の場合は、[Standard機能] を選択します。 プレビュー段階の拡張機能の詳細については、「Fabric イベント ストリームの概要」を参照してください。

前提条件

開始する前に、次の前提条件を満たしている必要があります。

  • イベントストリーム が配置されている Premium ワークスペースに、寄稿者以上のアクセス許可を使用してアクセスします。

重要

Fabric イベント ストリームの拡張機能は現在プレビュー段階です。

エディターを使用してイベント処理を設計する

コードなしのエディターを使用してデータ ストリームに対してストリーム処理操作を実行するには、次の手順に従います。

  1. 編集モードになっていない場合は、リボンの [編集] を選択します。 接続されている操作のアップストリーム ノードにスキーマがあることを確認します。

    イベント プロセッサ エディターを示すスクリーンショット。

  2. イベント プロセッサ エディターでこのイベントストリームと宛先の間にイベント処理演算子を挿入するには、次の 2 つの方法のいずれかを使います。

    • 接続線から演算子を直接挿入します。 接続線にカーソルを合わせて、[+] +ボタンを選びます。 接続線にドロップダウン メニューが表示され、このメニューから演算子を選択できます。

      ツールバーの [カスタマイズ] ボタンの選択を示すスクリーンショット。

    • リボン メニューまたはキャンバスから演算子を挿入します。

      1. リボンの [操作] メニューから演算子を選択できます。

        右側のペインで選択されたフィールドを示すスクリーンショット

        または、接続線を削除した場合は、ノードのいずれかにカーソルを合わせて+ ボタンを選ぶこともできます。 そのノードの横にドロップダウン メニューが表示され、このメニューから演算子を選択できます。

        接続行のプラス リンクの選択を示すスクリーンショット。

      2. 演算子を挿入した後、これらのノードを再接続する必要があります。 イベント ストリーム ノードの左端にカーソルを合わせ、緑色の円を選んでドラッグし、[フィールドの管理] 演算子ノードに接続します。 同じプロセスに従って、[フィールドの管理] 演算子ノードを Lakehouse ノードに接続します。

        [フィールドの管理] タイルを接続する方法を示すスクリーンショット。

  3. [フィールドの管理] 演算子ノードを選択します。 [フィールドの管理] 構成パネルで、出力するフィールドを選びます。 すべてのフィールドを追加する場合は、[すべてのフィールドを追加] を選びます。 組み込み関数を使用して新しいフィールドを追加し、アップストリームからのデータを集計することもできます。 (現在、サポートされている組み込み関数は、文字列関数、日付と時刻関数、数学関数の一部の関数です。それらを見つけるには "組み込み" で検索してくださいbuilt-in)。

    NVA の構成を管理する方法を示すスクリーンショット。

  4. [フィールドの管理] 演算子を構成したら、[更新] を選択して、この演算子によって生成されたテスト結果を検証します。

    [更新] ボタンを示すスクリーンショット。

  5. 構成エラーがある場合は、下部ペインの [作成エラー] タブに表示されます。

    [作成エラー] タブを示すスクリーンショット。

  6. テスト結果が正しければ、[発行] を選択してイベント処理ロジックを保存し、ライブ ビューに戻ります。

    リボン上の [Teams に公開] ボタンのスクリーンショット。

  7. これらの手順を完了すると、Eventstream がライブ ビューデータのストリーミングと処理を開始する方法を視覚化できます。

    リストのビュー ボタンを示すスクリーンショット。

イベント プロセッサ エディター

イベント プロセッサ エディター (編集モードのキャンバス) を使用すると、データをさまざまな変換先に変換できます。 編集モードに入り、データ ストリームのストリーム処理操作を設計します。

機能が強化されたイベントストリームのイベント処理エディターを示すスクリーンショット。

イベント プロセッサ エディターには、キャンバスと下部ペインが含まれており、次のことができます。

  • ドラッグ アンド ドロップでイベント データ変換ロジックを構築する。
  • 各処理ノードのデータを最初から最後までプレビューする。
  • 処理ノード内の作成エラーを検出する。

エディターのレイアウト

機能が強化されたイベントストリームのイベント処理エディターのレイアウトを示すスクリーンショット。

  • ダイアグラム ビューを含むキャンバス: このペインでは ([操作] メニューから) 演算子を選び、新しく作成された演算子ノードを介して Eventstream と宛先ノードを接続することで、データ変換ロジックを設計できます。 接続線をドラッグ アンド ドロップする、または接続を選んで削除することができます。
  • 右編集 ウィンドウ (画像内の 2 つ): このウィンドウでは、選択したノードまたはビュー ストリーム名を構成できます。
  • [データ プレビュー] タブと [作成エラー] タブを含む下部ペイン: このペインでは、選んだノードのデータを [データ プレビュー] タブでプレビューします。[作成エラー] タブには、操作ノード内の未完了または誤った構成が一覧表示されます。

サポートされているノードの種類と例

インジェストの前に演算子を追加することをサポートする宛先の種類を次に示します。

  • Lakehouse
  • インジェスト前イベント処理
  • 派生ストリーム

Note

インジェスト前演算子の追加をサポートしていない宛先の場合は、まず、演算子の出力として派生ストリームを追加できます。 次に、目的の宛先をこの派生ストリームに追加します。

サポートされていない宛先にフィルター出力を行うイベント処理エディターのレイアウトを示すスクリーンショット。

Lakehouse および KQL Database のイベント プロセッサ (インジェスト前のイベント処理) を使用することで、データを宛先に取り込む前に処理できます。

前提条件

開始する前に、次の前提条件を満たしている必要があります。

  • イベントストリーム が配置されている Premium ワークスペースに、寄稿者以上のアクセス許可を使用してアクセスします。
  • Lakehouse が配置されている Premium ワークスペースに対して、寄稿者以上のアクセス許可を取得します。

エディターを使用してイベント処理を設計する

イベント プロセッサ エディターを使用してイベント処理を設計するには:

  1. Lakehouse 宛先を追加して、右側のペインに必要なパラメータを入力します。 (詳しい手順については、「Eventstream で宛先を追加および管理する」をご覧ください)。

  2. [イベント プロセッサを開く] を選びます。 [イベント処理エディター] スクリーンが表示されます。

    Lakehouse 宛先構成スクリーンで [イベント プロセッサを開く] を選ぶ箇所を示すスクリーンショット。

  3. [イベント処理エディター] キャンバスで、Eventstream ノードを選びます。 右側の [Eventstream] ペインでデータ スキーマのプレビューまたはデータ型の変更ができます。

    [イベント処理エディター] スクリーンの右側ペインのデータ スキーマを示すスクリーンショット。

  4. イベント プロセッサ エディターでこのイベントストリームと宛先の間にイベント処理演算子を挿入するには、次の 2 つの方法のいずれかを使います。

    1. 接続線から演算子を直接挿入します。 接続線にカーソルを合わせて、[+] ボタンを選びます。 接続線にドロップダウン メニューが表示され、このメニューから演算子を選択できます。

      ノードを挿入する接続行のポイント先を示すスクリーンショット。

    2. リボン メニューまたはキャンバスから演算子を挿入します。

      1. リボンの [操作] メニューから演算子を選択できます。 または、接続線を削除した場合は、ノードのいずれかにカーソルを合わせて [+] ボタンを選ぶこともできます。 そのノードの横にドロップダウン メニューが表示され、このメニューから演算子を選択できます。

        [操作] メニューでオペレーターを選択する場所を示すスクリーンショット。

        ノードを挿入するノードのポイント先を示すスクリーンショット。

      2. 最後に、これらのノードを再接続する必要があります。 イベント ストリーム ノードの左端にカーソルを合わせ、緑色の円を選んでドラッグし、[フィールドの管理] 演算子ノードに接続します。 同じプロセスに従って、[フィールドの管理] 演算子ノードを Lakehouse ノードに接続します。

        ノードを接続する箇所を示すスクリーンショット。

  5. [フィールドの管理] 演算子ノードを選択します。 [フィールドの管理] 構成パネルで、出力するフィールドを選びます。 すべてのフィールドを追加する場合は、[すべてのフィールドを追加] を選びます。 組み込み関数を使用して新しいフィールドを追加し、アップストリームからのデータを集計することもできます。 (現在、サポートされている組み込み関数は、文字列関数日付と時刻関数数学関数の一部の関数です。それらを見つけるには "組み込み" で検索してください)。

    演算子の構成方法を示すスクリーンショット。

  6. [フィールドの管理] 演算子を構成したら、[静的プレビューの更新] を選び、この演算子が生成するデータをプレビューします。

    イベント プロセッサ エディターのデータのプレビュー方法を示すスクリーンショット。

  7. 構成エラーがある場合は、下部ペインの [作成エラー] タブに表示されます。

    イベント プロセッサ エディターの作成エラータブを示すスクリーンショット。

  8. プレビューされたデータが正しいと思われる場合は、[完了] を選んでイベント処理ロジックを保存し、Lakehouse 宛先の構成スクリーンに戻ります。

  9. [追加] を選び、Lakehouse 宛先の作成を完了します。

イベント プロセッサ エディター

イベント プロセッサを使用すると、Lakehouse 宛先に取り込むデータを変換できます。 Lakehouse 宛先を構成すると、Lakehouse 宛先の構成スクリーン中央に [イベント プロセッサを開く] オプションが表示されます。

イベント プロセッサ エディターを開く箇所を示すスクリーンショット。

[イベント プロセッサを開く] を選ぶと、[ イベント処理エディター] スクリーンが起動し、データ変換ロジックを定義できます。

イベント プロセッサ エディターには、キャンバスと下部ペインが含まれており、次のことができます。

  • ドラッグ アンド ドロップでイベント データ変換ロジックを構築する。
  • 各処理ノードのデータを最初から最後までプレビューする。
  • 処理ノード内の作成エラーを検出する。

スクリーン レイアウトはメイン エディターに似ています。 スクリーン レイアウトは、次の画像に示す 3 つのセクションで構成されています。

[イベント処理エディター] スクリーンで 3 つの主なセクションを示すスクリーンショット。

  1. ダイアグラム ビューを含むキャンバス: このペインでは ([操作] メニューから) 演算子を選び、新しく作成された演算子ノードを介して Eventstream と宛先ノードを接続することで、データ変換ロジックを設計できます。 接続線をドラッグ アンド ドロップする、または接続を選んで削除することができます。

  2. 右側の編集ペイン: 選んだ操作ノードを構成する、または Eventstream と宛先のスキーマを表示することができます。

  3. [データ プレビュー] タブと [作成エラー] タブを含む下部ペイン: このペインでは、選んだノードのデータを [データ プレビュー] タブでプレビューします。[作成エラー] タブには、操作ノード内の未完了または誤った構成が一覧表示されます。

作成エラー

作成エラーとは、操作ノードの構成が不完全または正しくないために [イベント プロセッサ エディター] で発生するエラーを指し、イベント プロセッサの潜在的な問題を見つけて修正するのに役立ちます。

作成エラーは、[イベント プロセッサ エディター] の下部のパネルで表示できます。 下部のパネルにはすべての作成エラーが一覧表示され、各作成エラーには 4 つの列があります。

  • ノード ID: 作成エラーが発生した操作ノードの ID を示します。
  • ノードの種類: 作成エラーが発生した操作ノードの種類を示します。
  • レベル: 作成エラーの重大度を示します。致命的情報の 2 つのレベルがあります。 致命的なレベルの作成エラーは、イベント プロセッサに重大な問題があり、保存または実行できないことを意味します。 情報レベルの作成エラーは、イベント プロセッサに、イベント プロセッサの最適化や改善に役立つヒントや提案があることを意味します。
  • エラー: 作成エラーの具体的な情報を示し、作成エラーの原因と影響を簡単に説明します。 [詳細の表示] タブを選択すると、詳細を表示できます。

Eventstream と KQL Database ではさまざまなデータ型がサポートされているため、データ型変換のプロセスで作成エラーが発生する可能性があります。

次の表は、Eventstream から KQL Database へのデータ型変換の結果を示しています。 列は Eventstream でサポートされているデータ型を表し、行は KQL Database でサポートされているデータ型を表します。 セルは変換結果を示します。次の 3 つのいずれかになります。

✔️ は変換が成功することを示します。エラーや警告は発生しません。

❌ は変換不可能を示します。致命的な作成エラーが発生します。 エラー メッセージは次のようになります。列 "{0}" のデータ型 "{1}" が、選択した KQL テーブルの予期される型 "{2}" と一致しません。

⚠️ は変換が可能だが不正確であることを示し、情報レベルの作成エラーが発生します。 エラー メッセージは次のようになります。列 "{0}" のデータ型 "{1}" が、選択した KQL テーブルの予期される型 "{2}" と正確には一致しません。 "" に{2}自動変換されます。

string bool datetime 動的 guid INT long real TimeSpan decimal
Int64 ✔️ ⚠️ ✔️ ⚠️ ✔️
Double ✔️ ⚠️ ⚠️
String ✔️ ✔️
Datetime ⚠️ ✔️ ✔️
Record ⚠️ ✔️
Array ⚠️ ✔️

表からわかるように、string から string への変換など、一部のデータ型変換は成功します。 これらの変換では、作成エラーは発生せず、イベント プロセッサの操作には影響しません。

int から string など、一部のデータ型変換は不可能です。 これらの変換によって致命的なレベルの作成エラーが発生し、イベント プロセッサの保存に失敗します。 これらのエラーを回避するには、Eventstream または KQL テーブルでデータ型を変更する必要があります。

一部のデータ型変換 (int から real など) は、可能ですが、正確ではありません。 これらの変換では、データ型どうしの不一致と自動変換の結果を示す情報レベルの作成エラーが発生します。 これらの変換により、データの精度や構造が失われる可能性があります。 これらのエラーを無視するか、Eventstream または KQL テーブルでデータ型を変更してイベント プロセッサを最適化するかを選択できます。

変換演算子

イベント プロセッサには、ビジネス ニーズに応じてイベント データを変換するために使用できる 6 つの演算子が用意されています。

[操作] メニューで使用できる演算子を示すスクリーンショット。

集計

[集計] 変換を使用すると、一定期間内に新しいイベントが発生するたびに、集計 ([合計][最小][最大]、または [平均]) を計算できます。 この操作では、これらの計算列の名前を変更したり、データ内の他のディメンションに基づいて集計をフィルター処理またはスライスしたりすることもできます。 同じ変換に 1 つ以上の集計を含めることができます。

Expand

配列の展開変換は、配列内の値ごとに新しい行を作成する場合に使用します。

Assert

フィルター変換を使用して、入力のフィールドの値に基づいてイベントをフィルター処理します。 データ型 (数値やテキスト) に応じて、変換では選択した条件に一致する値が保持されます (たとえば、is nullis not null など)。

グループ化

グループ化変換を使用して、特定の時間ウィンドウ内のすべてのイベントの集計を計算します。 1 つまたは複数のフィールドの値でグループ化することができます。 これは集計変換で列の名前を変更できることに似ていますが、より多くの集計オプションが用意されており、より複雑な時間枠のオプションが含まれています。 集計と同様に、変換ごとに複数の集計を追加できます。

変換で使用できる集計は次のとおりです。

  • 平均
  • Count
  • 最大値
  • 最小
  • パーセンタイル (連続および不連続)
  • Standard Deviation
  • 合計
  • Variance

タイム ストリーミング シナリオでは、テンポラル ウィンドウに含まれているデータに対する操作の実行は一般的なパターンです。 イベント プロセッサではウィンドウ関数 (Group by 演算子と統合されています) がサポートされます。 この演算子の設定で定義できます。

イベント プロセッサ エディターで使用できる [Group by] 演算子を示すスクリーンショット。

フィールドの管理

フィールドの管理変換では、入力または別の変換から受信するフィールドに対して、追加、削除、データ型の変更、または名前の変更を行うことができます。 作業ウィンドウの設定で、[フィールドの追加] を選んで新しいフィールドを追加したり、複数のフィールドを追加したり、すべてのフィールドを一度に追加したりできます。

イベント プロセッサ エディターで使用できる [フィールドの管理] 演算子を示すスクリーンショット。

また、組み込み関数を使用して新しいフィールドを追加し、アップストリームからのデータを集計することもできます。 (現在、サポートされている組み込み関数は、文字列関数日付と時刻関数数学関数の一部の関数です。それらを見つけるには "組み込み" で検索してください)。

[管理] フィールドの組み込み関数を示すスクリーンショット。

次の表は、フィールドの管理を使用してデータ型を変更した結果を示しています。 列は元のデータ型を表し、行は変更先のデータ型を表します。

  • セルに✔️がある場合は、直接変換が可能で、ターゲット データ型オプションがドロップダウン リストに表示されることを意味します。
  • セルに ❌ がある場合は、直接変換が不可能で、ターゲット データ型オプションがドロップダウン リストに表示されないことを意味します。
  • セルに ️⚠ がある場合は、変換可能ですが、文字列形式がターゲット データ型の要件に準拠している必要があるなど、特定の条件を満たす必要があることを意味します。 例えば、文字列から整数に変換する場合、文字列は 123のような有効な整数形式でなければなりません。abcのような形式ではいけません。
Int64 Double String Datetime Record Array
Int64 ✔️ ✔️ ✔️
Double ✔️ ✔️ ✔️
String ⚠️ ⚠️ ✔️ ⚠️
Datetime ✔️ ✔️
Record ✔️ ✔️
Array ✔️ ✔️

Union (結合)

UNION 変換は、2 つ以上のノードを接続し、共有フィールド (名前とデータ型が同じ) を持つイベントを 1 つのテーブルに追加するために使用します。 一致しないフィールドは削除され、出力に含まれません。

Join

結合変換を使用することにより、選択したフィールドのペアに基づいて、2 つの入力からのイベントを組み合わせます。 フィールドのペアを選択しない場合、結合は、既定で時間に基づきます。 この既定によって、この変換をバッチ変換とは異なるものにしています。

通常の結合と同様に、結合ロジック用のオプションがあります。

  • 内部結合: ペアが一致する両方のテーブルからのレコードのみが含まれます。
  • 左外部結合: 左側 (最初) のテーブルからのすべてのレコードと、フィールドのペアと一致する、2 番目のテーブルからのレコードのみが含まれます。 一致するものがない場合、2 番目の入力からのフィールドは空白になります。