Masterizzare l’elaborazione di dati batch con Versatile Data Kit (VDK)

Migliorare la gestione dei dati batch con Versatile Data Kit (VDK)

Gestione dei dati

Un tutorial su come utilizzare VDK per eseguire il processo di dati in batch

Foto di Mika Baumeister su Unsplash

Versatile Data Kit (VDK) è un framework open source per l’acquisizione e l’elaborazione dei dati progettato per semplificare le complessità della gestione dei dati. Mentre VDK può gestire vari compiti di integrazione dei dati, inclusa l’elaborazione in streaming in tempo reale, questo articolo si concentrerà su come utilizzarlo nel processo di dati in batch.

Questo articolo copre:

  • Introduzione al processo di dati in batch
  • Creazione e gestione delle pipeline di processamento in batch in VDK
  • Monitoraggio del processo di dati in batch in VDK

1 Introduzione al processo di dati in batch

Il processo di dati in batch è un metodo per elaborare grandi volumi di dati a intervalli specificati. I dati in batch devono essere:

  • Indipendenti dal tempo: i dati non richiedono un’elaborazione immediata e di solito non sono sensibili alle esigenze in tempo reale. A differenza dei dati in streaming, che richiedono un’elaborazione istantanea, i dati in batch possono essere elaborati a intervalli pianificati o quando le risorse sono disponibili.
  • Suddivisibili in parti: invece di elaborare l’intero set di dati in un’unica operazione intensiva delle risorse, i dati in batch possono essere suddivisi in segmenti più piccoli e gestibili. Questi segmenti possono quindi essere elaborati in modo sequenziale o in parallelo, a seconda delle capacità del sistema di elaborazione dei dati.

Inoltre, i dati in batch possono essere elaborati offline, il che significa che non richiedono una connessione costante alle fonti di dati o ai servizi esterni. Questa caratteristica è preziosa quando le fonti di dati possono essere intermittenti o temporaneamente non disponibili.

ELT (Estrazione, Caricamento, Trasformazione) è un caso d’uso tipico per il processo di dati in batch. L’ELT comprende tre fasi principali:

  • Estrazione (E): i dati vengono estratti da diverse fonti in diversi formati, strutturati e non strutturati.
  • Caricamento (L): i dati vengono caricati in una destinazione target, come un data warehouse.
  • Trasformazione (T): i dati estratti richiedono tipicamente una pre-elaborazione, come pulizia, armonizzazione e trasformazioni in un formato comune.

Ora che hai imparato cosa è il processo di dati in batch, passiamo al prossimo passo: creazione e gestione delle pipeline di processamento in batch in VDK.

2 Creazione e gestione delle pipeline di processamento in batch in VDK

VDK adotta un approccio basato sui componenti, che ti consente di creare rapidamente pipeline di elaborazione dei dati. Per una introduzione a VDK, consulta il mio articolo precedente, Una panoramica di Versatile Data Kit. Questo articolo assume che tu abbia già installato VDK sul tuo computer.

Per spiegare come funziona la pipeline di elaborazione in batch in VDK, consideriamo uno scenario in cui devi eseguire un’attività ELT.

Immagina di voler acquisire e elaborare, in VDK, i dipinti di Vincent Van Gogh disponibili su Europeana, un noto aggregatore europeo di patrimonio culturale. Europeana mette a disposizione tutti gli oggetti di patrimonio culturale tramite la sua API REST pubblica. Per quanto riguarda Vincent Van Gogh, Europeana offre più di 700 opere.

La seguente figura mostra i passaggi per il processo di dati in batch in questo scenario.

Immagine di Autore

Esaminiamo separatamente ogni punto. Puoi trovare il codice completo per implementare questo scenario nel repository GitHub di VDK.

2.1 Estrarre e Caricare

Questa fase include i job VDK che chiamano la REST API di Europeana per estrarre dati grezzi. In particolare, definisce tre job:

  • job1 — cancella la tabella esistente (se presente)
  • job2 — crea una nuova tabella
  • job3 — inserisce i valori della tabella direttamente dalla REST API.

Questo esempio richiede una connessione internet attiva per funzionare correttamente e accedere alla REST API di Europeana. Questa operazione è un processo batch perché scarica i dati solo una volta e non richiede ottimizzazione.

Memorizzeremo i dati estratti in una tabella. La difficoltà di questo compito è costruire un mappaggio tra la REST API, che viene fatto nel job3.

La scrittura del job3 consiste semplicemente nel codice Python per eseguire questo mappaggio, ma invece di salvare il file estratto in un file locale, chiamiamo una funzione VDK (job_input.send_tabular_data_for_ingestion) per salvare il file in VDK, come mostrato nel seguente frammento di codice:

import inspectimport loggingimport osimport pandas as pdimport requestsfrom vdk.api.job_input import IJobInputdef run(job_input: IJobInput):    """    Scarica i dataset richiesti dalla sceneggiatura e inseriscili nel data lake.    """    log.info(f"Avvio del passaggio del job {__name__}")    api_key = job_input.get_property("api_key")    start = 1    rows = 100    basic_url = f"https://api.europeana.eu/record/v2/search.json?wskey={api_key}&query=who:%22Vincent%20Van%20Gogh%22"    url = f"{basic_url}&rows={rows}&start={start}"    response = requests.get(url)    response.raise_for_status()    payload = response.json()    n_items = int(payload["totalResults"])    while start < n_items:        if start > n_items - rows:            rows = n_items - start + 1        url = f"{basic_url}&rows={rows}&start={start}"        response = requests.get(url)        response.raise_for_status()        payload = response.json()["items"]        df = pd.DataFrame(payload)        job_input.send_tabular_data_for_ingestion(            df.itertuples(index=False),            destination_table="assets",            column_names=df.columns.tolist(),        )        start = start + rows

Per il codice completo, fare riferimento all’esempio su GitHub. Si prega di notare che è necessaria una chiave API gratuita per scaricare i dati da Europeana.

L’output prodotto durante la fase di estrazione è una tabella contenente i valori grezzi.

2.2 Trasformare

Questa fase riguarda la pulizia dei dati e l’estrazione solo delle informazioni rilevanti. Possiamo implementare i job correlati in VDK attraverso due job:

  • job4 — cancella la tabella esistente (se presente)
  • job5 — crea la tabella pulita.

Il job5 consiste semplicemente nella scrittura di una query SQL, come mostrato nel seguente frammento di codice:

CREATE TABLE cleaned_assets AS (    SELECT        SUBSTRING(country, 3, LENGTH(country)-4) AS country,        SUBSTRING(edmPreview, 3, LENGTH(edmPreview)-4) AS edmPreview,        SUBSTRING(provider, 3, LENGTH(provider)-4) AS provider,        SUBSTRING(title, 3, LENGTH(title)-4) AS title,        SUBSTRING(rights, 3, LENGTH(rights)-4) AS rights    FROM assets)

Eseguendo questo job in VDK verrà prodotta un’altra tabella chiamata cleaned_asset contenente i valori elaborati. Infine, siamo pronti per utilizzare i dati puliti da qualche parte. Nel nostro caso, possiamo costruire un’app Web che mostra i quadri estratti. È possibile trovare il codice completo per eseguire questo compito nel repositorio GitHub di VDK.

3 Monitoraggio dell’Elaborazione Batch dei Dati in VDK

VDK fornisce VDK UI, un’interfaccia grafica utente per monitorare i job dei dati. Per installare VDK UI, seguire il video ufficiale di VDK al seguente link. La figura seguente mostra uno screenshot di VDK UI.

Immagine di Autore

Ci sono due pagine principali:

  • Esplora: Questa pagina ti permette di esplorare lavori di dati, come il tasso di successo dell’esecuzione del lavoro, i lavori con esecuzioni fallite nelle ultime 24 ore e le esecuzioni più fallite nelle ultime 24 ore.
  • Gestisci: Questa pagina fornisce maggiori dettagli sul lavoro. Puoi ordinare i lavori per colonna, cercare più parametri, filtrare per alcune colonne, visualizzare la sorgente per il lavoro specifico, aggiungere altre colonne e così via.

Guarda il seguente video ufficiale di VDK per imparare come utilizzare VDK UI.

Sommario

Congratulazioni! Hai appena imparato come implementare l’elaborazione batch dei dati in VDK! È sufficiente acquisire dati grezzi, manipolarli e, infine, utilizzarli per i tuoi scopi! Puoi trovare molti altri esempi nel repository GitHub di VDK.

Rimani aggiornato sulle ultime novità e le migliori pratiche dell’elaborazione dati in VDK. Continua a esplorare e affinare la tua expertise!

Una panoramica di Versatile Data Kit

Iniziare con Versatile Data Kit, un framework che rende il lavoro dell’Ingegnere dei Dati più efficiente

towardsdatascience.com

Gestire i Valori Mancanti in Versatile Data Kit

Un tutorial su come creare pipeline dei dati utilizzando VDK per gestire i valori mancanti

towardsdatascience.com

Dai Dati Grezzi a un Database Pulito: Una Profondità Immersione in Versatile Data Kit

Un esempio completo utilizzando Versatile Data Kit (un framework recentemente rilasciato da VMware) e Trino DB

towardsdatascience.com