メインコンテンツまでスキップ

Lakeflow Designer のカスタム演算子

Lakeflow Designerを使用すると 、カスタム演算子 を作成し、それをキャンバス上で組み込みの演算子と並べて直接表示できます。これらを使用して、 Lakeflow Designerに独自のビジネスロジック、計算、または統合機能を拡張できます。カスタム演算子は、以前はユーザー定義演算子(UDO)と呼ばれていました。

カスタム演算子には以下の2つのスコープがあります:

  • ローカル : 演算子は1つのビジュアルデータ準備ファイルに属します。変換内容を記述すると、Genie Codeが演算子を生成します。Genie Codeによるローカルカスタム演算子の作成をご覧ください。
  • 共有 : 演算子はワークスペースに登録されているため、ユーザー自身や他のユーザーはそれを任意のビジュアルデータ準備ファイルに追加できます。そのロジックは、YAMLで記述されたPython関数またはUnity Catalog関数です。自分で作成するか、Genie Codeに作成を依頼します。カスタム演算子の仕組みをご覧ください。
注記

ノートブック環境にないPythonパッケージやシステムライブラリを必要とするカスタムオペレーターを追加すると、Designerはそれらを追加するように求めるプロンプトを表示します。 [依存関係の追加] を選択し、 [環境] サイドペインで [適用] を選択してインストールします。Serverless環境の選択を参照してください。

Genie Codeを使用してローカルカスタムオペレーターを作成する​

Genie Codeがワークスペースで使用可能な場合、Lakeflow Designerキャンバスからローカルカスタム演算子を作成できます。

  1. 演算子 ペインで カスタム演算子の作成 を選択します。

  2. 説明を入力し、必要に応じて名前を入力します。「 プレビューを生成 」を選択します。

プロンプト

たとえば、次の説明を入力します。

Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.
  1. 生成された構成とPython関数を確認し、 Approve and create を選択します。

Designer はローカルオペレーターの定義を現在のファイルに保存し、それを [オペレーター] ペインに追加します。オペレーターのアクションメニューを使用して、定義を編集または削除します。定義を削除する前に、キャンバスから演算子のすべてのインスタンスを削除する必要があります。

ローカルカスタム演算子を公開する​

ローカルのカスタム演算子を他のビジュアルデータ準備で再利用するには、公開します。 演算子 ペインで、演算子のアクションメニューを開き、 公開 を選択します。公開により、共有カスタム演算子が作成され、現在のファイルのすべてのインスタンスが更新されて演算子を使用するようになり、ローカル定義が削除されます。ダイアログで、演算子ファイルの場所と、演算子を ユーザー レジストリと ワークスペース レジストリのどちらに追加するかを選択します。

共有演算子タイプを選択​

共有カスタムオペレーターには、次の3つのタイプがあります。

  • python-run-function : ワークスペースに保存された、インラインPythonを含むスタンドアロンのYAMLファイル。データフレームレベルの変換や外部システムとの連携に最適です。アクセス許可はワークスペースファイルレベルで管理されます。
  • uc-udf : Unity Catalogスカラー関数をラップします。 列レベルの変換に最適です。アクセス権限はUnity Catalog権限によって管理されます。
  • uc-udtf : Unity Catalogテーブル値関数をラップします。 MLクラスタリングや集計などのテーブルレベルの変換に最適です。 アクセス権限はUnity Catalog権限によって管理されます。

機能

python-run-function

uc-udf

uc-udtf

使用例

DataFrame変換、 API統合、電子メール通知

列レベルの計算(BMI、金利)

MLクラスタリング、行全体の集計

入力

データフレーム

単一の値

表全体、行ごと

出力

データフレーム

単一値

表(複数行)

Unity Catalog機能が必要です

No

はい

はい

アクセスガバナンス

ワークスペースのファイル権限

Unity Catalog権限( EXECUTE 、 USE SCHEMA )

Unity Catalog権限( EXECUTE 、 USE SCHEMA )

対応言語

Pythonのみ

SQLまたはSQLラッパー内のPython

SQLまたはSQLラッパー内のPython

機能

python-run-function

uc-udf

uc-udtf

使用例

DataFrame変換、 API統合、電子メール通知

列レベルの計算(BMI、金利)

MLクラスタリング、行全体の集計

入力

データフレーム

単一の値

表全体、行ごと

出力

データフレーム

単一値

表(複数行)

Unity Catalog機能が必要です

No

はい

はい

アクセスガバナンス

ワークスペースのファイル権限

Unity Catalog権限( EXECUTE 、 USE SCHEMA )

Unity Catalog権限( EXECUTE 、 USE SCHEMA )

対応言語

Pythonのみ

SQLまたはSQLラッパー内のPython

SQLまたはSQLラッパー内のPython

カスタム演算子の仕組み​

