Visualizza le categorie

Eseguire query su una cartella di file Parquet tramite SQL

Tempo di lettura: 24 minuti

CONNETTORE PER CARTELLA PARQUET

Eseguire query su una cartella di file Parquet tramite SQL

Parquet ha un proprio schema, quindi non c'è nulla da indovinare. Puntando Query Streams alla cartella, ogni file diventa una tabella SQL con gli stessi nomi di colonna e tipi già dichiarati dai file stessi: niente Spark, niente Python, niente caricamenti.

Tipi dal piè di pagina Analisi basata esclusivamente sui metadati Direttamente in Excel Nessun file caricato
\\lago\esportazioni\ordini
parte-00000. parte-00001. parte-00002. + altri 806
schema letto da ogni piè di pagina
SELEZIONA il paese,
       SOMMA(importo_netto)
Da ordini
RAGGRUPPARE PER paese;

Query Streams è una piattaforma di integrazione di database sicura e in tempo reale, e il suo connettore per cartelle Parquet trasforma una cartella di file .parquet in un'unica tabella SQL interattiva che è possibile interrogare da Microsoft Excel, Fogli Google, Airtable e dal proprio assistente AI. Per saperne di più, visita QueryStreams.com e iscriviti gratuitamente per interrogare la tua prima cartella Parquet in pochi minuti.

Qualcuno ti ha dato una cartella di file Parquet

Arriva attraverso una delle poche rotte più battute. Un'esportazione di data lake atterra su una quota di poche centinaia parte-00000. file. Un job dbt o Spark scrive il suo output da qualche parte e quel "qualche parte" si rivela essere una cartella di rete. Un team di analisi consegna un estratto. Una tabella del data warehouse viene archiviata su disco quando il rinnovo della licenza sembra troppo costoso e diciotto mesi dopo qualcuno vuole sapere cosa conteneva.

La parte scomoda è che Parquet non è leggibile dall'uomo. Facendo doppio clic su .parquet Il file non serve a nulla. Aprendolo con un editor di testo si ottiene una schermata piena di dati binari. Quando si chiede come fare, le risposte che si ricevono sono "avvia Spark" o "scrivi un po' di codice Python", ma nessuna delle due è una risposta seria per chi, come te, deve semplicemente presentare un numero al direttore finanziario il giovedì.

IL Connettori per cartelle Parquet Questa è la via più breve. Basta indicare all'agente Query Streams la cartella e ogni file corrispondente diventa parte di un'unica tabella SQL. Non viene effettuato alcun cambio di file, né un'unione in un nuovo file, né alcun caricamento: i file rimangono esattamente dove si trovano e le query vengono eseguite direttamente lì.

Lo schema è già all'interno del file

Questo è l'aspetto che distingue Parquet da qualsiasi altro tipo di cartella, ed è importante comprenderlo perché spiega perché questo connettore sia così semplice da utilizzare.

Ogni file Parquet termina con un piè di pagina: un blocco di metadati che indica i nomi delle colonne, i loro tipi di dati esatti, se ogni colonna ammette valori nulli e il numero di righe contenute nel file. Questo piè di pagina viene scritto da chi ha prodotto il file ed è autorevole. Non è un suggerimento o una convenzione, bensì la dichiarazione del file stesso sul suo contenuto.

Un file .parquet
Gruppo di righe 1 — blocchi di colonne compressi Gruppo di righe 2 — blocchi di colonne compressi Gruppo di righe 3 — blocchi di colonne compressi Piè di pagina: nomi delle colonne, tipi, possibilità di valori nulli, numero di righe
Query Streams legge solo il piè di pagina per ricavare la tabella. I gruppi di righe non vengono modificati finché non si esegue effettivamente una query.

Quindi, quando il connettore campiona la cartella, non ispeziona i valori dei dati e non ne trae conclusioni. Chiede a ciascun file campionato di descriversi, legge la risposta e la fissa come definizione della tabella. I tipi sono dichiarato piuttosto che dedotto, il che significa che non c'è alcuna dimensione del campione di cui preoccuparsi e nessuna possibilità che la diecimillesima riga contraddica quanto implicito nelle prime cento.

