Přidání uživatelem definované funkce (UDF) do aplikace Databricks

Přidejte uživatelské funkce (UDF) zaregistrované v Katalogu Unity jako prostředky Databricks Apps, které vaší aplikaci umožní spouštět registrované funkce SQL a Python. Funkce definované uživatelem poskytují opakovaně použitelnou obchodní logiku, transformace dat a vlastní operace, které je možné sdílet v rámci vaší organizace s centrálě spravovanou správou.

Požadavky na oprávnění

Aby bylo možné spustit UDF, musí mít služební účet aplikace oprávnění k nadřazenému katalogu USE CATALOG, oprávnění k nadřazenému schématu USE SCHEMA a oprávnění k funkci EXECUTE. Když přidáte prostředek UDF, Azure Databricks automaticky udělí tato oprávnění instančnímu objektu aplikace.

Aby bylo toto automatické udělení úspěšné, musí být pro každé oprávnění splněno jedno z následujících podmínek:

  • Pro USE CATALOG: Buď všichni uživatelé účtu mají USE CATALOG oprávnění k katalogu, nebo máte MANAGE oprávnění v katalogu.
  • Pro USE SCHEMA: Buď všichni uživatelé účtu mají USE SCHEMA oprávnění ke schématu, nebo máte MANAGE oprávnění ke schématu.
  • Pro EXECUTE: Buď všichni uživatelé účtu mají EXECUTE oprávnění k funkci, nebo máte MANAGE oprávnění k funkci.

Viz referenční informace k oprávněním katalogu Unity.

Přidat zdroj funkce definované uživatelem (UDF)

Než přidáte uživatelsky definovanou funkci (UDF) jako prostředek, projděte si požadavky na prostředek aplikace.

  1. V části Prostředky aplikace při vytváření nebo úpravě aplikace klikněte na + Přidat prostředek>.
  2. Zvolte UDF z dostupných funkcí ve vašem pracovním prostoru. Funkce už musí být zaregistrovaná v katalogu Unity.
  3. Vyberte úroveň oprávnění pro vaši aplikaci:
    • Může provést: Udělí aplikaci oprávnění ke spuštění UDF s použitím zadaných parametrů. Odpovídá oprávnění EXECUTE
  4. (Optional) Zadejte vlastní klíč prostředku, který určuje, jak odkazujete na uživatelem definovanou funkci v konfiguraci aplikace. Výchozí klíč je function.

Proměnné prostředí

Když nasadíte aplikaci s prostředkem UDF, Azure Databricks zveřejní úplný tříúrovňový název prostřednictvím proměnných prostředí, na které můžete odkazovat pomocí pole valueFrom.

Příklad konfigurace:

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

Použití funkce v aplikaci:

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}")

Další informace najdete v tématu Použití proměnných prostředí pro přístup k prostředkům.

Odeberte zdroj uživatelem definované funkce (UDF)

Když z aplikace odeberete uživatelsky definovanou funkci, principál služby aplikace ztratí přístup k funkci. UDF zůstává beze změny a zůstává dostupná pro ostatní uživatele a aplikace, které mají příslušná oprávnění.

Osvědčené postupy

Při práci s uživatelsky definovanými prostředky zvažte následující skutečnosti:

  • Ujistěte se, že funkce definované uživatelem jsou dobře zdokumentované, s jasnými popisy parametrů a typy návratových hodnot.
  • Ošetřete chyby UDF v kódu aplikace elegantně, včetně ověřování parametrů a zpracování výjimek.
  • Před nasazením otestujte chování funkce definované uživatelem v kontextu aplikace a ověřte očekávané výsledky.
  • Při plánování oprávnění aplikace zvažte závislosti UDF na podkladových tabulkách nebo zdrojích dat.