Operatorzy niestandardowi w Lakeflow Designer

Lakeflow Designer pozwala tworzyć niestandardowe operatory , które pojawiają się bezpośrednio na płótnie obok wbudowanych operatorów. Użyj ich, aby rozszerzyć Lakeflow Designer o własną logikę biznesową, obliczenia lub integracje. operatory niestandardowe wcześniej nazywano operatorami zdefiniowanymi przez użytkownika (UDO).

Operatorzy niestandardowi występują w dwóch zakresach:

  • Lokalne: Operator należy do jednego pliku przygotowania danych wizualnych. Opisz transformację, a Genie Code generuje operatora. Zobacz Utwórz lokalny operator niestandardowy za pomocą Genie Code.
  • Udostępnione: Operator jest zarejestrowany w workspace, więc Ty i inni użytkownicy możecie dodać go do dowolnego pliku przygotowania wizualnych danych. Jej logika to funkcja Python lub funkcja Unity Catalog, opisana w YAML. Napisz to sam lub poproś Genie Code, żeby to stworzył. Zobacz, jak działają niestandardowe operatory.

Stwórz lokalnego, niestandardowego operatora za pomocą Genie Code

Gdy Genie Code będzie dostępny w Twoim workspace, możesz utworzyć lokalny, niestandardowy operator na kanwie Lakeflow Designer:

  1. W panelu Operatorzy wybierz Utwórz operator niestandardowy.

  2. Wprowadź opis i, opcjonalnie, nazwę. Wybierz Wygeneruj podgląd.

    Wskazówka

    Na przykład wpisz następujący opis:

    Count the business days between two date columns, excluding weekends. Let me choose the start and end date columns and name the output column.
    
  3. Przejrzyj wygenerowaną konfigurację i funkcję Python, następnie wybierz Zatwierdzenie i utwórz.

Designer przechowuje lokalną definicję operatora w aktualnym pliku i dodaje ją do panelu operatorów . Użyj menu akcji operatora, aby edytować lub usunąć definicję. Musisz usunąć każdą instancję operatora z płótna, zanim będziesz mógł usunąć jego definicję.

Wybierz typ współdzielonego operatora

Współdzielone operatory niestandardowe występują w trzech typach:

  • python-run-function: samodzielny plik YAML z osadzonym kodem Python, przechowywany w obszarze roboczym. Najlepsze w przypadku przekształceń na poziomie ramki danych i integracji zewnętrznych. Uprawnienia są zarządzane na poziomie pliku obszaru roboczego.
  • uc-udf: Hermetyzuje funkcję skalarną Unity Catalog. Najlepsze w przypadku przekształceń na poziomie kolumny. Dostęp jest kontrolowany przez uprawnienia Unity Catalog.
  • uc-udtf: Opakowuje funkcję zwracającą tabelę w Unity Catalog. Najlepsze w przypadku przekształceń na poziomie tabeli, takich jak klastrowanie uczenia maszynowego i agregacja. Dostęp jest kontrolowany przez uprawnienia Unity Catalog.
Funkcja python-run-function uc-udf uc-udtf
Przykładowy przypadek użycia Przekształcenia ramki danych, integracje interfejsu API, powiadomienia e-mail Obliczenia na poziomie kolumn (BMI, stopy procentowe) Klaster uczenia maszynowego, agregacja między wierszami
Dane wejściowe Ramki danych Pojedyncze wartości Cała tabela, wiersz według wiersza
Output Ramki danych Pojedyncza wartość Tabela (wiele wierszy)
Wymaga funkcji Unity Catalog No Yes Yes
Zarządzanie dostępem Uprawnienia do pliku obszaru roboczego Uprawnienia Unity Catalog (EXECUTE, USE SCHEMA) Uprawnienia Unity Catalog (EXECUTE, USE SCHEMA)
Obsługiwane języki Tylko język Python SQL lub Python w otoczce SQL SQL lub Python w otoczce SQL

Jak działają operatorzy niestandardowi