Anche i tipi vengono trasportati intatti. A DECIMALE(18,2) la colonna nel file è una colonna decimale nella tabella, non un'approssimazione in virgola mobile di uno, perché il valore non passa mai attraverso una stringa durante il suo ingresso. Tutto il resto in questa famiglia — la scansione della cartella, il registro dei file, la cache locale crittografata, le tabelle di gestione — funziona esattamente come descritto in come funzionano i connettori dei set di fileQuello che segue è solo ciò che distingue Parquet.

Ciò di cui non dovrai mai discutere

Il modo più chiaro per vedere il vantaggio è confrontarlo con il CSV, che è lo stesso lavoro senza il piè di pagina. Tutto un Connettore per cartelle CSV Deve rilevare, concordare e difendere, come viene semplicemente affermato in anticipo in Parquet.

La domandaCartella CSVCartella Parquet
Che tipo di codifica dei caratteri è questa? Rilevato per ogni file, e le codifiche miste comportano un rifiuto. Non si presenta questo problema: il testo viene memorizzato come UTF-8 nel formato stesso.
Virgola, punto e virgola, tabulazione o barra verticale? È stato annusato e deve essere identico in tutta la cartella. Non si presenta: il parquet non è un testo delimitato.
La prima riga è un'intestazione? Un'opzione, con colonne posizionali in caso contrario. I nomi delle colonne si trovano nel piè di pagina.
Questa colonna contiene numeri o testo? Dedotto dai valori campionati. Dichiarato dal file.
Il denaro rimarrà invariato? Sì, ma solo perché il connettore si impegna a individuare le colonne decimali e a impostarle come esatte. Un numero decimale nel file corrisponde a un numero decimale nella tabella. Non c'è nulla da notare.
È 03/04/2026 Marzo o aprile? Potrebbe essere necessario un esplicito formato data. Le date vengono memorizzate come date, non come testo.
Quante righe ci sono in questo file? Possibile saperlo solo leggendolo. Nel piè di pagina, gratis.

Di conseguenza, le opzioni da impostare sono poche. Un connettore per cartelle CSV include un delimitatore, un carattere di virgoletta, un'opzione per l'intestazione, una codifica, stringhe nulle, un formato data e una modalità di layout, perché tutti questi elementi sono effettivamente incerti in un file di testo. Un connettore per cartelle Parquet non ha nessuna di queste opzioni, perché il file ha già risposto: le impostazioni disponibili sono elencate più avanti.

Colonne che solo alcuni file hanno

Le cartelle di file Parquet raramente vengono scritte tutte in una volta. Una pipeline riceve un nuovo campo a marzo, quindi i file da marzo in poi hanno una colonna che quelli di gennaio non hanno. Questa è l'unica vera decisione che il connettore deve prendere, e la prende in un modo specifico.

La tabella appuntata è la unione delle colonne trovate nei file campionati, non la loro intersezione. Una colonna che appare solo in alcuni di essi si unisce comunque alla tabella: è semplicemente contrassegnata come nullable e si legge come NULL per i file precedenti. In questo modo, si mantengono tutte le colonne della cartella anziché perdere quelle aggiunte successivamente.

Una colonna è mancante è tollerato. Una colonna avente una diverso tipo non lo è. Se ID ordine Se un file contiene un intero a 64 bit e un altro testo, il connettore si rifiuta categoricamente di stabilire una corrispondenza e identifica con precisione la discrepanza: in quale colonna, in quale tipo e in quali due file si trova l'errore. Non sceglierà un vincitore e non convertirà automaticamente un tipo nell'altro per far coincidere i numeri.

Un file che non è effettivamente in formato Parquet non compromette la qualità del campione. Se uno dei file campionati non può essere letto affatto come Parquet — una scrittura troncata, un .parquet estensione su qualcos'altro: viene registrata con il motivo e il campione continua con i file rimanenti. Solo se nessuno Se i file campionati sono leggibili, il connettore li rifiuta e quindi elenca gli errori riscontrati in ciascuno di essi.

