Delen via


Pijplijnen voor Delta Live Tables ontwikkelen met Databricks Asset Bundles

Met Databricks Asset Bundles, ook wel bekend als bundels, kunt u azure Databricks-resources zoals Delta Live Tables-pijplijnen programmatisch valideren, implementeren en uitvoeren. Bekijk wat zijn Databricks Asset Bundles?.

In dit artikel wordt beschreven hoe u een bundel maakt om programmatisch een pijplijn te beheren. Zie Wat is Delta Live Tables? De bundel wordt gemaakt met behulp van de standaardbundelsjabloon Databricks Asset Bundles voor Python, die bestaat uit een notebook dat is gekoppeld aan de definitie van een pijplijn en taak om deze uit te voeren. Vervolgens valideert, implementeert en voert u de geïmplementeerde pijplijn uit in uw Azure Databricks-werkruimte.

Tip

Als u bestaande pijplijnen hebt die zijn gemaakt met behulp van de Gebruikersinterface of API van Azure Databricks die u naar bundels wilt verplaatsen, moet u deze definiëren in de configuratiebestanden van een bundel. Databricks raadt u aan eerst een bundel te maken met behulp van de onderstaande stappen en vervolgens te controleren of de bundel werkt. Vervolgens kunt u extra definities, notebooks en andere bronnen toevoegen aan de bundel. Zie Een bestaande pijplijndefinitie toevoegen aan een bundel.

Vereisten

(Optioneel) Een Python-module installeren ter ondersteuning van lokale pijplijnontwikkeling

Databricks biedt een Python-module waarmee u uw lokale ontwikkeling van pijplijncode van Delta Live Tables kunt helpen door syntaxiscontrole, automatisch aanvullen en gegevenstypecontrole te bieden tijdens het schrijven van code in uw IDE.

De Python-module voor lokale ontwikkeling is beschikbaar op PyPi. Zie Python-stub voor Delta Live Tables om de module te installeren.

Een bundel maken met behulp van een projectsjabloon

Maak de bundel met behulp van de standaardbundelsjabloon van Azure Databricks voor Python. Deze sjabloon bestaat uit een notebook waarmee een Delta Live Tables-pijplijn wordt gedefinieerd, waarmee gegevens uit de oorspronkelijke gegevensset worden gefilterd. Zie Databricks Asset Bundle-projectsjablonen voor meer informatie over bundelsjablonen.

Als u een volledig nieuwe bundel wilt maken, raadpleegt u Een bundel handmatig maken.

Stap 1: Verificatie instellen

In deze stap stelt u verificatie in tussen de Databricks CLI op uw ontwikkelcomputer en uw Azure Databricks-werkruimte. In dit artikel wordt ervan uitgegaan dat u OAuth-gebruikers-naar-machine-verificatie (U2M) en een bijbehorend Azure Databricks-configuratieprofiel DEFAULT voor verificatie wilt gebruiken.

Notitie

U2M-verificatie is geschikt voor het uitvoeren van deze stappen in realtime. Voor volledig geautomatiseerde werkstromen raadt Databricks u aan in plaats daarvan OAuth-verificatie van machine-naar-machine (M2M) te gebruiken. Zie de installatie-instructies voor M2M-verificatie in Verificatie.

  1. Gebruik de Databricks CLI om OAuth-tokenbeheer lokaal te starten door de volgende opdracht uit te voeren voor elke doelwerkruimte.

    Vervang in de volgende opdracht bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.netdoor <workspace-url> de URL van uw Azure Databricks per werkruimte.

    databricks auth login --host <workspace-url>
    
  2. De Databricks CLI vraagt u om de gegevens op te slaan die u hebt ingevoerd als een Azure Databricks-configuratieprofiel. Druk Enter om de voorgestelde profielnaam te accepteren of voer de naam van een nieuw of bestaand profiel in. Elk bestaand profiel met dezelfde naam wordt overschreven met de gegevens die u hebt ingevoerd. U kunt profielen gebruiken om snel uw verificatiecontext over te schakelen tussen meerdere werkruimten.

    Als u een lijst met bestaande profielen wilt ophalen, gebruikt u in een afzonderlijke terminal of opdrachtprompt de Databricks CLI om de opdracht databricks auth profilesuit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdracht databricks auth env --profile <profile-name>uit.

  3. Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.

  4. Voer een van de volgende opdrachten uit om de huidige OAuth-tokenwaarde van een profiel en de geplande verlooptijdstempel van het token weer te geven:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Als u meerdere profielen met dezelfde --host waarde hebt, moet u mogelijk de --host en -p opties opgeven om de Databricks CLI te helpen de juiste overeenkomende OAuth-tokengegevens te vinden.

Stap 2: De bundel maken

