Udostępnij przez


Dodawanie zasobu funkcji zdefiniowanej przez użytkownika (UDF) do aplikacji usługi Databricks

Dodaj funkcje zdefiniowane przez użytkownika (UDF) zarejestrowane w katalogu Unity jako zasoby aplikacji Databricks, aby umożliwić aplikacji wykonywanie zarejestrowanych funkcji SQL i Python. Funkcje zdefiniowane przez użytkownika zapewniają powtórnie wykorzystywaną logikę biznesową, przekształcenia danych i operacje niestandardowe, które można udostępniać w całej organizacji za pomocą scentralizowanego zarządzania.

Wymagania dotyczące uprawnień

Aby uruchomić UDF, jednostka usługi aplikacji musi mieć uprawnienia USE CATALOG do katalogu nadrzędnego, uprawnienia USE SCHEMA do schematu nadrzędnego i uprawnienia EXECUTE do funkcji. Po dodaniu zasobu UDF usługa Azure Databricks automatycznie przyznaje te uprawnienia jednostce usługi aplikacji.

Aby to automatyczne udzielanie powiodło się, należy spełnić jeden z następujących warunków dla każdego uprawnienia:

  • W przypadku USE CATALOG: wszyscy użytkownicy konta mają USE CATALOG uprawnienia do katalogu lub masz MANAGE uprawnienia do katalogu.
  • W przypadku USE SCHEMA: wszyscy użytkownicy konta mają uprawnienia USE SCHEMA do schematu lub masz uprawnienia MANAGE do schematu.
  • W przypadku EXECUTE: wszyscy użytkownicy konta mają EXECUTE uprawnienia do funkcji lub masz MANAGE uprawnienia do funkcji.

Zobacz uprawnienia Katalogu Unity i obiekty podlegające zabezpieczeniom.

Dodawanie zasobu funkcji zdefiniowanej przez użytkownika (UDF)

Przed dodaniem UDF jako zasobu, zapoznaj się z wymaganiami wstępnymi dotyczącymi zasobów aplikacji.

  1. Podczas tworzenia lub edytowania aplikacji przejdź do kroku Konfigurowanie .
  2. W sekcji Zasoby aplikacji kliknij pozycję + Dodaj zasób.
  3. Wybierz Funkcję UC jako typ zasobu.
  4. Wybierz funkcję UDF z dostępnych funkcji w obszarze roboczym. Funkcja musi być już zarejestrowana w Unity Catalog.
  5. Wybierz poziom uprawnień dla aplikacji:
    • Może wykonać: Przyznaje aplikacji uprawnienia do wykonywania UDF z podanymi parametrami. Odpowiada przywilejowi EXECUTE .
  6. (Opcjonalnie) Określ niestandardowy klucz zasobu do odwołania się do funkcji zdefiniowanej przez użytkownika w konfiguracji aplikacji. Kluczem domyślnym jest function.

Zmienne środowiskowe

Podczas wdrażania aplikacji z zasobem UDF usługa Azure Databricks uwidacznia pełną trójpoziomową nazwę za pomocą zmiennych środowiskowych, do których można się odwołać za pomocą pola valueFrom.

Przykładowa konfiguracja:

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

Korzystanie z funkcji w aplikacji:

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

Aby uzyskać więcej informacji, zobacz Używanie zmiennych środowiskowych do uzyskiwania dostępu do zasobów.

Usuwanie zasobu funkcji zdefiniowanej przez użytkownika (UDF)

Gdy usuniesz zasób UDF z aplikacji, to jednostka usługi aplikacji utraci dostęp do funkcji. Sama funkcja UDF pozostaje niezmieniona i nadal będzie dostępna dla innych użytkowników i aplikacji, które mają odpowiednie uprawnienia.

Najlepsze rozwiązania

Podczas pracy z zasobami UDF (funkcji zdefiniowanej przez użytkownika) należy wziąć pod uwagę następujące kwestie:

  • Upewnij się, że funkcje zdefiniowane przez użytkownika są dobrze udokumentowane, posiadając przejrzyste opisy parametrów i typów zwracanych.
  • W kodzie aplikacji łagodnie obsługuj błędy funkcji zdefiniowanej przez użytkownika, w tym walidację parametrów i obsługę wyjątków.
  • Przetestuj zachowanie funkcji UDF w kontekście aplikacji przed wdrożeniem, aby potwierdzić oczekiwane wyniki.
  • Podczas planowania uprawnień aplikacji rozważ zależności funkcji zdefiniowanej przez użytkownika dla bazowych tabel lub źródeł danych.