Passa al contenuto principale

Portare le pipeline dichiarative al progetto open source Apache Spark™

Uno standard aperto e collaudato per la trasformazione dei dati

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

Pubblicato: 12 giugno 2025

Open source5 min di lettura

Summary

  • Stiamo donando Declarative Pipelines, un'API dichiarativa collaudata per la creazione di pipeline di dati affidabili con una frazione del lavoro, ad Apache Spark™.
  • Questo standard semplifica lo sviluppo di pipeline tra carichi di lavoro batch e di streaming.
  • Anni di esperienza nel mondo reale hanno plasmato questo approccio flessibile, nativo di Spark, sia per le pipeline batch che per quelle di streaming.

Apache Spark™ è diventato il motore di fatto per l'elaborazione di big data, alimentando i carichi di lavoro di alcune delle più grandi organizzazioni del mondo. Nell'ultimo decennio, abbiamo visto Apache Spark evolversi da un potente motore di calcolo generico a un livello fondamentale della Open Lakehouse Architecture, con Spark SQL, Structured Streaming, formati di tabella aperti e governance unificata che fungono da pilastri per le moderne piattaforme di dati.

Con la recente release di Apache Spark 4.0, questa evoluzione continua con importanti progressi in streaming, Python, SQL e dati semi-strutturati. Puoi trovare maggiori informazioni sulla release qui.

Basandoci sulla solida base di Apache Spark, siamo entusiasti di annunciare una nuova aggiunta all'open source:

Stiamo donando Declarative Pipelines, uno standard collaudato per la creazione di pipeline di dati affidabili e scalabili, ad Apache Spark.

Questo contributo estende la potenza dichiarativa di Apache Spark dalle singole query alle pipeline complete, consentendo agli utenti di definire cosa deve fare la loro pipeline e lasciando che Apache Spark capisca come farlo. Il design si basa su anni di osservazione dei carichi di lavoro reali di Apache Spark, codificando ciò che abbiamo imparato in un'API dichiarativa che copre i modelli più comuni, inclusi i flussi batch e di streaming.

Grafico del flusso di dati
Esempio di grafico del flusso di dati

Le API dichiarative semplificano e rendono più manutenibile l'ETL

Attraverso anni di lavoro con utenti reali di Spark, abbiamo visto emergere sfide comuni durante la creazione di pipeline di produzione:

  • Troppo tempo speso per collegare le pipeline con "glue code" per gestire l'inserimento incrementale o decidere quando materializzare i set di dati. Questo è un lavoro pesante indifferenziato che ogni team finisce per mantenere invece di concentrarsi sulla logica di business principale
  • Reimplementazione degli stessi modelli tra i team, con conseguente incoerenza e overhead operativo
  • Mancanza di un framework standardizzato per test, lineage, CI/CD e monitoraggio su larga scala

In Databricks, abbiamo iniziato ad affrontare queste sfide codificando le best practice di engineering comuni in un prodotto chiamato DLT. DLT ha adottato un approccio dichiarativo: invece di collegare tutta la logica da soli, si specifica lo stato finale delle tabelle e il motore si occupa di aspetti quali la mappatura delle dipendenze, la gestione degli errori, il checkpointing, i guasti e i tentativi per tuo conto.

Il risultato è stato un grande passo avanti in termini di produttività, affidabilità e manutenibilità, soprattutto per i team che gestiscono pipeline di produzione complesse.

Dal lancio di DLT, abbiamo imparato molto.

Abbiamo visto dove l'approccio dichiarativo può avere un impatto enorme e dove i team avevano bisogno di maggiore flessibilità e controllo. Abbiamo visto il valore dell'automazione della logica complessa e dell'orchestrazione dello streaming, nonché l'importanza di basarsi sulle API Spark aperte per garantire la portabilità e la libertà degli sviluppatori.

Questa esperienza ha portato a una nuova direzione: un framework Spark-nativo, open source e di prima classe per lo sviluppo di pipeline dichiarative.

Dalle query alle pipeline end-to-end: il passo successivo nell'evoluzione dichiarativa di Spark

