Door de gebruiker gedefinieerde operators in Lakeflow Designer

Met Lakeflow Designer kunt u door de gebruiker gedefinieerde operators maken die rechtstreeks in het canvas naast ingebouwde operators worden weergegeven. Gebruik deze om Lakeflow Designer uit te breiden met uw eigen bedrijfslogica, berekeningen of integraties.

Door de gebruiker gedefinieerde operatoren komen in twee scopes:

Maak een lokale, door de gebruiker gedefinieerde operator aan met Genie Code

Wanneer Genie Code beschikbaar is in je werkruimte, kun je een lokale, door de gebruiker gedefinieerde operator aanmaken vanaf het Lakeflow Designer-canvas:

  1. Selecteer in het Operatoren-paneel Door gebruiker gedefinieerde operator maken.

  2. Voer een beschrijving in en, optioneel, een naam. Selecteer Voorbeeld genereren.

    Tip

    Voer bijvoorbeeld de volgende beschrijving in:

    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. Bekijk de gegenereerde configuratie en de Python-functie, selecteer dan Goedkeuren en aanmaken.

Designer slaat de definitie van de lokale operator op in het huidige bestand en voegt deze toe aan het Operators-paneel. Gebruik het actiemenu van de operator om de definitie te bewerken of te verwijderen. Je moet elke instantie van de operator van het canvas verwijderen voordat je de definitie kunt verwijderen.

Kies een type gedeelde operator

Gedeelde, door de gebruiker gedefinieerde operatoren hebben drie typen:

  • python-run-function: een zelfstandig YAML-bestand met inline-Python opgeslagen in de werkruimte. Het meest geschikt voor transformaties op DataFrame-niveau en externe integraties. Machtigingen worden beheerd op het niveau van het werkruimtebestand.
  • uc-udf: Omsluit een scalaire functie van Unity Catalog. Het meest geschikt voor transformaties op kolomniveau. Toegang wordt beheerd door unity-catalogusmachtigingen.
  • uc-udtf: Omsluit een tabelwaardefunctie van Unity Catalog. Het meest geschikt voor transformaties op tabelniveau, zoals ML-clustering en -aggregatie. Toegang wordt beheerd door unity-catalogusmachtigingen.
Feature python-run-function uc-udf uc-udtf
Voorbeeld van een toepassing DataFrame-transformaties, API-integraties, e-mailmeldingen Berekeningen op kolomniveau (BMI, rente) ML-clustering, aggregatie tussen rijen
Invoer Dataframes Enkele waarden Hele tabel, rij per rij
Uitvoer Dataframes Enkele waarde Tabel (meerdere rijen)
Vereist Unity Catalog-functie No Yes Yes
Toegangsbeheer Machtigingen voor werkruimtebestanden Machtigingen voor Unity Catalog (EXECUTE, USE SCHEMA) Machtigingen voor Unity Catalog (EXECUTE, USE SCHEMA)
Ondersteunde talen Alleen Python SQL of Python in een SQL-wrapper SQL of Python in een SQL-wrapper

Hoe door de gebruiker gedefinieerde operators werken

Een gedeelde, door de gebruiker gedefinieerde operator bestaat uit:

  • Operatorlogica: De code die wordt uitgevoerd wanneer de operator wordt uitgevoerd. Dit is een inline Python-functie run() voor python-run-function operatoren, of een Unity Catalog-functie voor uc-udf en uc-udtf operatoren. Zie Logica schrijven voor door gebruikers gedefinieerde operators in Lakeflow Designer.
  • YAML-configuratie: Vertelt Lakeflow Designer hoe de operator in de gebruikersinterface kan worden weergegeven, waaronder de naam, beschrijving, invoerparameters, UI-widgets en poorten van de operator. Alle operatortypen maken gebruik van het user-defined-operator-v0.1.0 schema. Voor een python-run-function operator is de YAML een zelfstandig werkruimtebestand dat ook de inline code bevat. Voor een Unity Catalog-functie is de YAML ingebed in het functielichaam. Zie de door de gebruiker gedefinieerde operator YAML-referentie.
  • Registratiebestand: een vermelding in .user_defined_operators.yaml waarmee Lakeflow Designer de operator kan vinden. Zie Registreer en zet je operator in bij Lakeflow Designer.

Bouw een gedeelde operator maken

Om een gedeelde, door de gebruiker gedefinieerde operator van begin tot eind te bouwen:

  1. Kies een operatortype. Zie Een gedeeld operatortype kiezen.
  2. Schrijf en test de operatorlogica. Zie Logica schrijven voor Lakeflow Designer gebruikersgedefinieerde operators.
  3. Beschrijf de operator in YAML: naam, configuratie-eigenschappen, UI-widgets en poorten. Zie de door de gebruiker gedefinieerde operator YAML-referentie.
  4. Registreer de operator in .user_defined_operators.yaml. Zie Registreer en zet je operator in bij Lakeflow Designer.
  5. Verleen permissies zodat andere gebruikers de operator kunnen ontdekken en uitvoeren. Zie machtigingen.
  6. Gebruik de operator. Het verschijnt in het Operator-paneel in Lakeflow Designer, naast de ingebouwde operators.

