Condividi tramite


Convertire una pipeline DLT in un progetto di aggregazione di asset di Databricks

Questo articolo illustra come convertire una pipeline DLT (DLT) esistente in un progetto di bundle di asset di Databricks. I bundle consentono di definire e gestire la configurazione dell'elaborazione dati di Azure Databricks in un singolo file YAML controllato dal codice sorgente che offre una manutenzione più semplice e consente la distribuzione automatica negli ambienti di destinazione.

Panoramica del processo di conversione

Diagramma che mostra i passaggi specifici per convertire una pipeline esistente in un bundle

I passaggi da eseguire per convertire una pipeline esistente in un bundle sono:

  1. Assicurati di avere accesso a una pipeline configurata in precedenza che vuoi convertire in un bundle.
  2. Creare o preparare una cartella (preferibilmente in una gerarchia controllata dall'origine) per archiviare il bundle.
  3. Generare una configurazione per il bundle dalla pipeline esistente usando l'interfaccia della riga di comando di Azure Databricks.
  4. Esaminare la configurazione del bundle generato per assicurarsi che sia completata.
  5. Collegare il bundle alla pipeline originale.
  6. Distribuire la pipeline in un'area di lavoro di destinazione usando la configurazione del bundle.

Requisiti

Prima di iniziare, è necessario disporre di:

Passaggio 1: Configurare una cartella per il progetto bundle

È necessario avere accesso a un repository Git configurato in Azure Databricks come cartella Git. Verrà creato il progetto bundle in questo repository, che applicherà il controllo del codice sorgente e lo renderà disponibile ad altri collaboratori tramite una cartella Git nell'area di lavoro di Azure Databricks corrispondente. Per ulteriori dettagli sulle cartelle Git, vedere l'integrazione Git per le cartelle Git di Databricks.

  1. Passare alla radice del repository Git clonato sul tuo computer locale.

  2. In una posizione appropriata nella gerarchia di cartelle, creare una cartella specifica per il progetto bundle. Per esempio:

    mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
    
  3. Cambia la cartella di lavoro corrente in questa nuova cartella. Per esempio:

    cd ~/source/my-pipelines/ingestion/events/my-bundle
    
  4. Inizializzare un nuovo bundle eseguendo databricks bundle init e rispondendo alle richieste. Al termine, si avrà un file di configurazione del progetto denominato databricks.yml nella nuova cartella home per il progetto. Questo file è necessario per distribuire la pipeline dalla riga di comando. Per altri dettagli su questo file di configurazione, vedere configurazione del bundle di asset di Databricks.

Passaggio 2: Generare la configurazione della pipeline

Da questa nuova directory nell'albero delle cartelle del repository Git clonato eseguire l'interfaccia della riga di comando di Azure Databricks bundle generate command, specificando l'ID della pipeline DLT come <pipeline-id>:

databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>

Quando si esegue il comando generate, viene creato un file di configurazione del bundle per la pipeline nella cartella resources del bundle e scarica tutti gli artefatti a cui si fa riferimento nella cartella src. Il --profile (o flag di -p) è facoltativo, ma se si dispone di un profilo di configurazione di Databricks specifico (definito nel file di .databrickscfg creato quando è stata installata l'interfaccia della riga di comando di Azure Databricks) che si preferisce usare anziché il profilo predefinito, specificarlo in questo comando. Per informazioni sui profili di configurazione di Databricks, vedere profili di configurazione di Azure Databricks.

Passaggio 3: Esaminare i file di progetto bundle

Al termine del comando bundle generate, verranno create due nuove cartelle:

  • resources è la sottodirectory del progetto che contiene i file di configurazione del progetto.
  • src è la cartella del progetto in cui vengono archiviati i file di origine, ad esempio query e notebook.

Il comando crea anche alcuni file aggiuntivi:

  • *.pipeline.yml nella sottodirectory resources. Questo file contiene la configurazione e le impostazioni specifiche per la pipeline DLT.
  • File di origine, ad esempio query SQL nella sottodirectory src, copiati dalla pipeline DLT esistente.
├── 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

Passaggio 4: Associare la pipeline di bundle alla pipeline esistente

È necessario collegare o associare, la definizione della pipeline nel bundle alla pipeline esistente per mantenerla aggiornata man mano che si apportano modifiche. A tale scopo, eseguire il comando della CLI di Azure Databricks bundle deployment bind:

databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>

<pipeline-name> è il nome della pipeline. Questo nome deve corrispondere al valore stringa con prefisso del nome file per la configurazione della pipeline nella nuova directory resources. Ad esempio, se si dispone di un file di configurazione della pipeline denominato ingestion_data_pipeline.pipeline.yml nella cartella resources, è necessario specificare ingestion_data_pipeline come nome della pipeline.

<pipeline-ID> è l'ID della pipeline. È lo stesso di quello che hai copiato come parte dei requisiti per queste istruzioni.

Passaggio 5: Distribuire la pipeline usando il nuovo bundle

Distribuire ora il bundle della pipeline nell'area di lavoro di destinazione utilizzando il comando bundle deploy dell'interfaccia a riga di comando di Azure Databricks:

databricks bundle deploy --target <target-name> --profile <profile-name>

Il flag --target è obbligatorio e deve essere impostato su una stringa corrispondente a un nome dell'area di lavoro di destinazione configurato, ad esempio development o production.

Se questo comando ha esito positivo, è ora disponibile la configurazione della pipeline DLT in un progetto esterno che può essere caricato in altre aree di lavoro ed eseguito e condiviso facilmente con altri utenti di Azure Databricks nell'account.

Risoluzione dei problemi

Questione Soluzione
Errore "databricks.yml non trovato" durante l'esecuzione di bundle generate Attualmente, il comando bundle generate non crea automaticamente il file di configurazione del bundle (databricks.yml). È necessario creare il file usando databricks bundle init o manualmente.
Le impostazioni della pipeline esistenti non corrispondono ai valori nella configurazione YAML della pipeline generata L'ID della pipeline non viene visualizzato nel file YML di configurazione del bundle. Se si notano altre impostazioni mancanti, è possibile applicarle manualmente.

Suggerimenti per il successo

  • Usare sempre il controllo della versione. Se non si usano le cartelle Git di Databricks, archiviare le sottodirectory e i file del progetto in un repository Git o in un altro sistema di controllo delle versioni o file system.
  • Testare la pipeline in un ambiente non di produzione ( ad esempio un ambiente di "sviluppo" o "test") prima di distribuirlo in un ambiente di produzione. È facile introdurre una configurazione errata per caso.

Risorse aggiuntive

Per altre informazioni sull'uso di bundle per definire e gestire l'elaborazione dei dati, vedere: