DataSunrise Consegue la Certificazione AWS DevOps Competency per AWS DevSecOps e Monitoraggio, Logging e Performance

Formato File Apache Drill Parquet

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:

  1. Evoluzione dello schema: lo schema può evolversi nel tempo senza la necessità di aggiornare tutti i file.
  2. Inferenza dello schema: strumenti come Apache Drill possono inferire automaticamente lo schema.
  3. 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.

  1. Potatura delle colonne: la query legge solo le colonne necessarie dal disco.
  2. Filtro pushdown spinge i filtri ai dati per scansioni efficienti.
  3. 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.

Successivo

Architettura AWS ECS Spiegata: Scalabilità, Sicurezza e Semplicità

Architettura AWS ECS Spiegata: Scalabilità, Sicurezza e Semplicità

Scopri di più

Ha bisogno del nostro team di supporto?

I nostri esperti saranno lieti di rispondere alle Sue domande.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Informazioni generali
Vendite
Servizio clienti e supporto tecnico
Richieste di collaborazione e alleanza
Informazioni generali:
info@datasunrise.com
Servizio clienti e supporto tecnico:
support.datasunrise.com
Richieste di collaborazione e alleanza:
partner@datasunrise.com