Annusare costa poco, perché non si legge nulla

Campioni di Query Streams fino a 64 file quando si connette per la prima volta a una cartella. Per i file CSV, ciò significa aprire e analizzare 64 file. Per i file Parquet, significa posizionarsi alla fine di 64 file e leggere un blocco di metadati, un'operazione banale anche quando i file sono di centinaia di megabyte ciascuno.

Lo stesso trucco funziona anche durante la sincronizzazione. Il conteggio delle righe di ciascun file viene estratto dal piè di pagina senza modificare i dati, quindi il connettore sa in anticipo se un file supererà il limite di righe per file e se la sincronizzazione nel suo complesso sta per superare il suo budget di righe. Può rifiutare e specificare il limite Prima Il file problematico viene scritto nella tabella, anziché scoprire il problema a metà del processo e lasciarti con un caricamento parziale.

ParapettoPredefinitoMassimo
File per connettore100,0002,000,000
Profondità della cartella8 livelli64 livelli
Dimensione di un singolo file512 MB4GB
Righe da un file qualsiasi2,000,00050,000,000
Righe per sincronizzazione10,000,000100,000,000
budget di tempo per la scansione300 secondi3.600 secondi

Prima di trasferire un singolo byte, viene innanzitutto verificata la dimensione del file. Un file che supera il limite di dimensione viene rifiutato e il resto della cartella viene sincronizzato di conseguenza.

Ogni riga conosce la sua posizione nel suo file

Come con ogni connettore File Set, ogni riga contiene un _source_file colonna che indica il file da cui proviene e un _row_id che è unico su tutta la tabella. In una cartella Parquet, _row_id è meglio di così: i lettori di Parquet rivelano un vero numero di riga del file, quindi l'identificativo è costruito a partire dal nome del file più la posizione ordinale reale di quella riga all'interno del file, con l'aggiunta di zeri fino a raggiungere dodici cifre.

L'imbottitura è il punto. Ordinamento per _row_id Il formato CSV dispone le righe nell'ordine del file anziché nell'ordine 1, 10, 100, 2, e dodici cifre sono sufficienti a mantenere la validità per un trilione di righe in un singolo file, superando agevolmente qualsiasi limite si possa imporre. Il formato CSV non ha un concetto equivalente a cui fare riferimento, quindi questo è un caso in cui il formato a colonne offre qualcosa in più, oltre a semplificare le cose.

Quale file di parte è responsabile del totale
SELECT _source_file, COUNT(*) AS row_count, SUM(net_amount) AS net_amount FROM orders GROUP BY _source_file ORDER BY net_amount DESC;

E poiché l'identificativo di riga è ordinato, è possibile visualizzare l'inizio di un file specifico senza dover leggere l'intera cartella, il che è utile quando una partizione sembra sospetta e si desidera vedere cosa contiene effettivamente.

Le prime righe di un file parziale, nell'ordine del file
SELECT _row_id, order_id, order_date, net_amount FROM orders WHERE _source_file = 'part-00042.parquet' ORDER BY _row_id LIMIT 20;

Quando un file smette di corrispondere al PIN

Una volta che la forma è fissata, ogni file viene controllato rispetto ad essa all'ingresso — e ancora una volta, quel controllo è una lettura del piè di pagina, non una lettura dei dati, quindi è abbastanza economico da farlo su ogni file ogni volta. Un file che non è più in accordo è parcheggiato: le sue righe restano fuori dalla tabella, il motivo viene registrato e il resto della cartella si sincronizza normalmente.

