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
- Databricks CLI versie 0.218.0 of hoger. Voer de opdracht
databricks -v
uit om de geïnstalleerde versie van de Databricks CLI te controleren. Zie De Databricks CLI installeren of bijwerken om de Databricks CLI te installeren of bij te werken. - Voor de externe werkruimte moeten werkruimtebestanden zijn ingeschakeld. Zie Wat zijn werkruimtebestanden?
(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.
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.net
door<workspace-url>
de URL van uw Azure Databricks per werkruimte.databricks auth login --host <workspace-url>
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 profiles
uit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdrachtdatabricks auth env --profile <profile-name>
uit.Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
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.
Gebruik de terminal of opdrachtprompt om over te schakelen naar een map op uw lokale ontwikkelcomputer die de gegenereerde bundel van de sjabloon bevat.
Gebruik de Databricks CLI om de
bundle init
opdracht uit te voeren:databricks bundle init
Laat
Template to use
de standaardwaarde staandefault-python
door op te drukkenEnter
.Laat
Unique name for this project
de standaardwaarde vanmy_project
, of typ een andere waarde en druk opEnter
. Hiermee bepaalt u de naam van de hoofdmap voor deze bundel. Deze hoofdmap wordt gemaakt in uw huidige werkmap.Selecteer
Include a stub (sample) notebook
no
en drukEnter
op . 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.Laat
Include a stub (sample) DLT pipeline
de standaardwaarde staanyes
door op te drukkenEnter
. Hiermee wordt de Databricks CLI geïnstrueerd om een voorbeeldnotebook toe te voegen dat code voor Delta Live Tables bevat.Selecteer
Include a stub (sample) Python package
no
en drukEnter
op . 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
enresources/<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.
Gebruik vanuit de hoofdmap de Databricks CLI om de
bundle validate
opdracht als volgt uit te voeren:databricks bundle validate
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.
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
Controleer of het lokale notebook is geïmplementeerd: klik in de zijbalk van uw Azure Databricks-werkruimte op Werkruimte.
Klik in de map Gebruikers
<your-username>
>> .bundle ><project-name>
> dev > files > src. Het notitieblok moet zich in deze map bevinden.Controleer of de pijplijn is gemaakt: klik in de zijbalk van uw Azure Databricks-werkruimte op Delta Live Tables.
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.
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
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.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.
Gebruik vanuit de hoofdmap de Databricks CLI om de
bundle destroy
opdracht als volgt uit te voeren:databricks bundle destroy -t dev
Bevestig de verwijderingsaanvraag voor de pijplijn: wanneer u wordt gevraagd om resources permanent te vernietigen, typt
y
en drukt u opEnter
.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 opEnter
.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:
Klik in de zijbalk van uw Azure Databricks-werkruimte op Werkstromen.
Klik op het tabblad Delta Live Tables op de koppeling Naam van uw pijplijn.
Klik naast de knop Ontwikkeling op de yaml en klik vervolgens op Instellingen weergeven.
Kopieer de YAML van de pijplijndefinitie in het dialoogvenster Pijplijninstellingen YAML naar het lokale klembord door op het kopieerpictogram te klikken.
Voeg de YAML toe die u naar het bestand van
databricks.yml
uw bundel hebt gekopieerd of maak een configuratiebestand voor uw pijplijn in deresources
map van uw bundelproject en verwijs ernaar vanuit hetdatabricks.yml
bestand. Zie de resources.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 desrc/
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:
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
.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 desrc
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 volgendebundle deploy
. Zie Bind-bundelbronnen voor meer informatiebundle deployment bind
.