Formato File Apache Drill Parquet
Sta cercando un modo per analizzare grandi dataset in modo efficiente usando SQL? Apache Drill è un motore di query SQL open-source che consente di eseguire analisi interattive su dataset su larga scala. Una delle caratteristiche principali che rende Apache Drill così potente è il suo supporto per il formato file Apache Drill Parquet.
Questo articolo chiarirà la struttura dei file Parquet e approfondirà il suo ruolo nel facilitare SQL su Hadoop. Inoltre, chiarirà la logica dietro il suo design di file dati autodescrittivi per un’elaborazione rapida. Alla fine, comprenderà come Apache Drill e Parquet possano aiutarla a lavorare più efficientemente con grandi dataset. Questo le darà una solida comprensione di questi strumenti.
Che Cos’è il Formato File Apache Parquet?
Parquet è un formato di file dati orientato alle colonne open-source progettato per l’archiviazione e il recupero efficienti di grandi dataset. Creato nel 2013 da Cloudera e Twitter, Parquet è ora parte dell’ecosistema Apache Hadoop.
Alcune caratteristiche chiave di Parquet includono:
- Formato di archiviazione colonnare
- Opzioni di compressione flessibili
- Schemi di codifica efficienti
- Supporto per strutture di dati nidificate complesse
Lo storage colonnare di Parquet è particolarmente vantaggioso per le query che hanno bisogno di leggere solo un sottoinsieme delle colonne. Parquet memorizza i dati in colonne, non in righe. Questo riduce la quantità di dati letta dal disco e accelera le query.
Come Parquet Abilita SQL su Hadoop
Usare Parquet con Apache Drill rende facile analizzare i dati Hadoop con query SQL. Drill include un motore SQL basato sullo standard SQL:2011 con alcune estensioni. Può cercare nei file Parquet senza caricare prima i dati in un database separato o in un data warehouse.
Ecco un semplice esempio di come potrebbe usare SQL per interrogare un file Parquet con Drill:
SELECT * FROM dfs.`/path/to/parquet/file`;
Questa query seleziona tutte le colonne dal file Parquet specificato. Drill inferisce automaticamente lo schema del file Parquet e rende i dati disponibili come una tabella SQL.
Può anche eseguire query più complesse, come aggregazioni e join, sui dati Parquet utilizzando la sintassi SQL standard. Per esempio:
SELECT product_category, SUM(total_sales) AS category_sales FROM dfs.`/path/to/sales.parquet` GROUP BY product_category ORDER BY category_sales DESC;
Questa query calcola le vendite totali per ciascuna categoria di prodotto da un file Parquet contenente dati di vendita. Raggruppa i risultati per categoria e li ordina in ordine decrescente.
File Dati Autodescrittivi
Un’altra caratteristica chiave di Parquet è che è un formato di file autodescrittivo. Questo significa che i file Parquet contengono sia i dati stessi che i metadati sullo schema e i tipi di dati.
La natura autodescrittiva dei file Parquet ha diversi vantaggi:
- Evoluzione dello schema: lo schema può evolversi nel tempo senza la necessità di aggiornare tutti i file.
- Inferenza dello schema: strumenti come Apache Drill possono inferire automaticamente lo schema.
- Forzare lo schema durante la scrittura per garantire la consistenza dei dati e migliorare l’integrità dei dati.
Ecco un esempio di come potrebbero apparire i metadati in un file Parquet:
creator: parquet-mr version 1.8.1 (build 4aba4dae7bb0d4edbcf7923ae1339f28fd3f7fcf) extra: parquet.avro.schema = {"type":"record","name":"schema","namespace":"com.example","fields":[{"name":"id","type":"int"},{"name":"name","type":"string"},{"name":"address","type":{"type":"record","name":"ADDRESS","fields":[{"name":"street","type":"string"},{"name":"city","type":"string"},{"name":"state","type":"string"},{"name":"zip","type":"string"}]}}]} file schema: schema -------------------------------------------------------------- id: OPTIONAL INT64 R:0 D:1 name: OPTIONAL BINARY L:STRING R:0 D:1 address: OPTIONAL GROUP R:0 D:1 .street: OPTIONAL BINARY L:STRING R:0 D:1 .city: OPTIONAL BINARY L:STRING R:0 D:1 .state: OPTIONAL BINARY L:STRING R:0 D:1 .zip: OPTIONAL BINARY L:STRING R:0 D:1
Come può vedere, i metadati includono dettagli come la versione di Parquet, lo schema Avro e la struttura delle colonne e dei tipi di dati. Quando Drill legge questo file, può utilizzare lo schema incorporato per rendere automaticamente queryabili i dati tramite SQL senza alcuna configurazione aggiuntiva.
Elaborazione File Ottimizzata
I file Parquet ottimizzano per una rapida elaborazione in diversi modi.
- Potatura delle colonne: la query legge solo le colonne necessarie dal disco.
- Filtro pushdown spinge i filtri ai dati per scansioni efficienti.
- Codifica e compressione: la codifica e la compressione intelligenti migliorano archiviazione e prestazioni.
Vediamo un esempio per illustrare come funziona la potatura delle colonne. Consideri un file Parquet che rappresenta una tabella con le colonne A, B e C.
Se eseguiamo una query come:
SELECT A FROM table;
È necessario leggere solo i dati della colonna ‘A’ dal file, non l’intera tabella. Questo può ridurre notevolmente l’I/O del disco e migliorare le prestazioni delle query, specialmente per tabelle larghe con molte colonne.
Apache Drill, come molti altri motori di query big data, supporta sia la potatura delle partizioni che la potatura delle colonne quando si lavora con layout e formati di file adatti. La potatura delle colonne in Apache Drill funziona per impostazione predefinita quando si interroga file Parquet. Non è necessario effettuare alcuna configurazione extra o specificare impostazioni particolari per beneficiare di questa ottimizzazione.
Un’altra ottimizzazione, il filtro pushdown, minimizza la quantità di dati che il sistema deve elaborare. Se una query contiene una clausola WHERE, Parquet può spingere il filtraggio a livello di file e restituire solo le righe corrispondenti.
Per esempio, se abbiamo una query come:
SELECT * FROM users WHERE age > 30;
Parquet può saltare interi gruppi di righe che non corrispondono al filtro sull’età, evitando la necessità di leggere e deserializzare quei dati.
Infine, Parquet utilizza algoritmi di compressione efficienti e schemi di codifica per ridurre le dimensioni del file pur consentendo query rapide. Alcuni codec di compressione comuni utilizzati con Parquet includono Snappy, Gzip e LZO.
Utilizzare Parquet in Apache Drill
Per iniziare con Parquet e Drill, deve prima installare Drill, che può scaricare dal sito web di Apache Drill. Drill supporta la lettura di file Parquet da diverse fonti, tra cui:
- File system locale
- Hadoop Distributed File System (HDFS)
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
Una volta installato e configurato Drill, potrà utilizzare la shell di Drill o la Web UI di Drill per eseguire query sui dati Parquet.
Ecco un esempio di come creare una tabella da un file Parquet utilizzando la shell di Drill:
0: jdbc:drill:zk=local> USE dfs.tmp; CREATE TABLE users AS SELECT * FROM dfs.`/path/to/users.parquet`;
Questo crea una nuova tabella di Drill chiamata “users” da un file Parquet memorizzato sul file system. Ora può eseguire query su questa tabella come qualsiasi altra tabella SQL.
Per esempio:
SELECT name, age FROM users WHERE age > 30 ORDER BY age DESC;
Se utilizza file Parquet partizionati per data o chiave, Drill può evitare di leggere dati non necessari utilizzando la potatura delle partizioni. Parquet partizionato è una tecnica comune per strutturare i dati in modo ottimale per le prestazioni delle query.
Conclusione
Questo articolo spiega il formato file Apache Drill Parquet e come aiuta a eseguire SQL in modo efficiente su Hadoop. Abbiamo esplorato i vantaggi dello storage colonnare di Parquet, i file dati autodescrittivi e le ottimizzazioni delle query.
Utilizzando Apache Drill con Parquet, può sbloccare la potenza delle analisi SQL interattive su dataset massivi. Drill funziona facilmente con SQL standard e JDBC/ODBC, rendendo semplice connettersi con strumenti BI e di visualizzazione dei dati attuali.
Apache Drill e Parquet offrono una piattaforma potente e adattabile per l’analisi dei big data. Che stia analizzando i dati, creando rapporti o utilizzando dashboard in tempo reale, questi strumenti possono aiutarla a svolgere il lavoro. Per saperne di più, consulti la documentazione ufficiale di Apache Drill.
DataSunrise supporta la Scoperta dei Dati per File Parquet. Questa funzionalità aiuta le organizzazioni a conformarsi alle normative sui dati e a migliorare la sicurezza dei dati. La Scoperta dei Dati consente di eseguire la scansione dei file Parquet per identificare dati sensibili e informazioni di identificazione personale (PII). Con questa intuizione, può adottare misure appropriate per proteggere e governare i suoi dati.
DataSunrise offre una suite completa di strumenti per la sicurezza dei dati, tra cui scoperta dei dati, mascheramento dei dati, prevenzione della perdita di dati e monitoraggio dell’attività del database. Questi strumenti si integrano perfettamente con vari database, data warehouse e piattaforme big data, fornendo una soluzione flessibile e robusta per le sue esigenze di sicurezza dei dati.
Richieda una demo online per vedere di persona come i nostri strumenti possono aiutarla a migliorare la sicurezza dei dati, conformarsi alle normative e proteggere le sue informazioni sensibili.