Quattro sono i punti che costituiscono un disaccordo, ed è importante conoscerli singolarmente perché il terzo sorprende le persone.

  • Un tipo è cambiato. La colonna esiste, ma il piè di pagina ora la dichiara con un nome diverso da quello che era stato fissato.
  • Una colonna obbligatoria è scomparsa. Nel file manca la colonna contrassegnata come non nullable.
  • Un file ha eliminato una colonna che prima conteneva. Anche quando la colonna bloccata è nullable, un file che fatto Quella colonna viene mantenuta quando la cartella è stata campionata e da allora ha smesso di essere mantenuta; viene quindi parcheggiata anziché letta come nulla. Leggerla come nulla annullerebbe silenziosamente ogni somma costruita su quella colonna, e un totale errato è peggio di un file mancante.
  • È apparsa una colonna completamente nuova. Una colonna che il pin non ha mai visto e che non hai escluso, parcheggia il file anziché eliminarlo silenziosamente.
La causa più comune è l'evoluzione dello schema nella pipeline di origine. Se il tuo job Spark o dbt ha effettivamente iniziato a scrivere una nuova colonna, la struttura della cartella è cambiata in modo permanente e la soluzione è quella di riposizionare il connettore anziché correggere il file. Modificando una qualsiasi delle opzioni del connettore, la cartella viene ricampionata e viene fissata una nuova definizione che include la nuova colonna, dopodiché i file parcheggiati vengono sincronizzati normalmente.

La rilettura di un file sostituisce le sue righe anziché aggiungervi dati. Tutto ciò che il file aveva precedentemente inserito viene rimosso e il suo contenuto attuale viene inserito in un'unica transazione, quindi una partizione riscritta non può generare duplicati o una tabella parzialmente aggiornata in caso di errore durante il processo.

Ogni impostazione di Parquet e quando modificarla

La cosa più utile da dire su questa carta è cosa è non su di esso. Un connettore per cartelle Parquet non ha impostazioni specifiche per il formato. Una cartella CSV ha un delimitatore, un carattere di virgoletta, una codifica, stringhe nulle e un formato data. Una cartella Excel ha un elenco di fogli. Una cartella JSONL ha una profondità di appiattimento. Parquet non ha nessuno di questi elementi, e il motivo è il piè di pagina: lo schema è dichiarato all'interno di ogni file, quindi non c'è nulla da comunicare al connettore e nulla che questo possa dedurre. L'intera categoria "quale opzione ho sbagliato?" non esiste in questo caso.

Ciò che rimane è un breve elenco. Tutto il resto che vedi su Connessione scheda — cartelle radice, sottocartelle di scansione e profondità massima, modelli di esclusione, collegamenti simbolici successivi, modello di analisi del nome file, nomi dei token delle cartelle, intervallo di scansione, hashing del contenuto, politica di eliminazione, conservazione del registro eventi e binari di protezione della scansione — si comporta in modo identico su ogni tipo di cartella ed è documentato una volta, per intero, in Guida al connettore File SetQuesta sezione tratta esclusivamente gli aspetti specifici di una cartella contenente file Parquet.

Diverse impostazioni sono nascoste finché non si seleziona "Mostra opzioni avanzate". L'hashing, la politica di eliminazione, la conservazione dei registri eventi, i limiti di scansione, i quattro limiti di ingestione e le sovrascritture del manifesto sono tutti gestiti tramite questo interruttore. Se un'impostazione menzionata di seguito non è visualizzata, questo è il motivo.

Nome della tabella

Necessario. Parquet è un driver a tabella singola: ogni file che include pattern corrisponde alle unioni in una tabella, ed è così che quella tabella viene chiamata in SQL — ordini, eventi, viaggiQualunque cosa contenga effettivamente la cartella. Solo lettere, cifre e trattini bassi, e non può iniziare con una cifra; qualsiasi altro carattere viene rifiutato al momento del salvataggio anziché durante la sincronizzazione.

Sceglietelo deliberatamente, perché è il nome che useranno tutte le query salvate, tutte le domande di Nova e tutti gli aggiornamenti dei fogli di calcolo. Rinominarlo in seguito non è distruttivo, ma significa dover rivedere tutto ciò che avete già costruito sopra di esso. Una cartella di file di parti chiamata parte-00000. Non fornisce alcuna informazione sul contenuto delle righe, quindi il nome della tabella è solitamente l'unica etichetta leggibile dai dati.

Includi modelli

