Pipeline di elaborazione di inserimento, ETL e flusso con Azure Databricks e Delta Lake

Azure Databricks
Azure Data Lake Storage
Hub IoT Azure
Azure Data Factory
Hub eventi di Azure

Idee per le soluzioni

Questo articolo è un'idea di soluzione. Per espandere il contenuto con altre informazioni, ad esempio potenziali casi d'uso, servizi alternativi, considerazioni sull'implementazione o indicazioni sui prezzi, inviare commenti e suggerimenti su GitHub.

L'organizzazione deve inserire dati di qualsiasi formato, dimensione e velocità nel cloud in modo coerente. La soluzione in questo articolo soddisfa tale esigenza con un'architettura che implementa l'estrazione, la trasformazione e il caricamento (ETL) dalle origini dati a un data lake. Il data lake può contenere tutti i dati, incluse le versioni trasformate e curate su varie scale. I dati possono essere usati per l'analisi dei dati, business intelligence (BI), la creazione di report, l'analisi scientifica dei dati e l'apprendimento automatico.

Apache e Apache® Spark™ sono marchi registrati o marchi di Apache Software Foundation nei Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.

Architettura

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. I dati vengono inseriti nei modi seguenti:

    • Code di eventi come Hub eventi, hub IoT o Kafka inviano dati di streaming ad Azure Databricks, che usa il motore Delta ottimizzato per leggere i dati.
    • Le pipeline di Data Factory pianificate o attivate copiano i dati da origini dati diverse in formati non elaborati. Il caricatore automatico in Azure Databricks elabora i dati man mano che arrivano.
  2. Azure Databricks carica i dati in cartelle o tabelle Delta Lake ottimizzate e compresse nel livello Bronze in Data Lake Archiviazione.

  3. I processi di Azure Databricks in streaming, pianificati o attivati leggono nuove transazioni dal livello Data Lake Archiviazione Bronze. I processi vengono aggiunti, puliti, trasformati e aggregati i dati prima di usare le transazioni ACID per caricarli in set di dati curati nei livelli Data Lake Archiviazione Silver e Gold.

  4. I set di dati vengono archiviati in Delta Lake in Data Lake Archiviazione.

Ogni servizio inserisce i dati in un formato comune per garantire la coerenza. L'architettura usa un data lake condiviso basato sul formato Delta Lake aperto. I dati non elaborati vengono inseriti da origini batch e di streaming diverse per formare una piattaforma dati unificata. La piattaforma può essere usata per casi d'uso downstream, ad esempio analisi, creazione di report bi, data science, intelligenza artificiale e Machine Learning.

Livelli di archiviazione Bronze, Silver e Gold

Con il modello medallion, costituito da livelli di archiviazione Bronze, Silver e Gold, i clienti hanno accesso flessibile ed elaborazione dei dati estendibile.

  • Le tabelle bronze forniscono il punto di ingresso per i dati non elaborati quando vengono inseriti in Data Lake Archiviazione. I dati vengono acquisiti nel formato di origine non elaborato e convertiti nel formato Delta Lake transazionale aperto per l'elaborazione. La soluzione inserisce i dati nel livello Bronze usando:
    • API Apache Spark in Azure Databricks. Le API leggono gli eventi di streaming da Hub eventi o hub IoT e quindi converte tali eventi o file non elaborati nel formato Delta Lake.
    • Comando COPY INTO . Usare il comando per copiare i dati direttamente da un file di origine o una directory in Delta Lake.
    • Caricatore automatico di Azure Databricks. Il caricatore automatico recupera i file quando arrivano nel data lake e li scrive nel formato Delta Lake.
    • Attività di copia di Data Factory. I clienti possono usare questa opzione per convertire i dati da uno dei formati supportati nel formato Delta Lake.
  • Le tabelle Silver archiviano i dati mentre sono ottimizzati per i casi d'uso di business intelligence e data science. Il livello Bronze inserisce dati non elaborati e quindi vengono eseguite più attività di elaborazione ETL e flusso per filtrare, pulire, trasformare, unire e aggregare i dati in set di dati curati silver. Le aziende possono usare un motore di calcolo coerente, ad esempio delta engine open-standards, quando si usa Azure Databricks come servizio iniziale per queste attività. Possono quindi usare linguaggi di programmazione familiari come SQL, Python, R o Scala. Le aziende possono anche usare processi DevOps ripetibili e cluster di calcolo temporanei ridimensionati per i singoli carichi di lavoro.
  • Le tabelle Gold contengono dati arricchiti, pronti per l'analisi e la creazione di report. Gli analisti possono usare il metodo scelto, ad esempio PySpark, Koalas, SQL, Power BI ed Excel per ottenere nuove informazioni dettagliate e formulare query.

Componenti

  • Hub eventi analizza e assegna punteggi ai messaggi in streaming da varie origini, inclusi i sistemi locali e fornisce informazioni in tempo reale.
  • Data Factory orchestra le pipeline di dati per l'inserimento, la preparazione e la trasformazione di tutti i dati su qualsiasi scala.
  • Data Lake Archiviazione riunisce dati in streaming e batch, inclusi dati strutturati, non strutturati e semistrutturati come log, file e supporti.
  • Azure Databricks pulisce e trasforma i set di dati senza struttura e li combina con dati strutturati da database operativi o data warehouse.
  • hub IoT offre comunicazioni altamente sicure e affidabili tra l'applicazione IoT e i dispositivi.
  • Delta Lake in Data Lake Archiviazione supporta transazioni ACID per l'affidabilità ed è ottimizzato per l'inserimento, l'elaborazione e le query efficienti.

Dettagli dello scenario

L'elaborazione di inserimento, ETL e flusso con Azure Databricks è semplice, aperta e collaborativa:

  • Semplice: un data lake aperto con un livello curato in un formato open source semplifica l'architettura dei dati. Delta Lake, uno strumento open source, consente di accedere ad Azure Data Lake Archiviazione data lake. Delta Lake in Data Lake Archiviazione supporta transazioni di atomicità, coerenza, isolamento e durabilità (ACID) per l'affidabilità. Delta Lake è ottimizzato per l'inserimento, l'elaborazione e le query efficienti.
  • Open: la soluzione supporta codice open source, standard aperti e framework aperti. Funziona anche con i più diffusi ambienti di sviluppo integrato (IDE), librerie e linguaggi di programmazione. Tramite connettori nativi e API, la soluzione funziona anche con un'ampia gamma di altri servizi.
  • Collaborazione: i data engineer, i data scientist e gli analisti collaborano con questa soluzione. Possono usare notebook collaborativi, IDE, dashboard e altri strumenti per accedere e analizzare i dati sottostanti comuni.

Azure Databricks si integra perfettamente con altri servizi di Azure, ad esempio Data Lake Archiviazione, Azure Data Factory, Hub eventi di Azure e hub IoT di Azure.

Potenziali casi d'uso

Questa soluzione è ispirata al sistema creato dall'assistenza sanitaria di Providence per l'analisi in tempo reale. Qualsiasi settore che inserisce dati batch o di streaming può anche prendere in considerazione questa soluzione. Alcuni esempi:

  • Al dettaglio ed e-commerce
  • Dati finanziari
  • Servizi sanitari e scienze biologiche
  • Fornitori di energia

Passaggi successivi

  • Spanish Point Technologies crea il motore di corrispondenza usando Azure Databricks e Azure Data Factory per inserire dati su larga scala per aiutare i musicisti a pagare equamente.

Guide e architetture completamente distribuibili: