Sdílet prostřednictvím


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

Přidejte uživatelem definované funkce (UDF) zaregistrované v Katalogu Unity jako prostředky Databricks Apps, které vaší aplikaci umožní spouštět registrované funkce SQL a Pythonu. 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 tato oprávnění automaticky udělí hlavní službě 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 oprávnění katalogu Unity a zabezpečitelné objekty.

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. Při vytváření nebo úpravě aplikace přejděte ke kroku Konfigurace .
  2. V části Prostředky aplikace klikněte na + Přidat prostředek.
  3. Jako typ prostředku vyberte funkci UC.
  4. Zvolte UDF z dostupných funkcí ve vašem pracovním prostoru. Funkce už musí být zaregistrovaná v katalogu Unity.
  5. 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
  6. (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 uživatelsky definované funkce, Azure Databricks zpřístupní úplný název ve třech úrovních prostřednictvím proměnných prostředí, na které můžete odkazovat pomocí valueFrom pole.

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.