共有カスタム演算子は、以下で構成されます。

  • 演算子ロジック : 演算子が実行されたときにランするコード。これは、python-run-function 演算子のインラインPython run() 関数、または uc-udf および uc-udtf 演算子のUnity Catalog関数です。Lakeflow Designer カスタム演算子のロジックの記述を参照してください。
  • YAML構成 : 演算子の名前、説明、入力パラメーター、UIウィジェット、ポートなど、Lakeflow Designerに対してUIで演算子を表示する方法を指示します。すべての演算子タイプは custom-operator-v0.1.0 スキーマを使用します。python-run-function 演算子の場合、YAMLはインラインコードも保持するスタンドアロンワークスペースファイルです。Unity Catalog関数の場合、YAMLは関数本体に埋め込まれます。カスタム演算子 YAML リファレンスを参照してください。
  • 登録ファイル : .custom_operators.yaml のエントリ。 Lakeflow Designer はこれによってオペレーターを検出します。「 オペレーターを登録して Lakeflow Designer にデプロイする」を参照してください。

共有演算子の構築​

共有カスタム演算子を最初から最後までビルドするには:

  1. オペレーターの種類を選択してください。 共有オペレータータイプの選択を参照してください。
  2. 演算子のロジックを記述およびテストします。 Lakeflow Designerカスタム演算子のロジックを記述するを参照してください。
  3. YAML で演算子を記述する : 名前、構成プロパティ、 UIウィジェット、およびポート。カスタム演算子YAMLリファレンスを参照してください。
  4. オペレーターを登録する : .custom_operators.yamlに追加します。オペレーターをLakeflow Designerに登録してデプロイするを参照してください。
  5. 他のユーザーがオペレーターを検出して実行できるように、 権限を付与 します。パーミッションを参照してください。
  6. 演算子を使用します。 これは、Lakeflow Designer の 演算子 ペインに、組み込み演算子と並んで表示されます。

各チュートリアルでは、1つの完全なオペレーターについてこれらのステップを順を追って説明します。

ヒント

共有 python-run-function 演算子を自分で記述せずに作成するには、サイドペインでGenie Codeに記述してください。Genie Codeは、演算子を自分用に登録するか、ワークスペース全体用に登録するかを尋ねてから、YAMLファイルを記述して登録します。まだ他のユーザーに 権限を付与する 必要があります。

オペレーターを登録してLakeflow Designerにデプロイします​

オペレーターをLakeflow Designerに表示するには、それを.custom_operators.yamlファイルに登録します。

  • ワークスペース レベル: ファイルをワークスペースのルートに配置すると、オペレーターがすべてのユーザーに表示されます。
  • ユーザー レベル: オペレーターが自分だけに表示されるようにするには、ファイルをユーザーのホームアラーム ( /Workspace/Users/<user-name>/.custom_operators.yaml ) に配置します。
注記

Lakeflow Designerは引き続き.user_defined_operators.yamlという名前の登録ファイルを読み取るため、既存の登録はそのまま機能します。

.custom_operators.yamlに新しい演算子を登録します。同じフォルダーに既に.user_defined_operators.yamlファイルがある場合は、そのエントリーを.custom_operators.yamlに移動します。両方のファイルがフォルダーに存在する場合、Lakeflow Designerは.custom_operators.yamlのみを読み取ります。

operators:セクションでは、ファイルパス、 Unity Catalog関数の参照、およびグロブパターンがサポートされます。 エントリーの種類は組み合わせることができます。

