Udostępnij za pośrednictwem


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 odniesienie dotyczące uprawnień Unity Catalog.

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.