Apache Spark SQL ha reso dichiarativa l'esecuzione delle query: invece di implementare join e aggregazioni con codice RDD di basso livello, gli sviluppatori potevano semplicemente scrivere SQL per descrivere il risultato desiderato e Spark si occupava del resto.

Spark Declarative Pipelines si basa su questa base e fa un ulteriore passo avanti, estendendo il modello dichiarativo dalle singole query alle pipeline complete che abbracciano più tabelle. Ora, gli sviluppatori possono definire quali set di dati devono esistere e come vengono derivati, mentre Spark determina il piano di esecuzione ottimale, gestisce le dipendenze e gestisce automaticamente l'elaborazione incrementale.

Spark Declarative Pipelines in azione
Spark Declarative Pipelines in azione

Costruito pensando all'apertura e alla componibilità, Spark Declarative Pipelines offre:

  • API dichiarative per la definizione di tabelle e trasformazioni
  • Supporto nativo per flussi di dati batch e di streaming
  • Orchestrazione data-aware con tracciamento automatico delle dipendenze, ordinamento dell'esecuzione e gestione del backfill
  • Checkpointing automatico, tentativi ed elaborazione incrementale per i dati di streaming
  • Supporto per SQL e Python
  • Trasparenza dell'esecuzione con accesso completo ai piani Spark sottostanti

E, cosa più importante, è Apache Spark fino in fondo: nessun wrapper o black box.

eBook

Introduzione all'ETL

Un nuovo standard, ora in the Open

Questo contributo rappresenta anni di lavoro su Apache Spark, Delta Lake e la più ampia community di open data. È ispirato da ciò che abbiamo imparato dalla creazione di DLT, ma è progettato per essere più flessibile, più estensibile e completamente open source.

E abbiamo appena iniziato. Stiamo contribuendo con questo come livello comune su cui l'intero ecosistema Apache Spark può basarsi, sia che tu stia orchestrando pipeline nella tua piattaforma, creando astrazioni specifiche per il dominio o contribuendo direttamente a Spark stesso. Questo framework è qui per supportarti.

"Le pipeline dichiarative nascondono la complessità della moderna data engineering sotto un modello di programmazione semplice e intuitivo. Come engineering manager, mi piace il fatto che i miei ingegneri possano concentrarsi su ciò che conta di più per l'azienda. È entusiasmante vedere questo livello di innovazione ora open source, rendendolo accessibile a un numero ancora maggiore di team." — Jian (Miracle) Zhou, Senior Engineering Manager, Navy Federal Credit Union

Navy Federal Credit Union

"In 84.51 siamo sempre alla ricerca di modi per rendere le nostre pipeline di dati più facili da costruire e mantenere, soprattutto perché ci stiamo muovendo verso strumenti più aperti e flessibili. L'approccio dichiarativo è stato di grande aiuto nel ridurre la quantità di codice che dobbiamo gestire e ha reso più facile supportare sia il batch che lo streaming senza unire sistemi separati. L'open-sourcing di questo framework come Spark Declarative Pipelines è un grande passo avanti per la community Spark." — Brad Turnbaugh, Sr. Data Engineer, 84.51°

8451

Quali sono i prossimi passi

Resta sintonizzato per maggiori dettagli nella documentazione di Apache Spark. Nel frattempo, puoi rivedere la Jira e la discussione della community per la proposta.

Se stai creando pipeline con Apache Spark oggi, ti invitiamo a esplorare il modello dichiarativo. Il nostro obiettivo è rendere lo sviluppo di pipeline più semplice, più affidabile e più collaborativo per tutti.

Il Lakehouse è più di un semplice storage aperto. Si tratta di formati aperti, motori aperti e, ora, modelli aperti per la costruzione su di essi.

Riteniamo che le pipeline dichiarative diventeranno un nuovo standard per lo sviluppo di Apache Spark. E siamo entusiasti di costruire quel futuro insieme, con la community, in the Open.

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Non perdere mai un post di Databricks

Iscriviti al nostro blog e ricevi gli ultimi post direttamente nella tua casella di posta elettronica.