Een DLT-pijplijn converteren naar een Databricks Asset Bundle-project
In dit artikel wordt getoond hoe je een bestaande DLT-pijplijn (DLT) omzet naar een Databricks Asset Bundles-project. Met bundels kunt u uw configuratie voor gegevensverwerking van Azure Databricks definiëren en beheren in één, door bron beheerd YAML-bestand dat eenvoudiger onderhoud biedt en geautomatiseerde implementatie naar doelomgevingen mogelijk maakt.
Overzicht van conversieproces
De stappen die u uitvoert om een bestaande pijplijn te converteren naar een bundel zijn:
- Zorg ervoor dat u toegang hebt tot een eerder geconfigureerde pijplijn die u wilt converteren naar een bundel.
- Maak of bereid een map (bij voorkeur in een bronbeheerde hiërarchie) voor om de bundel op te slaan.
- Genereer een configuratie voor de bundel van de bestaande pijplijn met behulp van de Azure Databricks CLI.
- Controleer de gegenereerde bundelconfiguratie om te controleren of deze is voltooid.
- Koppel de bundel aan de oorspronkelijke pijplijn.
- Implementeer de pijplijn in een doelwerkruimte met behulp van de bundelconfiguratie.
Eisen
Voordat u begint, moet u het volgende hebben:
- De Databricks CLI geïnstalleerd op uw lokale ontwikkelcomputer. Databricks CLI versie 0.218.0 of hoger is vereist voor het gebruik van Databricks Asset Bundles.
- De ID van een bestaande DLT-pijplijn die u met een bundel zal beheren. Zie om te leren hoe u deze ID verkrijgt, een bestaande pijplijndefinitie ophalen met behulp van de gebruikersinterface.
- Autorisatie voor de Azure Databricks-werkruimte waar de bestaande DLT-pijplijn wordt uitgevoerd. Zie Toegang tot Azure Databricks-resources autoriserenom verificatie en autorisatie te configureren voor uw Azure Databricks CLI-aanroepen.
Stap 1: Een map instellen voor uw bundelproject
U moet toegang hebben tot een Git-opslagplaats die is geconfigureerd in Azure Databricks als een Git-map. U maakt uw bundelproject in deze opslagplaats, dat broncodebeheer toepast en beschikbaar maakt voor andere medewerkers via een Git-map in de bijbehorende Azure Databricks-werkruimte. (Zie voor meer informatie over Git-mappen Git-integratie voor Databricks Git-mappen.)
Ga naar de hoofdmap van de gekloonde Git-opslagplaats op uw lokale computer.
Maak op een geschikte plaats in de maphiërarchie een map die specifiek is voor uw bundelproject. Bijvoorbeeld:
mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
Wijzig de huidige werkmap in deze nieuwe map. Bijvoorbeeld:
cd ~/source/my-pipelines/ingestion/events/my-bundle
Initialiseer een nieuwe bundel door
databricks bundle init
uit te voeren en de prompts te beantwoorden. Zodra dit is voltooid, hebt u een projectconfiguratiebestand met de naamdatabricks.yml
in de nieuwe basismap voor uw project. Dit bestand is vereist voor het implementeren van uw pijplijn vanaf de opdrachtregel. Zie Configuratie van Databricks Asset Bundlevoor meer informatie over dit configuratiebestand.
Stap 2: De pijplijnconfiguratie genereren
Voer vanuit deze nieuwe map in de mapstructuur van uw gekloonde Git-opslagplaats de Azure Databricks CLI uit opdracht voor het genereren van bundels, waarbij u de id van uw DLT-pijplijn opslaat als <pipeline-id>
:
databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>
Wanneer u de opdracht generate
uitvoert, wordt er een bundelconfiguratiebestand voor uw pijplijn gemaakt in de resources
map van de bundel en worden eventuele artefacten waarnaar wordt verwezen naar de map src
gedownload. De --profile
(of -p
vlag) is optioneel, maar als u een specifiek Databricks-configuratieprofiel hebt (gedefinieerd in uw .databrickscfg
-bestand dat is gemaakt toen u de Azure Databricks CLI hebt geïnstalleerd) die u liever zou gebruiken in plaats van het standaardprofiel, geeft u dit op in deze opdracht. Zie Azure Databricks-configuratieprofielenvoor meer informatie over Databricks-configuratieprofielen.
Stap 3: De bundelprojectbestanden controleren
Wanneer de opdracht bundle generate
is voltooid, zijn er twee nieuwe mappen gemaakt:
-
resources
is de submap van het project die projectconfiguratiebestanden bevat. -
src
is de projectmap waarin bronbestanden, zoals query's en notebooks, worden opgeslagen.
Met de opdracht worden ook enkele extra bestanden gemaakt:
-
*.pipeline.yml
onder de submapresources
. Dit bestand bevat de specifieke configuratie en instellingen voor uw DLT-pijplijn. - Bronbestanden zoals SQL-query's in de submap
src
, gekopieerd uit uw bestaande DLT-pijplijn.
├── databricks.yml # Project configuration file created with the bundle init command
├── resources/
│ └── {your-pipeline-name.pipeline}.yml # Pipeline configuration
└── src/
└── {SQl-query-retrieved-from-your-existing-pipeline}.sql # Your pipeline's declarative query
Stap 4: Koppel de bundelpijplijn aan uw bestaande pijplijn
U moet de pijplijndefinitie aan uw bestaande pijplijn koppelen of bindenin de bundel om de pijplijn up-to-date te houden terwijl u wijzigingen doorvoert. Voer hiervoor de Azure Databricks CLI opdracht voor bundelimplementatie uit:
databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>
<pipeline-name>
is de naam van de pijplijn. Deze naam moet hetzelfde zijn als de voorvoegseltekenreekswaarde van de bestandsnaam voor de pijplijnconfiguratie in uw nieuwe resources
map. Als u bijvoorbeeld een pijplijnconfiguratiebestand met de naam ingestion_data_pipeline.pipeline.yml
in de map resources
hebt, moet u ingestion_data_pipeline
opgeven als de naam van uw pijplijn.
<pipeline-ID>
is de id voor uw pijplijn. Het is hetzelfde als degene die u hebt gekopieerd als onderdeel van de vereisten voor deze instructies.
Stap 5: Uw pijplijn implementeren met behulp van uw nieuwe bundel
Implementeer nu uw pijplijnbundel in uw doelwerkruimte met behulp van de Azure Databricks CLI opdracht voor het implementeren van bundels:
databricks bundle deploy --target <target-name> --profile <profile-name>
De vlag --target
is vereist en moet worden ingesteld op een tekenreeks die overeenkomt met een geconfigureerde naam van de doelwerkruimte, zoals development
of production
.
Als deze opdracht is geslaagd, hebt u nu de DLT-pijplijnconfiguratie in een extern project dat kan worden geladen in andere werkruimten en kan worden uitgevoerd en eenvoudig kan worden gedeeld met andere Azure Databricks-gebruikers in uw account.
Probleemoplossing
Probleem | Oplossing |
---|---|
Fout 'databricks.yml niet gevonden' bij het uitvoeren van bundle generate |
Op dit moment wordt met de opdracht bundle generate het configuratiebestand voor de bundel (databricks.yml ) niet automatisch gemaakt. U moet het bestand maken met behulp van databricks bundle init of handmatig. |
Bestaande pijplijninstellingen komen niet overeen met de waarden in de gegenereerde YAML-configuratie van de pijplijn | De pijplijn-id wordt niet weergegeven in het YML-bestand van de bundelconfiguratie. Als u andere ontbrekende instellingen ziet, kunt u deze handmatig toepassen. |
Tips voor succes
- Gebruik altijd versiebeheer. Als u geen Databricks Git-mappen gebruikt, slaat u de submappen en bestanden van uw project op in een Git- of andere door versie beheerde opslagplaats of bestandssysteem.
- Test uw pijplijn in een niet-productieomgeving (zoals een ontwikkel- of testomgeving) voordat u deze implementeert in een productieomgeving. Het is eenvoudig om per ongeluk een onjuiste configuratie te introduceren.
Aanvullende informatiebronnen
Zie voor meer informatie over het gebruik van bundels voor het definiëren en beheren van gegevensverwerking:
- Wat zijn Databricks-assetbundels?
- DLT-pijplijnen ontwikkelen met Databricks Asset Bundles. In dit onderwerp wordt beschreven hoe u een bundel maakt voor een nieuwe pijplijn in plaats van een bestaande, met een door bron beheerd notebook voor verwerking die u opgeeft.