YAML
operators:
# File path (python-run-function operators)
- /Workspace/Users/me/operators/my_operator.yaml
# Glob pattern (registers all matching files)
- /Workspace/Users/me/operators/transforms/*.yaml
# UC function reference (uc-udf and uc-udtf operators)
- catalog: my_catalog
schema: my_schema
functionName: my_function

演算子を更新または削除する​

オペレーターのコードを変更するときは、カスタムオペレーターを更新して変更を読み込みます。メニューの オペレーター tabで、更新アイコン。をクリックします。

  • オペレーターが同じversionを保持している場合、更新すると更新されたコードがロードされます。
  • オペレーターに新しいversionがある場合、更新後に、キャンバス上のオペレーターによって、それにアップグレードするよう(または現在のバージョンを保持するよう)促されます。

Lakeflow Designerからオペレーターを削除するには、.custom_operators.yamlからそのエントリを削除します。uc-udfおよびuc-udtfオペレーターの場合、不要になった場合は、DROP FUNCTIONを使用して基になるUnity Catalog関数もドロップできます。

権限​

権限

目的

.custom_operators.yamlへの 読み取りアクセス 。

オペレーターを発見します。

YAMLファイルへの 読み取りアクセス ( python-run-functionのみ)。

演算子定義を読み込みます。

Unity Catalog 関数に対する EXECUTE (Unity Catalog 関数に基づくオペレーターのみ)。

オペレーターを実行します。

スキーマに対する USE SCHEMA (Unity Catalog関数に基づく演算子のみ)。

関数が作成されたスキーマにアクセスします。

その他の権限

ご利用の通信事業者によっては、ユーザーにその他の権限が必要となる場合があります。例えば、HTTP API呼び出しの場合、 Unity Catalog接続ではUSE CONNECTIONなります。

権限

目的

.custom_operators.yamlへの 読み取りアクセス 。

オペレーターを発見します。

YAMLファイルへの 読み取りアクセス ( python-run-functionのみ)。

演算子定義を読み込みます。

Unity Catalog 関数に対する EXECUTE (Unity Catalog 関数に基づくオペレーターのみ)。

オペレーターを実行します。

スキーマに対する USE SCHEMA (Unity Catalog関数に基づく演算子のみ)。

関数が作成されたスキーマにアクセスします。

その他の権限

ご利用の通信事業者によっては、ユーザーにその他の権限が必要となる場合があります。例えば、HTTP API呼び出しの場合、 Unity Catalog接続ではUSE CONNECTIONなります。

トラブルシューティング​

問題

ソリューション

オペレーターがLakeflow Designer に表示されません。

.custom_operators.yamlが存在し、関数またはファイルパスがリストされていることを確認してください。python-run-function演算子については、ファイルパスとYAMLファイルへのアクセス可能性を確認してください。

スキーマ検証に失敗しました。

YAMLをhttps://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.jsonの公式スキーマと照合して確認してください。

アクセスが拒否されました。

Unity Catalog 関数に基づく演算子の場合、ユーザーが関数に対して EXECUTE、スキーマに対して USE SCHEMA の権限を持っていることを確認してください。python-run-function 演算子の場合、ユーザーがYAMLファイルに対する読み取りアクセス権を持っていることを確認してください。

python-run-function オペレーターが実行時に失敗します。

run()関数のシグネチャがdef run(config, inputs, spark)と一致することを確認してください。コード内のポート名がYAMLと一致していること、および戻り値の辞書キーが出力ポートname値と一致していることを確認してください。

UDTF は間違った型を返します。

UDTF の戻り値の型は明示的である必要があります。入力列の型を参照することはできません。

問題

ソリューション

オペレーターがLakeflow Designer に表示されません。

.custom_operators.yamlが存在し、関数またはファイルパスがリストされていることを確認してください。python-run-function演算子については、ファイルパスとYAMLファイルへのアクセス可能性を確認してください。

スキーマ検証に失敗しました。

YAMLをhttps://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.jsonの公式スキーマと照合して確認してください。

アクセスが拒否されました。

Unity Catalog 関数に基づく演算子の場合、ユーザーが関数に対して EXECUTE、スキーマに対して USE SCHEMA の権限を持っていることを確認してください。python-run-function 演算子の場合、ユーザーがYAMLファイルに対する読み取りアクセス権を持っていることを確認してください。

python-run-function オペレーターが実行時に失敗します。

run()関数のシグネチャがdef run(config, inputs, spark)と一致することを確認してください。コード内のポート名がYAMLと一致していること、および戻り値の辞書キーが出力ポートname値と一致していることを確認してください。

UDTF は間違った型を返します。

UDTF の戻り値の型は明示的である必要があります。入力列の型を参照することはできません。

その他のリソース​

以下のチュートリアルをご覧ください。

例

Type

説明

Gmail の電子メール送信者

python-run-function

DataFrame データを、Gmail を介して CSV Eメール添付ファイルとして送信します。

複利計算機

uc-udf

複利の公式を使用して将来の投資価値を計算します。

K平均法クラスタリング

uc-udtf

scikit-learnを使用してデータをクラスターに分割します。

Slackメッセージを送信

uc-udf

Slack APIを使用してSlackチャンネルに通知を送信します。

すべてのUIウィジェット

uc-udf

利用可能なすべてのUIウィジェットを表示する参照演算子。

例

Type

説明

Gmail の電子メール送信者

python-run-function

DataFrame データを、Gmail を介して CSV Eメール添付ファイルとして送信します。

複利計算機

uc-udf

複利の公式を使用して将来の投資価値を計算します。

K平均法クラスタリング

uc-udtf

scikit-learnを使用してデータをクラスターに分割します。

Slackメッセージを送信

uc-udf

Slack APIを使用してSlackチャンネルに通知を送信します。

すべてのUIウィジェット

uc-udf

利用可能なすべてのUIウィジェットを表示する参照演算子。

オペレーターのロジックを作成するには、「Lakeflow Designerカスタムオペレーターのロジックを作成する」を参照してください。YAML スキーマの詳細なリファレンスについては、カスタムオペレーター YAML リファレンスを参照してください。