Delen via


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

diagram met de specifieke stappen voor het converteren van een bestaande pijplijn naar een bundel

De stappen die u uitvoert om een bestaande pijplijn te converteren naar een bundel zijn:

  1. Zorg ervoor dat u toegang hebt tot een eerder geconfigureerde pijplijn die u wilt converteren naar een bundel.
  2. Maak of bereid een map (bij voorkeur in een bronbeheerde hiërarchie) voor om de bundel op te slaan.
  3. Genereer een configuratie voor de bundel van de bestaande pijplijn met behulp van de Azure Databricks CLI.
  4. Controleer de gegenereerde bundelconfiguratie om te controleren of deze is voltooid.
  5. Koppel de bundel aan de oorspronkelijke pijplijn.
  6. Implementeer de pijplijn in een doelwerkruimte met behulp van de bundelconfiguratie.

Eisen

Voordat u begint, moet u het volgende hebben:

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.)

  1. Ga naar de hoofdmap van de gekloonde Git-opslagplaats op uw lokale computer.

  2. 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
    
  3. Wijzig de huidige werkmap in deze nieuwe map. Bijvoorbeeld:

    cd ~/source/my-pipelines/ingestion/events/my-bundle
    
  4. 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 naam databricks.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 submap resources. 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: