Konvertera en Delta Live Tables-pipeline till ett Databricks Asset Bundle-projekt
Den här artikeln visar hur du konverterar en befintlig DLT-pipeline (Delta Live Tables) till ett paketprojekt. Med paket kan du definiera och hantera databearbetningskonfigurationen för Azure Databricks i en enda, källkontrollerad YAML-fil som ger enklare underhåll och möjliggör automatisk distribution till målmiljöer.
Översikt över konverteringsprocessen
De steg du utför för att konvertera en befintlig pipeline till ett paket är:
- Kontrollera att du har åtkomst till en tidigare konfigurerad pipeline som du vill konvertera till ett paket.
- Skapa eller förbereda en mapp (helst i en källkontrollerad hierarki) för att lagra paketet.
- Generera en konfiguration för paketet från den befintliga pipelinen med hjälp av Azure Databricks CLI.
- Granska den genererade paketkonfigurationen för att se till att den är klar.
- Länka bunten till den ursprungliga pipelinen.
- Distribuera pipelinen till en målarbetsyta med hjälp av paketkonfigurationen.
Krav
Innan du börjar måste du ha:
- Databricks CLI installerat på din lokala utvecklingsdator. Databricks CLI version 0.218.0 eller senare krävs för att använda Databricks-tillgångspaket.
- ID:t för en befintlig DLT-pipeline som du hanterar med ett paket. Information om hur du hämtar det här ID:t finns i Hämta en befintlig pipelinedefinition med hjälp av användargränssnittet.
- Auktorisering för Azure Databricks-arbetsytan där den befintliga DLT-pipelinen körs. Information om hur du konfigurerar autentisering och auktorisering för dina Azure Databricks CLI-anrop finns i Authorizating access to Azure Databricks resources.
Steg 1: Konfigurera en mapp för ditt paketprojekt
Du måste ha åtkomst till en Git-lagringsplats som är konfigurerad i Azure Databricks som en Git-mapp. Du skapar ditt paketprojekt på den här lagringsplatsen, som använder källkontroll och gör det tillgängligt för andra medarbetare via en Git-mapp på motsvarande Azure Databricks-arbetsyta. (Mer information om Git-mappar finns i Git-integrering för Databricks Git-mappar.)
Gå till roten för den klonade Git-lagringsplatsen på den lokala datorn.
På en lämplig plats i mapphierarkin skapar du en mapp specifikt för ditt paketprojekt. Till exempel:
mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
Ändra den aktuella arbetskatalogen till den nya mappen. Till exempel:
cd ~/source/my-pipelines/ingestion/events/my-bundle
Initiera ett nytt paket genom att köra
databricks bundle init
och besvara anvisningarna. När den är klar har du en projektkonfigurationsfil med namnetdatabricks.yml
i den nya startmappen för projektet. Den här filen krävs för att distribuera din pipeline från kommandoraden. Mer information om den här konfigurationsfilen finns i Databricks Asset Bundle-konfiguration.
Steg 2: Skapa pipeline-konfigurationen
Från den här nya katalogen i den klonade Git-lagringsplatsens mappträd kör du följande Azure Databricks CLI-kommando och anger ID för din DLT-pipeline som <pipeline-id>
:
databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>
När du kör kommandot generate
skapas en paketkonfigurationsfil för pipelinen i paketets resources
mapp och alla refererade artefakter hämtas till mappen src
. Flaggan --profile
(eller -p
) är valfri, men om du har en specifik Databricks-konfigurationsprofil (definierad i din .databrickscfg
-fil som skapades när du installerade Azure Databricks CLI) som du hellre använder i stället för standardprofilen anger du den i det här kommandot. Information om Databricks-konfigurationsprofiler finns i Azure Databricks-konfigurationsprofiler.
Steg 3: Granska paketprojektfilerna
När bundle generate
-kommandot har slutförts har det skapat två nya mappar:
-
resources
är projektunderkatalogen som innehåller projektkonfigurationsfiler. -
src
är projektmappen där källfiler, till exempel frågor och notebook-filer, lagras.
Kommandot skapar även några ytterligare filer:
-
*.pipeline.yml
i underkatalogenresources
. Den här filen innehåller den specifika konfigurationen och inställningarna för din DLT-pipeline. - Källfiler som SQL-frågor under
src
underkatalog, kopierade från din befintliga DLT-pipeline.
├── 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
Steg 4: Koppla samman paketpipelinen med din befintliga pipeline
Du måste länka, eller binda, pipeline-definitionen i paketet till din befintliga pipeline för att hålla den uppdaterad när du ändrar. Det gör du genom att köra följande Azure Databricks CLI-kommando:
databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>
<pipeline-name>
är namnet på pipelinen. Det här namnet ska vara samma som det prefixerade strängvärdet för filnamnet för pipelinekonfigurationen i den nya resources
-katalogen. Om du till exempel har en pipelinekonfigurationsfil med namnet ingestion_data_pipeline.pipeline.yml
i mappen resources
måste du ange ingestion_data_pipeline
som pipelinenamn.
<pipeline-ID>
är ID:t för din pipeline. Det är samma som det som du kopierade som en del av kraven för dessa instruktioner.
Steg 5: Distribuera din pipeline med ditt nya paket
Distribuera nu pipelinepaketet till målarbetsytan med kommandot bundle deploy
Azure Databricks CLI:
databricks bundle deploy --target <target-name> --profile <profile-name>
Flaggan --target
krävs och måste anges till en sträng som matchar ett konfigurerat målarbetsytenamn, till exempel development
eller production
.
Om det här kommandot lyckas har du nu din DLT-pipelinekonfiguration i ett externt projekt som kan läsas in på andra arbetsytor och köras och enkelt delas med andra Azure Databricks-användare i ditt konto.
Felsökning
Utfärda | Lösning |
---|---|
Felet "databricks.yml hittades inte" när bundle generate kördes |
För närvarande skapar bundle generate -kommandot inte paketkonfigurationsfilen (databricks.yml ) automatiskt. Du måste skapa filen med hjälp av databricks bundle init eller manuellt. |
Befintliga pipelineinställningar matchar inte värdena i yaml-konfigurationen för den genererade pipelinen | Pipeline-ID:t visas inte i paketkonfigurationens YML-fil. Om du ser andra inställningar som saknas kan du tillämpa dem manuellt. |
Tips för framgång
- Använd alltid versionskontroll. Om du inte använder Databricks Git-mappar lagrar du dina projektunderkataloger och filer på en Git eller annan versionskontrollerad lagringsplats eller filsystem.
- Testa din pipeline i en icke-produktionsmiljö (till exempel en "utvecklings- eller testmiljö" innan du distribuerar den till en produktionsmiljö. Det är lätt att introducera en felkonfiguration av misstag.
Ytterligare resurser
Mer information om hur du använder paket för att definiera och hantera databearbetning finns i:
- Vad är Databricks-tillgångspaket?
- Utveckla Delta Live Tables-pipelines med Databricks-tillgångspaket. Det här avsnittet beskriver hur du skapar ett paket för en ny pipeline i stället för en befintlig, med en källkontrollerad notebook-fil för bearbetning som du anger.