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

Databricks アプリにユーザー定義関数 (UDF) リソースを追加する

Unity Catalogに登録されているユーザー定義関数 (UDF)をDatabricksアプリ リソースとして追加し、登録されているSQLおよびPython関数をアプリで実行できるようにします。 UDF は、集中管理されたガバナンスによって組織全体で共有できる再利用可能なビジネス ロジック、データ変換、カスタム操作を提供します。

特権要件

UDFを実行するには、アプリのサービスプリンシパルには、親カタログに対するUSE CATALOG権限、親スキーマに対するUSE SCHEMA権限、および関数に対するEXECUTE権限が必要です。 UDFリソースを追加すると、 Databricksこれらの権限をアプリのサービスプリンシパルに自動的に付与します。

この自動付与が成功するには、権限ごとに次のいずれかが当てはまる必要があります。

  • USE CATALOGの場合: すべてのアカウント ユーザーがカタログに対してUSE CATALOG権限を持っているか、カタログに対してMANAGE権限を持っています。
  • USE SCHEMAの場合: すべてのアカウント ユーザーがスキーマに対するUSE SCHEMA権限を持っているか、またはスキーマに対するMANAGE権限を持っています。
  • EXECUTEの場合: すべてのアカウント ユーザーが関数に対するEXECUTE権限を持っているか、または関数に対するMANAGE権限を持っています。

Unity Catalog の特権とセキュリティ保護可能なオブジェクトを参照してください。

ユーザー定義関数(UDF)リソースを追加する

UDF をリソースとして追加する前に、アプリ リソースの前提条件を確認してください。

  1. アプリを作成または編集するときは、 「構成」 ステップに移動します。

  2. [アプリ リソース] セクションで、 [+ リソースの追加] をクリックします。

  3. リソース タイプとして UC 機能を 選択します。

  4. ワークスペースで利用可能な関数から UDF を選択します。関数はすでにUnity Catalogに登録されている必要があります。

  5. アプリの権限レベルを選択します:

    • 実行可能: 提供された問題を使用してUDFを実行する権限をアプリに付与します。 EXECUTE権限に相当します。
  6. (オプション) アプリ構成で UDF を参照する方法であるカスタム リソース キーを指定します。デフォルトのキーはfunctionです。

環境変数

UDF リソースを使用してアプリをデプロイすると、Databricks は、 valueFromフィールドを使用して参照できる環境変数を通じて完全な 3 レベルの名前を公開します。

構成例:

YAML
env:
- name: UC_FUNCTION_NAME
valueFrom: function # Use your custom resource key if different

アプリケーションで関数を使用する:

Python
import os
from databricks.sdk import WorkspaceClient

# Access the function name
function_name = os.getenv("UC_FUNCTION_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Execute the function via SQL
result = w.statement_execution.execute_statement(
warehouse_id="your_warehouse_id",
statement=f"SELECT {function_name}('parameter_value')"
)

# Process the result
print(f"Function result: {result}")

詳細については、 「環境変数を使用してリソースにアクセスする」を参照してください。

ユーザー定義関数(UDF)リソースを削除する

アプリからUDFリソースを削除すると、アプリのサービスプリンシパルはその関数にアクセスできなくなります。 UDF 自体は変更されず、適切な権限を持つ他のユーザーやアプリケーションでも引き続き利用できます。

ベストプラクティス

UDF リソースを操作するときは、次の点を考慮してください。

  • UDF が明確な説明と戻り値の型で十分に文書化されていることを確認してください。
  • 検証や例外処理など、アプリ コード内でUDFエラーを適切に処理します。
  • 期待される結果を確認するために、展開前にアプリのコンテキストで UDF の動作をテストします。
  • アプリの権限を計画するときは、基になるテーブルまたはデータ ソースに対するUDF依存関係を考慮してください。