Initialiseer een bundel met behulp van de standaardsjabloon voor het Python-bundelproject.

  1. Gebruik de terminal of opdrachtprompt om over te schakelen naar een map op uw lokale ontwikkelcomputer die de gegenereerde bundel van de sjabloon bevat.

  2. Gebruik de Databricks CLI om de bundle init opdracht uit te voeren:

    databricks bundle init
    
  3. Laat Template to usede standaardwaarde staan default-python door op te drukken Enter.

  4. Laat Unique name for this projectde standaardwaarde van my_project, of typ een andere waarde en druk op Enter. Hiermee bepaalt u de naam van de hoofdmap voor deze bundel. Deze hoofdmap wordt gemaakt in uw huidige werkmap.

  5. Selecteer Include a stub (sample) notebookno en druk Enterop . Hiermee krijgt de Databricks CLI de opdracht om op dit moment geen voorbeeldnotitieblok toe te voegen, omdat het voorbeeldnotebook dat is gekoppeld aan deze optie geen Code voor Delta Live Tables bevat.

  6. Laat Include a stub (sample) DLT pipelinede standaardwaarde staan yes door op te drukken Enter. Hiermee wordt de Databricks CLI geïnstrueerd om een voorbeeldnotebook toe te voegen dat code voor Delta Live Tables bevat.

  7. Selecteer Include a stub (sample) Python packageno en druk Enterop . Hiermee geeft u de Databricks CLI de opdracht om geen python-wielpakketbestanden of gerelateerde build-instructies aan uw bundel toe te voegen.

Stap 3: De bundel verkennen

Als u de bestanden wilt bekijken die door de sjabloon zijn gegenereerd, schakelt u over naar de hoofdmap van de zojuist gemaakte bundel. Bestanden van bijzonder belang zijn onder andere:

  • databricks.yml: Dit bestand geeft de programmatische naam van de bundel op, bevat een verwijzing naar de pijplijndefinitie en geeft instellingen op over de doelwerkruimte.
  • resources/<project-name>_job.yml en resources/<project-name>_pipeline.yml: deze bestanden definiëren de taak die een taak voor het vernieuwen van een pijplijn bevat en de instellingen van de pijplijn.
  • src/dlt_pipeline.ipynb: Dit bestand is een notebook dat, wanneer het wordt uitgevoerd, de pijplijn uitvoert.

Voor het aanpassen van pijplijnen komen de toewijzingen binnen een pijplijndeclaratie overeen met de nettolading van de aanvraag voor het maken van de pijplijnbewerking, zoals gedefinieerd in POST /api/2.0/pipelines in de REST API-verwijzing, uitgedrukt in YAML-indeling.

Stap 4: Het configuratiebestand van het projectbundel valideren

In deze stap controleert u of de bundelconfiguratie geldig is.

  1. Gebruik vanuit de hoofdmap de Databricks CLI om de bundle validate opdracht als volgt uit te voeren:

    databricks bundle validate
    
  2. Als er een samenvatting van de bundelconfiguratie wordt geretourneerd, is de validatie voltooid. Als er fouten worden geretourneerd, lost u de fouten op en herhaalt u deze stap.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u deze stap herhalen om te controleren of uw bundelconfiguratie nog geldig is.

Stap 5: Het lokale project implementeren in de externe werkruimte

In deze stap implementeert u het lokale notebook in uw externe Azure Databricks-werkruimte en maakt u de Delta Live Tables-pijplijn in uw werkruimte.

  1. Gebruik vanuit de hoofdmap van de bundel de Databricks CLI om de bundle deploy opdracht als volgt uit te voeren:

    databricks bundle deploy -t dev
    
  2. Controleer of het lokale notebook is geïmplementeerd: klik in de zijbalk van uw Azure Databricks-werkruimte op Werkruimte.

  3. Klik in de map Gebruikers<your-username>>> .bundle ><project-name>> dev > files > src. Het notitieblok moet zich in deze map bevinden.

  4. Controleer of de pijplijn is gemaakt: klik in de zijbalk van uw Azure Databricks-werkruimte op Delta Live Tables.

  5. Klik op het tabblad Delta Live Tables op [dev <your-username>] <project-name>_pipeline.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u stap 4-5 herhalen om te controleren of uw bundelconfiguratie nog geldig is en vervolgens het project opnieuw implementeert.

Stap 6: Het geïmplementeerde project uitvoeren