Współdzielony operator niestandardowy składa się z:

  • Logika operatora: kod uruchamiany po wykonaniu operatora. Jest to funkcja inline Python run() dla python-run-function operatorów lub funkcja katalogu Unity dla uc-udf operatorów i uc-udtf operatorów. Zobacz Pisanie logiki dla operatorów niestandardowych Lakeflow Designer.
  • Konfiguracja YAML: informuje projektanta Lakeflow, jak przedstawić operator w interfejsie użytkownika, w tym nazwę operatora, opis, parametry wejściowe, widżety interfejsu użytkownika i porty. Wszystkie typy operatorów używają schematu custom-operator-v0.1.0 . Dla operatora python-run-function YAML to samodzielny plik przestrzeni roboczej, który zawiera również kod wbudowany. Dla funkcji Unity Catalog YAML jest osadzony w treści funkcji. Zobacz odwołanie do niestandardowego operatora YAML.
  • Plik rejestracji: wpis umożliwiający .custom_operators.yaml projektantowi Lakeflow odnajdywanie operatora. Zobacz Zarejestruj i wdroż swojego operatora w Lakeflow Designer.

Utwórz operator współdzielony

Aby zbudować własny operator współdzielony od początku do końca:

  1. Wybierz typ operatora. Zobacz Wybór współdzielonego typu operatora.
  2. Napisz i przetestuj logikę operatorów. Zobacz Jak pisać logikę dla niestandardowych operatorów Lakeflow Designer.
  3. Opisz operatora w YAML: jego nazwę, właściwości konfiguracyjne, widżety UI oraz porty. Zobacz dokumentację referencyjną niestandardowego operatora YAML.
  4. Zarejestruj operator: Dodaj go do .custom_operators.yaml. Zobacz Zarejestruj i wdroż swojego operatora w Lakeflow Designer.
  5. Przyznaj uprawnienia , aby inni użytkownicy mogli odnaleźć i uruchomić operatora. Zobacz Uprawnienia.
  6. Użyj operatora. Pojawia się w panelu Operators w Lakeflow Designer, obok wbudowanych operatorów.

Każdy samouczek omawia te kroki dla jednego kompletnego operatora.

Wskazówka

Aby utworzyć współdzielony python-run-function operator bez konieczności samodzielnego pisania, opisz go w Genie Code w bocznym panelu. Genie Code pyta, czy zarejestrować operatora dla ciebie, czy dla całej przestrzeni roboczej, a następnie zapisuje plik YAML i rejestruje operatora. Nadal musisz przyznawać uprawnienia innym użytkownikom.

Rejestrowanie i wdrażanie operatora w usłudze Lakeflow Designer

Aby operator pojawił się w Lakeflow Designer, zarejestruj go w pliku .custom_operators.yaml:

  • Poziom obszaru roboczego: Umieść plik w katalogu głównym obszaru roboczego, aby operator był widoczny dla wszystkich użytkowników.
  • Poziom użytkownika: Umieść plik w folderze domowym użytkownika (/Workspace/Users/<user-name>/.custom_operators.yaml), aby operatory były widoczne tylko dla Ciebie.

Note

Lakeflow Designer nadal odczytuje pliki rejestracyjne o nazwie .user_defined_operators.yaml, więc istniejące wpisy rejestracyjne nadal działają.

Rejestruj nowych operatorów w .custom_operators.yaml. Jeśli ten sam folder już ma plik .user_defined_operators.yaml, przenieś jego wpisy do .custom_operators.yaml. Gdy oba pliki znajdują się w folderze, Lakeflow Designer odczytuje tylko .custom_operators.yaml.

Sekcja operators: obsługuje ścieżki plików, odwołania do funkcji Unity Catalog i wzorce glob. Możesz mieszać typy wpisów:

