Note
この情報は、Databricks CLI バージョン 0.205 以降に適用されます。 Databricks CLI は パブリック プレビュー段階です。
Databricks CLI の使用には、Databricks ライセンスおよび使用状況データのプロビジョニングを含むDatabricks のプライバシーに関する通知が適用されます。
functions 内の コマンド グループを使用すると、Unity カタログでユーザー定義関数 (UDF) を管理できます。 関数の実装には、任意の SQL 式またはクエリを指定できます。また、クエリでテーブル参照が許可されている場合はどこでも呼び出すことができます。 Unity カタログでは、関数はテーブルと同じレベルに存在するため、フォーム catalog_name.schema_name.function_nameで参照できます。
databricksでの関数作成
新しい関数を作成します。
Important
これは試験段階の機能です。
関数を作成するには、ユーザーに次のアクセス許可が必要です。
- 関数の親カタログの USE_CATALOG
-
USE_SCHEMAとCREATE_FUNCTION、関数の親スキーマにて
databricks functions create [flags]
オプション
--json JSON
要求本文を含む JSON ファイルに対するインライン JSON 文字列または @path。
Examples
次の例では、JSON ファイルを使用して関数を作成します。
databricks functions create --json @function-definition.json
次の例では、インライン JSON を使用して関数を作成します。
databricks functions create --json '{"name": "my_catalog.my_schema.my_function", "data_type": "INT", "full_data_type": "INT", "return_params": {"parameters": []}, "routine_body": "SQL", "routine_definition": "SELECT 1", "routine_dependencies": {"dependencies": []}, "parameter_style": "S", "is_deterministic": true, "sql_data_access": "CONTAINS_SQL", "is_null_call": false, "security_type": "DEFINER", "specific_name": "my_function"}'
databricks 関数の削除
指定された名前と一致する関数を削除します。
削除を成功させるには、ユーザーが次のいずれかの条件を満たす必要があります。
- 関数の親カタログの所有者です
- 関数の親スキーマの所有者であり、その親カタログに対する
USE_CATALOG特権を持っている - 関数自体の所有者であり、その親カタログに対する
USE_CATALOG特権と、その親スキーマに対するUSE_SCHEMA特権の両方を持っている
databricks functions delete NAME [flags]
Arguments
NAME
関数の完全修飾名 (形式 catalog_name.schema_name.function_name)。
オプション
--force
関数が空でなくても強制的に削除します。
Examples
次の例では、関数を削除します。
databricks functions delete my_catalog.my_schema.my_function
次の例では、関数を強制的に削除します。
databricks functions delete my_catalog.my_schema.my_function --force
databricks 関数を取得する
親カタログとスキーマ内から関数を取得します。
フェッチを成功させるには、ユーザーが次のいずれかの要件を満たす必要があります。
- メタストア管理者
- 関数の親カタログの所有者です
- 関数の親カタログに対する
USE_CATALOG権限を持ち、関数の所有者になる - 関数の親カタログに対する
USE_CATALOG特権、関数の親スキーマに対するUSE_SCHEMA特権、および関数自体に対するEXECUTE特権を持つ
databricks functions get NAME [flags]
Arguments
NAME
関数の完全修飾名 (形式 catalog_name.schema_name.function_name)。
オプション
--include-browse
プリンシパルが選択的メタデータにのみアクセスできる応答に関数を含めるかどうか。
Examples
次の例では、関数に関する情報を取得します。
databricks functions get my_catalog.my_schema.my_function
次の例では、ブラウズ情報を含む関数にアクセスします。
databricks functions get my_catalog.my_schema.my_function --include-browse
databricks 関数の一覧
指定された親カタログとスキーマ内の関数を一覧表示します。
ユーザーがメタストア管理者の場合、すべての関数が出力リストに返されます。 それ以外の場合、ユーザーはカタログに対する USE_CATALOG 特権とスキーマに対する USE_SCHEMA 特権を持っている必要があります。出力リストには、ユーザーが EXECUTE 権限を持っているか、ユーザーが所有者である関数のみが含まれます。 配列内の要素の特定の順序は保証されません。
databricks functions list CATALOG_NAME SCHEMA_NAME [flags]
Arguments
CATALOG_NAME
対象の関数の親カタログの名前。
SCHEMA_NAME
関数の親スキーマ。
オプション
--include-browse
プリンシパルが選択的メタデータにのみアクセスできる応答に関数を含めるかどうか。
--max-results int
返される関数の最大数。
--page-token string
前のクエリに基づいて次のページに移動する不透明な改ページ トークン。
Examples
次の例では、カタログとスキーマ内のすべての関数を一覧表示します。
databricks functions list my_catalog my_schema
次の例では、最大 10 個の結果を持つ関数を一覧表示します。
databricks functions list my_catalog my_schema --max-results 10
次の例では、参照情報を含む関数の一覧を示します。
databricks functions list my_catalog my_schema --include-browse
databricks 関数の更新
指定された名前と一致する関数を更新します。
更新できるのは、関数の所有者だけです。 ユーザーがメタストア管理者でない場合、ユーザーは新しい関数所有者であるグループのメンバーである必要があります。 ユーザーは、次のいずれかの条件を満たす必要があります。
- メタストア管理者
- 関数の親カタログの所有者です
- 関数の親スキーマの所有者であり、その親カタログに対する
USE_CATALOG特権を持っています - 関数自体の所有者であり、その親カタログに対する
USE_CATALOG特権と、関数の親スキーマに対するUSE_SCHEMA特権を持っています
databricks functions update NAME [flags]
Arguments
NAME
関数の完全修飾名 (形式 catalog_name.schema_name.function_name)。
オプション
--json JSON
要求本文を含む JSON ファイルに対するインライン JSON 文字列または @path。
--owner string
関数の現在の所有者のユーザー名。
Examples
次の例では、関数の所有者を更新します。
databricks functions update my_catalog.my_schema.my_function --owner someone@example.com
グローバル フラグ
--debug
デバッグ ログを有効にするかどうかを指定します。
-h または --help
Databricks CLI、または関連コマンド グループ、または関連コマンドのヘルプの表示。
--log-file 文字列
出力ログを書き込むファイルを表す文字列。 このフラグが指定されていない場合、既定では stderr に出力ログが書き込まれます。
--log-format 形式
ログ形式の種類、 text 、または json。 既定値は text です。
--log-level 文字列
ログ形式レベルを表す文字列。 指定しない場合、ログ形式レベルは無効になります。
-o, --output 型
コマンド出力の種類( text または json)。 既定値は text です。
-p, --profile 文字列
コマンドの実行に使用する ~/.databrickscfg ファイル内のプロファイルの名前。 このフラグが指定されていない場合は、存在する場合は、 DEFAULT という名前のプロファイルが使用されます。
--progress-format 形式
進行状況ログを表示する形式: default、 append、 inplace、または json
-t, --target 文字列
該当する場合は、使用するバンドル ターゲット