In deze stap activeert u een uitvoering van de Delta Live Tables-pijplijn in uw werkruimte vanaf de opdrachtregel.

  1. Gebruik in de hoofdmap de Databricks CLI om de bundle run opdracht als volgt uit te voeren, waarbij u <project-name> de naam van uw project vervangt door stap 2:

    databricks bundle run -t dev <project-name>_pipeline
    
  2. Kopieer de waarde die Update URL in uw terminal wordt weergegeven en plak deze waarde in uw webbrowser om uw Azure Databricks-werkruimte te openen.

  3. Nadat de pijplijn is voltooid in uw Azure Databricks-werkruimte, klikt u op de taxi_raw weergave en de filtered_taxis gerealiseerde weergave om de details te bekijken.

Als u na deze stap wijzigingen aanbrengt in uw bundel, moet u stap 4-6 herhalen om te controleren of uw bundelconfiguratie nog geldig is, het project opnieuw implementeert en het opnieuw geïmplementeerde project uitvoert.

Stap 7: Opschonen

In deze stap verwijdert u het geïmplementeerde notebook en de pijplijn uit uw werkruimte.

  1. Gebruik vanuit de hoofdmap de Databricks CLI om de bundle destroy opdracht als volgt uit te voeren:

    databricks bundle destroy -t dev
    
  2. Bevestig de verwijderingsaanvraag voor de pijplijn: wanneer u wordt gevraagd om resources permanent te vernietigen, typt y en drukt u op Enter.

  3. Bevestig de verwijderingsaanvraag voor het notitieblok: wanneer u wordt gevraagd om de eerder geïmplementeerde map en alle bestanden permanent te vernietigen, typt y en drukt u op Enter.

  4. Als u de bundel ook van uw ontwikkelcomputer wilt verwijderen, kunt u nu de lokale map uit stap 2 verwijderen.

Een bestaande pijplijndefinitie toevoegen aan een bundel

U kunt een bestaande Delta Live Tables-pijplijndefinitie als basis gebruiken om een nieuwe pijplijn in een bundelconfiguratiebestand te definiëren. Als u een bestaande pijplijndefinitie wilt ophalen, kunt u deze handmatig ophalen met behulp van de gebruikersinterface of programmatisch genereren met behulp van de Databricks CLI.

Een bestaande pijplijndefinitie ophalen met behulp van de gebruikersinterface

De YAML-weergave van een bestaande pijplijndefinitie ophalen uit de gebruikersinterface van de Azure Databricks-werkruimte:

  1. Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkstromen.

  2. Klik op het tabblad Delta Live Tables op de koppeling Naam van uw pijplijn.

  3. Klik naast de knop Ontwikkeling op de yaml en klik vervolgens op Instellingen weergeven.

  4. Kopieer de YAML van de pijplijndefinitie in het dialoogvenster Pijplijninstellingen YAML naar het lokale klembord door op het kopieerpictogram te klikken.

  5. Voeg de YAML toe die u naar het bestand van databricks.yml uw bundel hebt gekopieerd of maak een configuratiebestand voor uw pijplijn in de resources map van uw bundelproject en verwijs ernaar vanuit het databricks.yml bestand. Zie de resources.

  6. Download en voeg python-bestanden en notebooks toe waarnaar wordt verwezen naar de projectbron van de bundel. Bundelartefacten bevinden zich meestal in de src map in een bundel.

    Tip

    U kunt een bestaand notebook vanuit een Azure Databricks-werkruimte exporteren naar de .ipynb indeling door te > > klikken op IPython Notebook van De Azure Databricks-notebook in de gebruikersinterface van Azure Databricks.

    Nadat u uw notebooks, Python-bestanden en andere artefacten aan de bundel hebt toegevoegd, moet u ervoor zorgen dat uw pijplijndefinitie ernaar verwijst. Bijvoorbeeld voor een notitieblok met de naam hello.ipynb die zich in de src/ map van de bundel bevindt:

    resources:
      pipelines:
        hello-pipeline:
          name: hello-pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Een bestaande pijplijndefinitie genereren met behulp van de Databricks CLI

Bundelconfiguratie voor een bestaande pijplijn programmatisch genereren:

  1. Haal de id van de bestaande pijplijn op uit het deelvenster Pijplijndetails voor de pijplijn in de gebruikersinterface of gebruik de Opdracht Databricks CLI databricks pipelines list-pipelines .

  2. Voer de bundle generate pipeline Opdracht Databricks CLI uit en stel de pijplijn-id in:

    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    Met deze opdracht maakt u een bundelconfiguratiebestand voor de pijplijn in de map van resources de bundel en downloadt u eventuele artefacten waarnaar wordt verwezen naar de src map.

    Tip

    Als u bundle deployment bind eerst een resource in een bundel koppelt aan een resource in de werkruimte, wordt de resource in de werkruimte bijgewerkt op basis van de configuratie die is gedefinieerd in de bundel waaraan deze is gebonden na de volgende bundle deploy. Zie Bind-bundelbronnen voor meer informatiebundle deployment bind.