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キャンバスからローカルカスタム演算子を作成できます。
-
演算子 ペインで カスタム演算子の作成 を選択します。
-
説明を入力し、必要に応じて名前を入力します。「 プレビューを生成 」を選択します。
たとえば、次の説明を入力します。
Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.
- 生成された構成とPython関数を確認し、 Approve and create を選択します。
Designer はローカルオペレーターの定義を現在のファイルに保存し、それを [オペレーター] ペインに追加します。オペレーターのアクションメニューを使用して、定義を編集または削除します。定義を削除する前に、キャンバスから演算子のすべてのインスタンスを削除する必要があります。
ローカルカスタム演算子を公開する
ローカルのカスタム演算子を他のビジュアルデータ準備で再利用するには、公開します。 演算子 ペインで、演算子のアクションメニューを開き、 公開 を選択します。公開により、共有カスタム演算子が作成され、現在のファイルのすべてのインスタンスが更新されて演算子を使用するようになり、ローカル定義が削除されます。ダイアログで、演算子ファイルの場所と、演算子を ユーザー レジストリと ワークスペース レジストリのどちらに追加するかを選択します。
共有演算子タイプを選択
共有カスタムオペレーターには、次の3つのタイプがあります。
python-run-function: ワークスペースに保存された、インラインPythonを含むスタンドアロンのYAMLファイル。データフレームレベルの変換や外部システムとの連携に最適です。アクセス許可はワークスペースファイルレベルで管理されます。uc-udf: Unity Catalogスカラー関数をラップします。 列レベルの変換に最適です。アクセス権限はUnity Catalog権限によって管理されます。uc-udtf: Unity Catalogテーブル値関数をラップします。 MLクラスタリングや集計などのテーブルレベルの変換に最適です。 アクセス権限はUnity Catalog権限によって管理されます。
機能 |
|
|
|
|---|---|---|---|
使用例 | DataFrame変換、 API統合、電子メール通知 | 列レベルの計算(BMI、金利) | MLクラスタリング、行全体の集計 |
入力 | データフレーム | 単一の値 | 表全体、行ごと |
出力 | データフレーム | 単一値 | 表(複数行) |
Unity Catalog機能が必要です | No | はい | はい |
アクセスガバナンス | ワークスペースのファイル権限 | Unity Catalog権限( | Unity Catalog権限( |
対応言語 | Pythonのみ | SQLまたはSQLラッパー内のPython | SQLまたはSQLラッパー内のPython |
カスタム演算子の仕組み
共有カスタム演算子は、以下で構成されます。
- 演算子ロジック : 演算子が実行されたときにランするコード。これは、
python-run-function演算子のインラインPythonrun()関数、または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 にデプロイする」を参照してください。
共有演算子の構築
共有カスタム演算子を最初から最後までビルドするには:
- オペレーターの種類を選択してください。 共有オペレータータイプの選択を参照してください。
- 演算子のロジックを記述およびテストします。 Lakeflow Designerカスタム演算子のロジックを記述するを参照してください。
- YAML で演算子を記述する : 名前、構成プロパティ、 UIウィジェット、およびポート。カスタム演算子YAMLリファレンスを参照してください。
- オペレーターを登録する :
.custom_operators.yamlに追加します。オペレーターをLakeflow Designerに登録してデプロイするを参照してください。 - 他のユーザーがオペレーターを検出して実行できるように、 権限を付与 します。パーミッションを参照してください。
- 演算子を使用します。 これは、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関数の参照、およびグロブパターンがサポートされます。 エントリーの種類は組み合わせることができます。
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関数もドロップできます。
権限
権限 | 目的 |
|---|---|
| オペレーターを発見します。 |
YAMLファイルへの 読み取りアクセス ( | 演算子定義を読み込みます。 |
Unity Catalog 関数に対する EXECUTE (Unity Catalog 関数に基づくオペレーターのみ)。 | オペレーターを実行します。 |
スキーマに対する USE SCHEMA (Unity Catalog関数に基づく演算子のみ)。 | 関数が作成されたスキーマにアクセスします。 |
その他の権限 | ご利用の通信事業者によっては、ユーザーにその他の権限が必要となる場合があります。例えば、HTTP API呼び出しの場合、 Unity Catalog接続では |
トラブルシューティング
問題 | ソリューション |
|---|---|
オペレーターがLakeflow Designer に表示されません。 |
|
スキーマ検証に失敗しました。 | YAMLを |
アクセスが拒否されました。 | Unity Catalog 関数に基づく演算子の場合、ユーザーが関数に対して |
|
|
UDTF は間違った型を返します。 | UDTF の戻り値の型は明示的である必要があります。入力列の型を参照することはできません。 |
その他のリソース
以下のチュートリアルをご覧ください。
例 | Type | 説明 |
|---|---|---|
| DataFrame データを、Gmail を介して CSV Eメール添付ファイルとして送信します。 | |
| 複利の公式を使用して将来の投資価値を計算します。 | |
| scikit-learnを使用してデータをクラスターに分割します。 | |
| Slack APIを使用してSlackチャンネルに通知を送信します。 | |
| 利用可能なすべてのUIウィジェットを表示する参照演算子。 |
オペレーターのロジックを作成するには、「Lakeflow Designerカスタムオペレーターのロジックを作成する」を参照してください。YAML スキーマの詳細なリファレンスについては、カスタムオペレーター YAML リファレンスを参照してください。