Cos'è Apache Parquet?

Un fotografo sotto le travi di un ponte

Autori

Annie Badman

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Cos'è Apache Parquet?

Apache Parquet è un formato di archiviazione colonnare open source utilizzato per memorizzare, gestire e analizzare in modo efficiente grandi set di dati. A differenza dei formati di archiviazione basati su righe come CSV o JSON, Parquet organizza i dati in colonne per migliorare le prestazioni e ridurre i costi del data storage.

Le organizzazioni utilizzano formati di file diversi per soddisfare altre esigenze a livello di dati. Molti formati tradizionali organizzano i dati in righe, ottimizzando la semplicità del trasferimento dei dati e la leggibilità.

Parquet adotta un approccio fondamentalmente diverso, poiché raggruppa in colonne i tipi di dati simili. Questa struttura a colonne ha contribuito a trasformare il modo in cui le organizzazioni gestiscono l'analytics su larga scala, consentendo una compressione superiore e un accesso mirato ai dati.

Ad esempio, quando analizza le transazioni dei clienti, un database di retail che utilizza Parquet può accedere a colonne specifiche come date e importi degli acquisti senza caricare interi record dei clienti. Questa capacità di accedere a colonne specifiche può ridurre sia i tempi di elaborazione che i costi dello storage.

Il formato di Parquet è utile in 3 aree chiave:

  • Workload analitici che elaborano query complesse su miliardi di record.
  • Data lake e data warehouse che richiedono uno storage efficiente e un veloce recupero dei dati.
  • Pipeline di machine learning (ML) che analizzano attributi specifici su grandi set di dati di addestramento.

Un altro dei motivi per cui l'adozione di Parquet è molto diffusa è la sua compatibilità con sistemi distribuiti e strumenti di dati, come Apache Spark, Apache Hive e Apache Hadoop.

Principali caratteristiche di Apache Parquet

Rispetto ad altri formati di file, Parquet trasforma il data storage e l'accesso ai dati attraverso tre funzionalità chiave:

  • Formato di storage colonnare: mentre i formati di file tradizionali memorizzano i dati in righe, proprio come le voci di un foglio di calcolo, Parquet utilizza un formato di storage colonnare. Poiché organizza tipi di dati simili in colonne, Parquet legge solo i valori delle colonne pertinenti. Questo approccio mirato consente di ridurre i tempi di query da ore a minuti, oltre a ridurre significativamente i costi di storage.
  • Gestione di schemi e metadati: ogni file Parquet include uno schema autodescrittivo, di fatto un blueprint della sua struttura di dati. Questi metadati aiutano a eseguire interrogazioni efficienti e consentono ai modelli di dati di evolversi via via che cambiano le esigenze aziendali. Ad esempio, un database aziendale che utilizza Parquet può aggiungere nuovi attributi dei clienti senza ricostruire i record esistenti.
  • Compressione efficiente: Parquet ottimizza automaticamente il data storage attraverso sofisticate tecniche di compressione, il che significa che riduce le dimensioni dei file rimuovendo le informazioni duplicate non necessarie e memorizzando i dati in un formato più efficiente in termini di spazio. Questo approccio intelligente al data storage aiuta a garantire l'efficienza dello storage e prestazioni ottimali per diversi tipi di workload.
Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Come funziona Apache Parquet

Apache Parquet trasforma sistematicamente i dati non elaborati in un formato colonnare ottimizzato, migliorando significativamente sia l'efficienza dello storage che le prestazioni delle query.

Ecco come Parquet elabora i dati:

1. Organizzazione dei dati

Quando si scrivono dati in un file Parquet, il formato divide innanzitutto i dati in gruppi di righe. Ogni gruppo di righe rappresenta un'unità indipendente del set di dati, che consente l'elaborazione parallela e la gestione efficiente della memoria per operazioni su larga scala. Questa strategia di partizionamento costituisce la base per l'accesso ai dati ad alte prestazioni di Parquet.

2. Chunking delle colonne

All'interno di ogni gruppo di righe, l'algoritmo di assemblaggio di Parquet riorganizza i dati per colonna anziché per riga. I tipi di dati simili vengono raggruppati in blocchi di colonne, consentendo una codifica specializzata in base alle caratteristiche dei dati. Ad esempio, una colonna di date può essere ottimizzata in modo diverso rispetto a una colonna di valori numerici.

3. Compressione e codifica

Parquet applica un processo di ottimizzazione in due fasi. Innanzitutto, utilizza schemi di codifica come la codifica RLE (Run-Length Encoding) per rappresentare in modo efficiente i valori ripetuti, particolarmente utile per le colonne con molte voci duplicate. Quindi, applica algoritmi di compressione come Snappy o Gzip per ridurre ulteriormente i requisiti di storage.

 4. Generazione di metadati