Elke tutorial loopt deze stappen door voor één volledige operator.

Tip

Om een gedeelde python-run-function operator te maken zonder het zelf te schrijven, beschrijf het aan Genie Code in het zijpaneel. Genie Code vraagt of de operator voor jou of voor de hele werkruimte geregistreerd moet worden, schrijft vervolgens het YAML-bestand en registreert het. Je moet nog steeds rechten geven aan andere gebruikers.

Uw operator registreren en uitrollen in Lakeflow Designer

Registreer je operator in een .user_defined_operators.yaml-bestand zodat deze in Lakeflow Designer wordt weergegeven:

  • Werkruimteniveau: Plaats het bestand in de hoofdmap van uw werkruimte om de operator zichtbaar te maken voor alle gebruikers.
  • Gebruikersniveau: Plaats het bestand in de basismap van de gebruiker (/Workspace/Users/<user-name>/.user_defined_operators.yaml) om operators alleen zichtbaar te maken voor u.

De operators: sectie ondersteunt bestandspaden, functieverwijzingen van Unity Catalog en glob-patronen. U kunt invoertypen combineren:

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

Een operator bijwerken of verwijderen

Wanneer u de code van een operator wijzigt, vernieuwt u de door de gebruiker gedefinieerde operators om de wijziging te laden. Klik op het tabblad Operators van het menu op het pictogram Vernieuwen..

  • Als de operator hetzelfde version behoudt, wordt bij het vernieuwen de bijgewerkte code geladen.
  • Als de operator een nieuwe versie van version heeft, vraagt de operator op het canvas u na het vernieuwen om hiernaar te upgraden (of de huidige versie te behouden).

Als u een operator uit Lakeflow Designer wilt verwijderen, verwijdert u de vermelding uit .user_defined_operators.yaml. Voor de uc-udf- en uc-udtf-operators kunt u de onderliggende Unity Catalog-functie ook met DROP FUNCTION laten vallen als u die niet langer nodig hebt.

Permissions

Toestemming Purpose
Leestoegang tot .user_defined_operators.yaml. Ontdek de operator.
Leestoegang tot het YAML-bestand (python-run-function alleen). Laad de operatordefinitie.
EXECUTE op de Unity Catalog-functie (operatoren gebaseerd op alleen Unity Catalog-functies). Voer de operator uit.
USE SCHEMA op het schema (operatoren gebaseerd op alleen Unity Catalog-functies). Open het schema waarin de functie is gemaakt.
Andere machtigingen Afhankelijk van uw operator hebben gebruikers mogelijk andere machtigingen nodig. Bijvoorbeeld USE CONNECTION op een Unity Catalog-verbinding voor HTTP-API-aanroepen.

Troubleshooting

Issue Solution
De operator wordt niet weergegeven in Lakeflow Designer. Controleer of deze .user_defined_operators.yaml bestaat en vermeldt uw functie of bestandspad. Voor python-run-function-operators: controleer het bestandspad en of het YAML-bestand toegankelijk is.
Schemavalidatie mislukt. Controleer uw YAML op basis van het officiële schema op https://your-workspace.cloud.databricks.com/static/schemas/user-defined-operator-v0.1.0.json.
De machtiging is geweigerd. Voor operatoren gebaseerd op Unity Catalog-functies, verifieer dat gebruikers USE SCHEMA op de functie en EXECUTE op het schema hebben. Controleer voor python-run-function operators dat gebruikers leestoegang hebben tot het YAML-bestand.
python-run-function de operator mislukt tijdens runtime. Controleer of de run() functiehandtekening overeenkomt def run(config, inputs, spark)met . Controleer of poortnamen in de code overeenkomen met de YAML en of de retourwoordenlijstsleutels overeenkomen met uitvoerpoortwaarden name .
UDTF retourneert verkeerde typen. UDTF-retourtypen moeten expliciet zijn; u kunt niet verwijzen naar invoerkolomtypen.

Aanvullende bronnen

Bekijk de volgende zelfstudies:

Example Typ Description
Afzender van Gmail-e-mail python-run-function Stuur DataFrame-gegevens als een CSV-bijlage via Gmail.
Rekenmachine voor samengestelde rente uc-udf Bereken toekomstige investeringswaarden met behulp van de formule voor samengestelde rente.
K-means-clustering uc-udtf Segmenteer gegevens in clusters met scikit-learn.
Slack-bericht verzenden uc-udf Stuur meldingen naar Slack-kanalen via de Slack API.
Alle UI-widgets uc-udf Verwijzingsoperator die alle beschikbare UI-widgets weergeeft.

Om de operatorlogica te schrijven, zie Logica schrijven voor door de gebruiker gedefinieerde operatoren in Lakeflow Designer. Zie de YAML-verwijzing voor door de gebruiker gedefinieerde operatoren voor een volledige verwijzing naar het YAML-schema.