Creare pipeline con dlt-meta

Il dlt-meta progetto di Databricks Labs fornisce strumenti per generare pipeline dai metadati gestiti.

Annotazioni

Il progetto dlt-meta open source, come tutti i progetti nell'account GitHub databrickslabs, esiste solo a scopo di esplorazione. Azure Databricks non lo supporta né fornisce contratti di servizio per tale servizio. Non inviare ticket di supporto di Azure Databricks per problemi relativi a questo progetto. In alternativa, presenta una issue su GitHub, che verrà esaminata non appena possibile.

Che cos'è dlt-meta?

Le pipeline di Lakeflow consentono di specificare in modo dichiarativo una tabella e generare un flusso in una pipeline che crea la tabella e lo mantiene aggiornato man mano che cambiano i dati di origine. Tuttavia, se l'organizzazione dispone di centinaia di tabelle, la generazione e la gestione di queste pipeline richiede molto tempo e può causare procedure incoerenti.

Il progetto dlt-meta è un framework di metaprogrammazione basato sui metadati progettato per l'uso con le pipeline di Lakeflow. Questo framework consente l'automazione delle pipeline di dati bronze e silver sfruttando i metadati registrati in un set di file JSON e YAML. Il motore dlt-meta usa il codice Python per generare in modo dinamico il codice della pipeline per i flussi descritti nei metadati. Generi i metadati relativi alle tue pipeline, e dlt-meta genera le tue pipeline.

Con la logica centralizzata in un'unica posizione (metadati), il sistema è più veloce, riutilizzabile e più facile da gestire.

Annotazioni

Il progetto dlt-meta è stato chiamato in riferimento alla precedente funzionalità Tabelle live Delta in Azure Databricks. Le tabelle live delta sono state sostituite dalle pipeline di Lakeflow e dlt-meta funziona con le pipeline di Lakeflow.

Vantaggi di dlt-meta

Esistono due casi d'uso principali per dlt-meta:

  • Inserire e pulire semplicemente un numero elevato di tabelle.
  • Applicare gli standard di progettazione dei dati tra più pipeline e utenti.

I vantaggi dell'uso di un approccio basato sui metadati includono:

  • La gestione dei metadati può essere eseguita senza conoscere il codice Python o SQL.
  • La gestione dei metadati, anziché il codice, richiede meno overhead e riduce gli errori.
  • Il codice viene generato da dlt-meta, quindi rimane coerente e ha meno codice personalizzato tra pipeline e tabelle pubblicate.
  • È possibile raggruppare facilmente le tabelle in pipeline all'interno dei metadati, generando il numero di pipeline necessarie per aggiornare i dati in modo più efficiente.

Funzionamento di dlt-meta

L'immagine seguente mostra una panoramica del sistema dlt-meta:

Panoramica di dlt-meta

  1. I file di metadati vengono creati come input per dlt-meta, per specificare i file di origine e gli output, le regole di qualità e l'elaborazione richiesta.
  2. Il motore dlt-meta compila i file di onboarding in una specifica del flusso di dati, denominata DataflowSpec e li archivia per usarli in un secondo momento.
  3. Il motore dlt-meta usa DataflowSpec per creare pipeline che generano tabelle bronze. Questo utilizza i file di metadati per leggere i dati di origine e applicare le attese corrette dei dati per conformarsi alle regole di qualità.
  4. Il motore dlt-meta usa quindi il DataflowSpec per creare le pipeline aggiuntive che generano le silver tables. In questo modo vengono usati i file di metadati per applicare le trasformazioni appropriate e altre elaborazioni per il sistema.

Le pipeline generate da dlt-meta vengono eseguite per mantenere aggiornato l'output al momento dell'aggiornamento dei dati d'origine.

Get started

Per usare dlt-meta, è necessario:

  • Distribuire e configurare la soluzione dlt-meta.
  • Preparare i metadati per le tabelle dei livelli bronze e silver.
  • Creare un processo per eseguire l'onboarding dei metadati.
  • Usare i metadati per creare pipeline per le tabelle.

La documentazione dlt-meta su GitHub offre un'esercitazione che consente di iniziare a usare questo processo. Per altre informazioni, vedere Introduzione a dlt-meta in GitHub.

Risorse aggiuntive