Il formato crea metadati completi, inclusi schemi di file e tipi di dati, statistiche per ogni colonna, posizioni e struttura dei gruppi di righe. Questi metadati rendono più efficiente la pianificazione e l'ottimizzazione delle query.

5. Esecuzione delle query

Durante la lettura dei dati Parquet, i motori di query consultano prima i metadati per identificare le colonne pertinenti. Solo i blocchi di colonne necessari vengono letti dallo storage e i dati vengono decompressi e decodificati in base alle esigenze.

Benefici di Apache Parquet

Apache Parquet può offrire vantaggi significativi alle organizzazioni che gestiscono operazioni su larga scala utilizzando i dati.

I benefici includono:

Prestazioni delle query

La struttura dei dati di Parquet può rendere l'esecuzione delle query analitiche molto più veloce. Quando le applicazioni necessitano di dati specifici, accedono solo alle colonne pertinenti, riducendo i tempi di query da ore a minuti. Questo accesso mirato rende Parquet prezioso per le organizzazioni che eseguono analytics su larga scala.

Gestione di dati complessi

A differenza dei formati più semplici, Parquet è in grado di gestire in modo efficiente strutture di dati e array annidati, comuni nelle applicazioni moderne. Questa funzionalità lo rende utile per le organizzazioni che gestiscono tipi di dati complessi, come strutture simili a JSON nella web o analytics o gli array annidati nei dati dei sensori provenienti da dispositivi Internet of Things (IoT).

Efficienza di archiviazione

Il formato colonnare di Parquet cambia radicalmente il modo in cui i dati vengono memorizzati e compressi. Raggruppando tipi di dati simili, Parquet può applicare diversi algoritmi di codifica a ciascun tipo di dati, ottenendo rapporti di compressione migliori rispetto a formati come CSV o JSON.

Ad esempio, un set di dati contenente milioni di transazioni con i clienti potrebbe richiedere terabyte di storage in formato CSV, ma solo una frazione di tale spazio se memorizzato sotto forma di file Parquet.

Integrazione dei framework

Le moderne architetture di dati richiedono spesso una perfetta integrazione degli strumenti, offerta da Parquet attraverso il supporto nativo per i principali framework. Indipendentemente dal fatto che i team utilizzino Python per l'analisi, Java per lo sviluppo di applicazioni o Apache Spark per l'elaborazione dei dati, Parquet può contribuire a garantire un accesso coerente ai dati in tutta l'azienda.

Ottimizzazione dell'ecosistema Hadoop

L'integrazione nativa di Parquet con Hadoop lo rende particolarmente efficace per l'elaborazione dei big data. Poiché Parquet è stato creato per l'Hadoop Distributed File System (HDFS), in genere offre prestazioni migliori rispetto ai formati di file tradizionali negli ambienti Hadoop. Quando si utilizza Parquet con Hadoop, le organizzazioni possono eseguire le query più velocemente e memorizzare i dati in modo più efficiente, spesso utilizzando una quantità notevolmente inferiore dello spazio di storage di cui necessitavano prima.

IBM Storage FlashSystem

IBM Storage FlashSystem: ottimizzazione di VMware in termini di costi, semplicità e resilienza

Scopri come IBM FlashSystem ottimizza gli ambienti VMware per l'efficienza dei costi, la semplicità e la resilienza. Questa sessione evidenzia come FlashSystem può migliorare la sicurezza, l'accessibilità e le prestazioni dei dati, dimostrandosi una soluzione ideale per le moderne infrastrutture IT.

Casi d'uso comuni di Parquet

Apache Parquet può soddisfare una serie di esigenze di ingegneria dei dati in vari settori e applicazioni.

Alcune delle sue implementazioni più importanti includono:

Data lake e data warehouse

Le organizzazioni che creano data lake e data warehouse spesso scelgono Parquet come formato di storage principale. Le sue efficienti prestazioni di compressione e query lo rendono ideale per memorizzare grandi volumi di dati mantenendo un rapido accesso agli strumenti di business intelligence e alle SQL query.

Ad esempio, una catena retail che utilizza Parquet per memorizzare i dati delle transazioni può analizzare i pattern di vendita in migliaia di negozi utilizzando meno storage rispetto ai formati tradizionali.

Workload di analytics

I data scientist e gli analisti che lavorano con framework come Apache Spark o la libreria Pandas di Python traggono beneficio dalle prestazioni ottimizzate di Parquet per le query analitiche. Sebbene formati come Avro spesso siano eccellenti nell'elaborazione a livello di record, molti trovano il formato di file Parquet particolarmente efficace per l'analytics.

Ad esempio, una società di servizi finanziari potrebbe utilizzare Parquet per memorizzare dati di mercato, consentendo agli analisti di elaborare milioni di eventi di trading e calcolare metriche di rischio quasi in tempo reale.