operators:
  # File path (python-run-function operators)
  - /Workspace/Users/me/operators/my_operator.yaml
  # Glob pattern (registers all matching files)
  - /Workspace/Users/me/operators/transforms/*.yaml
  # UC function reference (uc-udf and uc-udtf operators)
  - catalog: my_catalog
    schema: my_schema
    functionName: my_function

Aktualizowanie lub usuwanie operatora

Gdy zmieniasz kod operatora, odśwież własne operatory, aby wczytać zmiany. Na karcie Operatory w menu kliknij pozycję Odśwież ikonę..

  • Jeśli operator zachowa ten sam versionparametr , odświeżanie ładuje zaktualizowany kod.
  • Jeśli operator ma nowy version, operator na obszarze roboczym wyświetli po odświeżeniu monit z prośbą o zaktualizowanie go do tej wersji (lub pozostawienie bieżącej wersji).

Aby usunąć operatora z Lakeflow Designer, usuń jego wpis z .custom_operators.yaml. W przypadku operatorów uc-udf i uc-udtf można również usunąć bazową funkcję Unity Catalog za pomocą DROP FUNCTION, jeśli nie jest już potrzebna.

Permissions

Pozwolenie Purpose
Dostęp tylko do odczytu do .custom_operators.yaml. Znajdź operatora.
Dostęp do odczytu do pliku YAML (python-run-function tylko). Załaduj definicję operatora.
EXECUTE dla funkcji Unity Catalog (operatory oparte wyłącznie na funkcjach Unity Catalog). Uruchom operator.
USE SCHEMA na schemacie (operatory oparte wyłącznie na funkcjach Unity Catalog). Uzyskaj dostęp do schematu, w którym jest tworzona funkcja.
Inne uprawnienia W zależności od operatora użytkownicy mogą wymagać innych uprawnień. Na przykład USE CONNECTION w połączeniu z usługą Unity Catalog do wywołań interfejsu API HTTP.

Troubleshooting

Issue Rozwiązanie
Operator nie pojawia się w Lakeflow Designer. Sprawdź, czy .custom_operators.yaml istnieje i zawiera na liście Twoją funkcję lub ścieżkę pliku. W przypadku python-run-function operatorów sprawdź ścieżkę pliku i czy plik YAML jest dostępny.
Sprawdzanie poprawności schematu kończy się niepowodzeniem. Zweryfikuj kod YAML względem oficjalnego schematu pod adresem https://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.json.
Odmowa uprawnień. Dla operatorów opartych na funkcjach Unity Catalog sprawdź, czy użytkownicy mają uprawnienie EXECUTE do funkcji i uprawnienie USE SCHEMA do schematu. W przypadku operatorów python-run-function sprawdź, czy użytkownicy mają uprawnienia do odczytu pliku YAML.
python-run-function operator kończy działanie niepowodzeniem w czasie wykonywania. Sprawdź, czy run() podpis funkcji jest zgodny z def run(config, inputs, spark). Sprawdź, czy nazwy portów w kodzie są zgodne z kodem YAML i czy zwracane klucze słownika są zgodne z wartościami portów name wyjściowych.
Funkcja UDTF zwraca nieprawidłowe typy. Typy zwracane przez funkcję UDTF muszą być jawne; Nie można odwoływać się do typów kolumn wejściowych.

Dodatkowe zasoby

Zapoznaj się z następującymi samouczkami:

Example Typ Description
Nadawca wiadomości e-mail w usłudze Gmail python-run-function Wyślij dane DataFrame jako załącznik do wiadomości e-mail CSV przez Gmail.
Kalkulator odsetek złożonych uc-udf Oblicz przyszłe wartości inwestycji przy użyciu formuły odsetek złożonych.
Klastrowanie K-średnich uc-udtf Dzielenie danych na klastry przy użyciu biblioteki scikit-learn.
Wyślij wiadomość slack uc-udf Wysyłaj powiadomienia do kanałów Slack przez API Slack.
Wszystkie widżety interfejsu użytkownika uc-udf Operator referencyjny prezentujący wszystkie dostępne widżety interfejsu użytkownika.

Aby napisać logikę operatora, zobacz Jak napisać logikę dla niestandardowych operatorów Lakeflow Designer. Pełne informacje referencyjne dotyczące schematu YAML można znaleźć w informacjach referencyjnych dotyczących niestandardowego operatora YAML.