Predefinito: **/*.parquet — Preimpostato automaticamente quando si seleziona la scheda Cartella Parquet. Modelli glob, uno per riga, che determinano quali file nelle cartelle radice sono inclusi. Se lasciato invariato, seleziona tutti i file Parquet nell'albero, che è ciò che si desidera la prima volta che si avvia un'esportazione.

Restringere questo spazio è la leva principale a tua disposizione, ed è quasi sempre la mossa migliore rispetto ad alzare il limite massimo. Le esportazioni dal data lake sono partizionate, quindi la struttura delle cartelle include già il filtro desiderato. Se una scansione viene rifiutata perché la condivisione contiene più file del limite consentito, è consigliabile limitare il pattern alle partizioni effettivamente interrogate anziché puntare al limite di file: un connettore che legge quattromila file è più veloce da scansionare, più veloce da sincronizzare e molto più facile da gestire rispetto a uno che ne legge quattrocentomila e applica i filtri in seguito.

Definizione dell'ambito di un'esportazione partizionata
**/*.parquet ogni file Parquet nell'albero (il valore predefinito) anno=2026/**/*.parquet un anno di un lago partizionato da Hive **/part-*.parquet File di parte Spark, saltando gli ordini extra inseriti manualmente/**/*.parquet un dataset da una condivisione contenente diversi