Pipeline ETL

Le pipeline di dati moderne usano spesso Parquet quale formato intermedio o di destinazione durante i processi di estrazione, trasformazione e caricamento (ETL). La sua compatibilità con i framework come Apache Spark e il supporto per l'evoluzione degli schemi lo rendono utile per i workflow di ingegneria dei dati che devono gestire strutture di dati in evoluzione.

Ad esempio, le organizzazioni sanitarie potrebbero utilizzare Parquet per trasformare in modo efficiente le cartelle cliniche dei pazienti da più sistemi in un formato unificato, con funzionalità di evoluzione degli schemi che gestiscono automaticamente nuovi campi di dati senza interrompere i processi esistenti.

Apache Parquet e altri formati di file a confronto

Ecco come il formato di file Parquet si confronta con altri comuni formati di storage:

Parquet, CSV e JSON a confronto

Formati tradizionali come CSV e JSON memorizzano i dati in righe, il che li rende ideali per i trasferimenti di dati semplici e per la leggibilità da parte degli esseri umani. Tuttavia, quando si parla di analytics su larga scala, la lettura dei file Parquet offre vantaggi significativi.

Mentre un CSV deve scansionare intere righe anche quando si interrogano singole colonne, lo storage colonnare di Parquet consente l'accesso diretto a elementi di dati specifici. Ad esempio, l'analisi di una singola colonna in un set di dati a livello di petabyte potrebbe richiedere la lettura dell'intero file CSV, mentre Parquet accederebbe solo ai blocchi di colonne pertinenti.

Parquet e Avro a confronto

Avro e Parquet sono utili in diversi casi d'uso nell'ecosistema dei dati. Il formato basato su righe di Avro eccelle negli scenari di serializzazione e streaming, rendendolo ideale per la registrazione di singoli eventi o transazioni.

Il formato di file Parquet, al contrario, è ottimizzato per i workload analitici in cui le organizzazioni devono analizzare colonne specifiche con milioni di record.

Ad esempio, una piattaforma di e-commerce potrebbe utilizzare Avro per acquisire gli eventi degli ordini in tempo reale, ma convertire questi dati in Parquet per lo storage a lungo termine e per l'analisi.

Supporto dell'ecosistema di strumenti e framework

La forza di Apache Parquet non risiede solo nelle specifiche del suo formato, ma anche nel suo solido ecosistema di strumenti e framework di supporto.

Alcune delle tecnologie più significative nell'ecosistema di Parquet includono:

Framework di elaborazione

Parquet si integra in modo ottimale con i principali framework di elaborazione dei dati. Apache Spark offre funzionalità di analytics ad alte prestazioni, mentre Hadoop consente l'elaborazione distribuita su grandi cluster.

Apache Arrow può migliorare ulteriormente questo ecosistema di elaborazione consentendo la condivisione rapida ed efficiente dei dati tra sistemi e l'accesso diretto ai dati, tutte funzionalità che migliorano le prestazioni quando si utilizzano framework come Spark e Hadoop.

Le organizzazioni possono abbinare questi framework a Parquet per creare pipeline di dati efficienti che vanno da gigabyte a petabyte.

Linguaggi e interfacce di programmazione

I data engineer possono lavorare con Parquet attraverso più interfacce di programmazione. Gli sviluppatori Python in genere utilizzano Pandas per la manipolazione dei dati, mentre le applicazioni Java utilizzano librerie Parquet native.

Piattaforme cloud

I principali provider di cloud, tra cui Amazon Web Services, Google Cloud Platform, Microsoft Azure e IBM Cloud, offrono supporto nativo per Parquet.

Parquet è compatibile anche con data warehouse e motori di query basati su cloud come Amazon Athena, Google BigQuery e IBM Db2 Warehouse.

Soluzioni correlate
IBM Storage DS8000

IBM Storage DS8000 è il sistema di storage più veloce, affidabile e sicuro per IBM zSystems e server IBM Power.

Esplora Storage DS8000
Soluzioni di data storage aziendali

IBM Storage è una famiglia di hardware di data storage, storage software-defined e software di gestione dello storage.

Esplora le soluzioni di data storage
Servizi di supporto hardware e software  

IBM fornisce supporto proattivo per i server web e per l'infrastruttura dei data center al fine di ridurre i tempi di inattività e migliorare la disponibilità dell'IT.

Servizi di server web
Fai il passo successivo

Dalla gestione degli ambienti hybrid cloud alla garanzia di resilienza dei dati, le soluzioni IBM Storage ti consentono di sbloccare insight dai tuoi dati mantenendo al contempo una solida protezione dalle minacce.

Esplora le soluzioni di data storage Fai un tour del prodotto