Una regola in particolare mette in difficoltà le persone, e il mago la enuncia direttamente sul campo di gioco: Una cartella mista contiene due connettori sulla stessa radice, uno per ogni driver. Se \\lago\esportazioni contiene file CSV insieme a Parquet, ampliando questo modello per **/*.* non ti dà entrambi: i due formati non possono condividere una forma bloccata. Crea un connettore Cartella Parquet e un Connettore per cartelle CSV puntavano allo stesso percorso, ognuno con il proprio schema di inclusione e il proprio nome di tabella.

Sovrascritture del manifesto (JSON)

Nascosto dietro Mostra le opzioni avanzatee più utile su Parquet che altrove. In tutti gli altri casi di questa famiglia, gli override sono un modo per correggere qualcosa che il connettore ha indovinato. Qui non viene indovinato nulla, quindi un override è un modo per correggere qualcosa che il connettore ha indovinato. conduttura E così è stato, ed è proprio in questi casi che non è possibile semplicemente riparare i file.

Tre scenari coprono quasi ogni utilizzo reale. Un job Spark denominato una colonna col_14 o amt_net_x E nessuno vuole scriverlo in un report. Una colonna contiene informazioni riservate e non dovrebbe proprio essere presente nella tabella. Oppure una colonna numerica necessita di una precisione maggiore nella tabella rispetto a quella dichiarata nei file. In questo caso, si tratta di modifiche di una sola riga, applicate quando la struttura viene bloccata, in modo da diventare parte integrante della definizione della tabella anziché doverle riapplicare in ogni query.

Sovrascritture del manifesto: le tre chiavi accettate dal connettore
{ "rinomina": { "quantità": "quantità" }, "riscrive": { "prezzo": "DECIMAL(18,4)" }, "escludi": [ "note_interne" ] }
  • rinomina — dai un nome migliore alla colonna. Non puoi rinominarla _source_file o _row_ide non è possibile rinominare due colonne con lo stesso nome.
  • riscrivere — Forza il tipo di una colonna. Il tipo impostato qui è un'istruzione esplicita, quindi viene applicato senza il controllo rigoroso del piè di pagina che altrimenti bloccherebbe il file. Solo nomi di tipo semplici con precisione opzionale: DECIMALE(18,4), VARCHAR, GRANDE, DATA.
  • escludere — escludere completamente alcune colonne dalla tabella. È importante sapere che una colonna esclusa è anche una colonna che il controllo di deriva smette di considerare, quindi questo è il modo più pulito per ignorare un campo che una pipeline continua a modificare.

Il campo deve contenere un oggetto JSON o essere vuoto: i JSON non validi vengono rifiutati al momento del salvataggio, non ignorati silenziosamente. Svuotare la scatola cancella le tue impostazioni e riporta la tabella alla forma dichiarata dai piè di pagina, che è il modo previsto per annullare una sovrascrittura anziché eliminare e ricostruire il connettore.

La modifica di qualsiasi impostazione comporta un nuovo campionamento della cartella. Questo è il meccanismo alla base dei consigli presenti altrove in questa pagina: quando una pipeline aggiunge effettivamente una colonna e i file iniziano a essere salvati, il salvataggio del connettore con tutte le opzioni modificate fissa una nuova definizione che la include. Ciò significa anche che una sovrascrittura non è una modifica in tempo reale: ha effetto sul pin successivo, non sulle righe già presenti nella tabella.

Perché non è disponibile un'opzione di layout a tabella?

Le cartelle CSV, Excel e JSONL offrono un Disposizione della tabella La scelta è tra un layout fisso o una tabella per layout, perché questi sono i formati che gli esseri umani assemblano manualmente e una cartella contenente questi formati accumula effettivamente diversi set di colonne nel corso degli anni. Parquet non ha questa impostazione, volutamente. Parquet è per definizione un formato generato automaticamente: qualcosa ha prodotto quei file in modo programmatico e, se quel qualcosa genera diverse forme in una cartella, dividerle in tabelle separate non farebbe altro che mascherare un problema di flusso di lavoro anziché metterlo in evidenza.

Quindi una cartella Parquet ottiene una tabella e il disaccordo viene segnalato anziché gestito. Le colonne mancanti vengono assorbite nell'unione e contrassegnate come nullabili; in conflitto tipi sono un rifiuto denominato. Se effettivamente si mantengono diversi set di dati non correlati su una condivisione, la risposta è un connettore per set di dati, con ambito definito con Includi modelli — il che è comunque più chiaro, perché ognuno ottiene poi un proprio nome di tabella.

Limiti di assunzione e di scansione

I quattro limiti di ingestione (righe e byte, per file e per sincronizzazione) e i limiti di scansione (file per scansione, profondità, budget di tempo, parallelismo per radice) sono condivisi tra ogni tipo di cartella, in tempo reale Mostra le opzioni avanzatee segui una regola che vale la pena ripetere: lascia una casella vuota per accettare l'impostazione predefinita, perché zero non significa mai illimitato e viene rifiutato categoricamente. I loro valori e le ragioni per sollevare ciascuno di essi sono nel Guida al connettore del set di file; quelli che più spesso sono importanti per una cartella Parquet sono elencati nella tabella dei riferimenti sopra.

Parquet presenta un vantaggio in questo caso, descritto in precedenza: poiché il conteggio delle righe si trova nel piè di pagina, il limite di righe per file viene controllato prima che vengano letti i dati del file, quindi una violazione si traduce in un rifiuto denominato anziché in un caricamento che fallisce a metà. Aumentare il limite rimane comunque la seconda migliore soluzione. Prima di tutto, restringete il pattern di inclusione.

Importare dati Parquet in Microsoft Excel

La richiesta principale di convertire i file Parquet in Excel è quella di utilizzare un componente aggiuntivo, ma la risposta onesta è che non è necessario farlo. Una volta che la cartella funge da connettore, il componente aggiuntivo Query Streams per Microsoft Excel esegue una query salvata e inserisce le righe nel foglio di calcolo, aggiornandolo ogni volta che lo si richiede. In questo modo si ottiene il formato Parquet in Excel senza bisogno di conversioni, senza un cluster Spark e senza che una copia dei dati rimanga inutilizzata nella cartella Download di qualcuno. La stessa query funziona senza modifiche anche in Fogli Google.

È necessario un account Query Streams e l'agente di rete in esecuzione su una macchina in grado di visualizzare la cartella: un server, una workstation con la condivisione mappata o il proprio laptop. I connettori per cartelle Parquet richiedono Agente di rete 2.6 o versioni successive.

  1. Installa l'agente da pagina di download se non è già in esecuzione.
  2. Nel portale, aggiungi un connettore dati e scegli Cartella Parquet.
  3. Inserisci il percorso della cartella così come lo vede il computer dell'agente e assegna un nome alla tabella: questo campo è obbligatorio perché tutti i dati presenti nella cartella vengono uniti in un'unica tabella.
  4. Lascia attivo il modello di inclusione **/*.parquet a meno che la cartella non contenga più elementi di quelli che desideri visualizzare nella tabella, nel qual caso riducila. **/part-*.parquet, o una singola partizione come anno=2026/**/*..
  5. Salva. L'agente legge i piè di pagina di un massimo di 64 file, blocca lo schema e segnala le colonne e i tipi trovati.
  6. Apri il generatore di query, seleziona il connettore e scrivi il codice SQL, oppure chiedi a Nova AI di scriverlo per te.
  7. Salva la query, quindi eseguila dal componente aggiuntivo di Microsoft Excel o Fogli Google ogni volta che hai bisogno dei numeri.
Utilizza il percorso visualizzato dall'agente. Una lettera di unità mappata sul tuo desktop non verrà risolta su un server che esegue l'agente. Utilizza un percorso UNC come \\lago\esportazioni\ordinioppure un percorso locale sul computer dell'agente, e verificare che l'account con cui viene eseguito l'agente abbia i permessi di lettura. Le esportazioni del data lake si trovano spesso in una struttura di cartelle con partizioni di data, quindi lasciare invariata l'impostazione della profondità a meno che la struttura non sia effettivamente più profonda di otto livelli.

Da lì, la cartella si comporta come qualsiasi altra origine dati. Si collega a Microsoft SQL Server, PostgreSQL, MySQL, BigQuery e altri, nonché a connettori API come Stripe o Shopify, in modo che una tabella di data warehouse archiviata su una condivisione di file possa essere collegata ai dati di produzione in tempo reale con una singola istruzione di sola lettura, senza dover prima caricare nulla in un data warehouse.

Domande frequenti

Come posso leggere i file Parquet senza Spark? +
Installa l'agente di rete Query Streams su una macchina che può vedere la cartella e aggiungi un Cartella Parquet Il connettore punta alla cartella. La cartella diventa una tabella SQL che è possibile interrogare dal portale, da Microsoft Excel, da Fogli Google o da un assistente AI. Non c'è alcun cluster da eseguire, nessun notebook da gestire e nessun codice Python da scrivere: l'agente legge i file dove si trovano e lo schema viene ricavato dai file stessi.
Posso aprire file Parquet in Microsoft Excel? +
Non direttamente: Parquet è un formato binario a colonne e Excel non dispone di un lettore nativo per questo formato. Con un connettore per cartelle Parquet non ne hai bisogno. Scrivi una query sulla cartella, salvala ed eseguila tramite il componente aggiuntivo Query Streams; le righe vengono inserite nel foglio di lavoro e aggiornate a richiesta. Poiché esegui una query anziché un'importazione, puoi aggregare un'enorme quantità di righe nella cartella e recuperare solo le poche centinaia che ti servono.
Devo specificare a Query Streams i tipi di colonna? +
No, e non puoi nemmeno sbagliare. Ogni file Parquet specifica i nomi delle colonne, i tipi e la possibilità di valori nulli nel piè di pagina, e quella dichiarazione è la base su cui viene costruita la tabella. Nulla viene dedotto dai valori dei dati, quindi non c'è rischio di campionamento e non c'è alcuna opzione di indovinare il tipo da impostare. DECIMALE(18,2) Il valore nel file arriva nella tabella come un decimale esatto, mai come un numero in virgola mobile.
Tutti i file Parquet devono avere colonne identiche? +
Devono mettersi d'accordo su tipi, non nell'elenco completo delle colonne. La tabella fissata è l'unione delle colonne trovate nei file campionati e una colonna presente solo in alcuni di essi è contrassegnata come nullable e si legge come NULL per i file che ne sono sprovvisti. Una colonna con un tipo diverso in file diversi viene invece considerata un rifiuto denominato: il connettore indica la colonna ed entrambi i tipi anziché convertirne uno nell'altro.
La mia pipeline ha aggiunto una colonna. La cartella funzionerà ancora? +
I file che contengono una colonna mai vista nella tabella bloccata vengono messi in attesa, in modo che la tabella esistente rimanga corretta e l'utente se ne accorga immediatamente. Si tratta di una scelta deliberata per evitare di scartare i dati silenziosamente. Quando la nuova colonna viene aggiunta in modo permanente, la modifica di qualsiasi opzione del connettore esegue un nuovo campionamento della cartella e blocca una nuova definizione che la include, dopodiché i file messi in attesa vengono sincronizzati normalmente.
Perché uno dei miei file Parquet è stato parcheggiato? +
Quattro motivi: il tipo dichiarato di una colonna è cambiato, manca una colonna non nullable, il file ha perso una colonna che aveva quando è stata campionata la cartella oppure contiene una colonna che il pin non ha mai visto. Un file che non può essere letto come Parquet viene parcheggiato con questo come motivo. Ogni caso è registrato in file_eventi con il nome del file e la specifica discrepanza, e tutti gli altri file continuano a sincronizzarsi.
Quanti file Parquet può leggere un singolo connettore? +
Di default vengono gestiti 100.000 file distribuiti su 8 livelli di cartelle, con possibilità di espansione fino a 2.000.000 di file e 64 livelli. I singoli file vengono letti fino a 512 MB e 2.000.000 di righe di default, con un limite massimo di 4 GB e 50.000.000 di righe. Poiché il conteggio delle righe proviene dal piè di pagina, un file che supererebbe il limite di righe viene rifiutato per nome prima del caricamento dei dati, anziché in una fase intermedia.
Posso sapere da quale file proviene una riga? +
Sì. Ogni fila trasporta _source_file nominando il suo file e _row_id identificandolo in modo univoco attraverso la tabella. Per Parquet l'identificatore è costruito dalla posizione ordinale reale della riga all'interno del suo file, riempito con zeri in modo che l'ordinamento per _row_id ordina effettivamente le righe nell'ordine del file. Raggruppamento per _source_file Di solito è il modo più rapido per trovare la partizione responsabile di una cifra che sembra errata.
Cosa succede quando la pipeline scrive nuovi file di parte? +
Si uniscono alla tabella alla successiva sincronizzazione senza riconfigurazione e vengono letti solo i file nuovi o modificati. Un file riscritto sostituisce le proprie righe anziché aggiungerle, quindi una partizione che viene rigenerata non lascia duplicati. L'eliminazione di un file rimuove le sue righe dalla tabella e la rimozione viene registrata in file_eventi.
I miei dati Parquet sono stati caricati o modificati? +
Nessuno dei due. I file rimangono dove sono e non vengono mai scritti, spostati o rinominati. I dati analizzati vengono memorizzati nella cache in forma crittografata sulla stessa macchina dell'agente di rete e solo le righe restituite da una query lasciano la rete, tramite una connessione in uscita che l'agente stesso apre. Le query devono essere singole SELEZIONARE, CON, PRAGMA, DESCRIVERE o SPIEGARE istruzione — qualsiasi cosa possa scrivere viene rifiutata prima dell'esecuzione.

Iniziare

Guarda all'interno di quella cartella di file Parquet

Punta l'agente alla cartella e interroga ogni file parziale come se fosse un'unica tabella SQL, utilizzando esattamente i nomi e i tipi di colonna dichiarati dai file stessi. Niente Spark, niente Python e niente esce dalla tua rete.

Guide correlate: Come interrogare una cartella di file con SQL | Unire più file CSV in un'unica tabella | Scarica l'agente Query Streams | Tutte le guide di File Set Connector

Categoria: Connettori per set di file

Tag: da parquet a excel, interrogare file parquet, leggere parquet senza spark, cartella parquet, parquet in excel, connettore per cartelle parquet, sql su parquet, esportazione da data lake

Meta Description: Interroga una cartella di file Parquet come un'unica tabella SQL e importa i dati in Microsoft Excel. Senza Spark, senza caricamenti.

Updated on 27 agosto 2026

Powered by BetterDocs