Een map met Parquet-bestanden doorzoeken met SQL
Parquet heeft zijn eigen schema, dus er valt niets te raden. Richt Query Streams op de map en elk bestand wordt een SQL-tabel met exact dezelfde kolomnamen en gegevenstypen als de bestanden zelf — geen Spark, geen Python, geen uploads.
SOM(netto_bedrag)
VAN bestellingen
GROEPEREN OP land;
Query Streams is een veilig, realtime platform voor database-integratie. De Parquet Folder-connector zet een map met .parquet-bestanden om in één live SQL-tabel die u kunt bevragen vanuit Microsoft Excel, Google Sheets, Airtable en uw AI-assistent. Meer informatie vindt u op QueryStreams.com en gratis aanmelden U kunt binnen enkele minuten uw eerste Parquet-map opvragen.
Iemand heeft je een map met Parquet-bestanden gegeven.
Het komt aan via een van de weinige bekende routes. Een export van een data lake komt op een share terecht als een paar honderd stuks. deel-00000.parket Bestanden. Een dbt- of Spark-taak schrijft zijn output ergens weg, en dat blijkt een netwerkmap te zijn. Een analyseteam levert een extract aan. Een datawarehouse-tabel wordt naar de schijf gearchiveerd wanneer de licentieverlenging duur lijkt, en achttien maanden later wil iemand weten wat erin stond.
Het lastige is dat Parquet niet door mensen leesbaar is. Dubbelklikken op een bestand is niet voldoende. .parket Het bestand doet niets nuttigs. Als je het in een teksteditor opent, krijg je een scherm vol binaire gegevens. Het advies dat je krijgt als je ernaar vraagt, is ofwel "start Spark op" of "schrijf een stukje Python", en geen van beide is een serieus antwoord voor iemand wiens eigenlijke taak het is om donderdag een cijfer aan de financieel directeur te presenteren.
De Parquet-mapconnector Dit is de korte route. Je wijst de Query Streams Agent naar de map en elk overeenkomend bestand wordt onderdeel van één enkele SQL-tabel. Niets wordt geconverteerd, niets wordt samengevoegd tot een nieuw bestand en niets wordt geüpload — de bestanden blijven precies waar ze zijn en je kunt ze daar opvragen.
Het schema bevindt zich al in het bestand.
Dit is hét kenmerk dat Parquet onderscheidt van alle andere maptypen, en het is belangrijk om dit te begrijpen omdat het verklaart waarom deze connector zo probleemloos werkt.
Elk Parquet-bestand eindigt met een voettekst: een blok met metadata dat de kolomnamen, hun exacte gegevenstypen, of elke kolom null-waarden toestaat en het aantal rijen in het bestand vermeldt. Deze voettekst wordt geschreven door het programma dat het bestand heeft gegenereerd en is bindend. Het is geen hint of conventie, maar de eigen verklaring van het bestand over de inhoud ervan.
Wanneer de connector de map bemonstert, inspecteert hij dus niet de gegevenswaarden en trekt daar geen conclusies uit. Hij vraagt elk bemonsterd bestand om zichzelf te beschrijven, leest het antwoord en legt dat vast als de tabeldefinitie. De typen zijn verklaarde in plaats van afgeleidDit betekent dat er geen sprake is van een te grote steekproefomvang en dat er geen mogelijkheid bestaat dat de tienduizendste rij in tegenspraak is met wat de eerste honderd rijen impliceerden.
Ook de typen worden ongewijzigd doorgegeven. DECIMAL(18,2) De kolom in het bestand is een decimale kolom in de tabel, geen benadering met drijvende komma, omdat de waarde nooit een tekenreeks doorloopt. Al het andere in deze familie — de mapscan, het bestandsregister, de versleutelde lokale cache, de beheertabellen — werkt precies zoals beschreven in Hoe werken File Set-connectoren?Hieronder worden alleen de verschillen met Parquet beschreven.
Waarover je nooit hoeft te discussiëren.
Het duidelijkste voordeel is te zien door het te vergelijken met een CSV-bestand, wat in feite hetzelfde is, maar dan zonder de voettekst. Alles wat CSV-mapconnector Het is de taak van Parquet om te detecteren, overeen te komen en te verdedigen, zoals dat simpelweg vooraf staat vermeld.
| De vraag | CSV-map | Parquet-map |
|---|---|---|
| Welke tekenencodering wordt hier gebruikt? | Detectie vindt per bestand plaats en gemengde coderingen worden geweigerd. | Dat probleem doet zich niet voor — de tekst wordt in het formaat zelf als UTF-8 opgeslagen. |
| Komma, puntkomma, tab of verticale streep? | Gecontroleerd, en moet identiek zijn in de hele map. | Komt niet voor — Parquet is geen afgebakende tekst. |
| Is de eerste regel een koptekst? | Een optie, met positionele kolommen indien nodig. | De kolomnamen staan in de voettekst. |
| Is deze kolom een getal of tekst? | Afgeleid uit steekproefwaarden. | Aangegeven door het bestand. |
| Zal het geld exact hetzelfde blijven? | Ja, maar alleen omdat de connector de moeite neemt om decimale kolommen te herkennen en deze als exact weer te geven. | Een decimaal getal in het bestand is een decimaal getal in de tabel. Er valt niets op te merken. |
Is 03/04/2026 Maart of april? |
Mogelijk is een expliciete vermelding nodig. datumformaat. |
Datums worden opgeslagen als datums, niet als tekst. |
| Hoeveel rijen bevat dit bestand? | Alleen te achterhalen door het te lezen. | In de voettekst staat 'gratis'. |
Er zijn dan ook navenant weinig instelmogelijkheden. Een CSV-mapconnector heeft een scheidingsteken, een aanhalingsteken, een koptekstschakelaar, een codering, lege tekenreeksen, een datumformaat en een lay-outmodus, omdat al deze aspecten inherent onzeker zijn voor een tekstbestand. Een Parquet-mapconnector heeft al deze extra opties niet, omdat het bestand zelf al antwoord heeft gegeven — de beschikbare instellingen staan verderop vermeld.
Kolommen die slechts in sommige bestanden voorkomen
Mappen met Parquet-bestanden worden zelden allemaal tegelijk geschreven. Een pipeline krijgt in maart een nieuw veld, dus bestanden vanaf maart hebben een kolom die bestanden van januari niet hebben. Dit is de enige echte afweging die de connector moet maken, en die maakt hij op een specifieke manier.
De vastgepinde tabel is de unie van de kolommen die in alle geselecteerde bestanden voorkomen, niet hun intersectie. Een kolom die slechts in sommige bestanden voorkomt, wordt nog steeds aan de tabel toegevoegd — deze wordt eenvoudigweg gemarkeerd als nullable en wordt gelezen als NULL voor de bestanden die ouder zijn dan dat. Zo behoudt u elke kolom in de map in plaats van de kolommen te verliezen die later zijn toegevoegd.
Een kolom die ontbrekend wordt getolereerd. Een kolom met een verschillende soorten is niet het geval. Als order_id Als een getal in het ene bestand een 64-bits integer is en in het andere tekst, weigert de connector de gegevens vast te zetten en benoemt hij de discrepantie nauwkeurig: welke kolom, welk type, in welke twee bestanden. Hij kiest geen winnaar en zal ook niet stilletjes het ene naar het andere converteren om de getallen gelijk te trekken.
.parket uitbreiding op iets anders — dit wordt vastgelegd met de reden en het voorbeeld wordt voortgezet met de resterende bestanden. Alleen als geen Als een van de bemonsterde bestanden leesbaar is, weigert de connector het bestand en geeft vervolgens een lijst met de fouten die in elk bestand zijn gevonden.
Snuffelen is goedkoop, omdat er niets gelezen wordt.
Query Streams-samples tot 64 bestanden Wanneer het voor het eerst een map opent, betekent dit dat er voor CSV 64 bestanden geopend en geparseerd moeten worden. Voor Parquet betekent dit dat er naar het einde van 64 bestanden gesprongen moet worden om een metadatablok te lezen, wat een triviale hoeveelheid werk is, zelfs als de bestanden honderden megabytes groot zijn.
Diezelfde truc werpt zijn vruchten af tijdens de synchronisatie. Het aantal rijen van elk bestand wordt uit de voettekst gehaald zonder de gegevens aan te raken, zodat de connector van tevoren weet of een bestand de limiet voor het aantal rijen per bestand zal overschrijden en of de synchronisatie als geheel het budget voor het aantal rijen dreigt te overschrijden. De connector kan de synchronisatie weigeren en de limiet benoemen. voor Het betreffende bestand wordt direct in de tabel geschreven, in plaats van dat het probleem halverwege wordt ontdekt en u met een gedeeltelijke laadbewerking blijft zitten.
| Leuning | Standaard | Maximum |
|---|---|---|
| Bestanden per connector | 100,000 | 2,000,000 |
| Mapdiepte | 8 niveaus | 64 niveaus |
| Grootte van een willekeurig bestand | 512 MB | 4 GB |
| Rijen uit een willekeurig bestand | 2,000,000 | 50,000,000 |
| Rijen per synchronisatie | 10,000,000 | 100,000,000 |
| Scan tijdsbudget | 300 seconden | 3600 seconden |
Eerst wordt de bestandsgrootte gecontroleerd, voordat er ook maar één byte wordt verplaatst. Een bestand dat de maximale grootte overschrijdt, wordt op naam geweigerd en de rest van de map wordt eromheen gesynchroniseerd.
Elke rij kent zijn positie in het bestand.
Net als bij elke File Set-connector bevat elke rij een _bronbestand kolom met de naam van het bestand waar het vandaan komt en een _rij_id Dat is uniek in de hele tabel. In een Parquet-map, _rij_id is beter dan dat: lezers van Parquet onthullen een echte bestand rijnummerDe identificatiecode wordt dus opgebouwd uit de bestandsnaam plus de werkelijke rangpositie van die regel binnen het bestand, aangevuld met nullen tot twaalf cijfers.
De opvulling is het punt. Sorteren op _rij_id Het feit dat rijen in de volgorde van het bestand worden geplaatst in plaats van in de volgorde van 1, 10, 100, 2 en 12 cijfers, is voldoende om dit voor een biljoen rijen in één bestand te handhaven — ruim boven elke mogelijke limiet. CSV heeft geen vergelijkbaar concept, dus dit is een van de weinige dingen waar de kolomindeling extra voordelen biedt in plaats van alleen maar tijd te besparen.
SELECT _source_file, COUNT(*) AS row_count, SUM(net_amount) AS net_amount FROM orders GROUP BY _source_file ORDER BY net_amount DESC;
En omdat de rij-identificatie geordend is, kunt u het begin van een specifiek bestand bekijken zonder de hele map te hoeven doorlezen. Dit is handig wanneer een partitie er verdacht uitziet en u wilt zien wat er zich daadwerkelijk in bevindt.
SELECT _row_id, order_id, order_date, net_amount FROM orders WHERE _source_file = 'part-00042.parquet' ORDER BY _row_id LIMIT 20;
Wanneer een bestand niet langer overeenkomt met de pincode
Zodra de vorm is vastgelegd, wordt elk bestand bij binnenkomst hiermee gecontroleerd. Deze controle betreft een uitlezing van de voettekst, niet van de gegevens zelf, waardoor het efficiënt genoeg is om dit bij elk bestand en elke keer te doen. Een bestand dat niet langer voldoet, wordt geparkeerdDe betreffende rijen blijven buiten de tabel, de reden wordt vastgelegd en de rest van de map synchroniseert normaal.
Vier punten vormen een meningsverschil, en het is de moeite waard om ze afzonderlijk te kennen, omdat het derde punt mensen verrast.
- Een type is veranderd. De kolom bestaat wel, maar de voettekst geeft nu een andere betekenis aan dan wat er eerder was vastgezet.
- Een verplichte kolom is verdwenen. Een kolom die door de pin als niet-nullbaar is gemarkeerd, ontbreekt in het bestand.
- Een bestand heeft een kolom verloren die het voorheen wel had. Zelfs wanneer de vastgezette kolom null-waarden toestaat, kan een bestand dat deed Als de kolom die gegevens bevat nog steeds wordt meegenomen in de dataset, maar deze niet meer wordt meegenomen, wordt de waarde ervan opgeslagen in plaats van als null te worden gelezen. Het lezen ervan als null zou ongemerkt elke som die op basis van die kolom is berekend, verlagen, en een onjuist totaal is erger dan een ontbrekend bestand.
- Er verscheen een gloednieuwe kolom. Een kolom die de pin nog nooit heeft gezien en die u niet hebt uitgesloten, zorgt ervoor dat het bestand wordt geparkeerd in plaats van stilzwijgend te worden verwijderd.
Bij het opnieuw lezen van een bestand worden de rijen vervangen in plaats van dat er rijen aan worden toegevoegd. Alles wat een bestand eerder heeft bijgedragen, wordt verwijderd en de huidige inhoud wordt in één transactie ingevoegd. Een herschreven partitie kan dus geen duplicaten of een half bijgewerkte tabel achterlaten als er halverwege iets misgaat.
Alle Parquet-instellingen en wanneer je ze moet wijzigen.
Het meest nuttige dat je over deze kaart kunt zeggen is wat het is niet erop. Een Parquet Folder-connector heeft helemaal geen formaatspecifieke instellingen. Een CSV-bestand heeft een scheidingsteken, een aanhalingsteken, een codering, lege tekenreeksen en een datumformaat. Een Excel-bestand heeft een lijst met werkbladen. Een JSONL-bestand heeft een platte-diepte-instelling. Parquet heeft geen van deze eigenschappen, en de reden daarvoor is de voettekst: het schema wordt in elk bestand gedeclareerd, dus er is niets om de connector te vertellen en niets om te raden. De hele categorie "welke optie heb ik fout gekozen?" bestaat hier niet.
Wat overblijft is een korte lijst. Al het andere dat je ziet op de Verbinding Tabblad — hoofdmappen, submappen scannen en maximale diepte, uitsluitingspatronen, symbolische links volgen, het patroon voor het parseren van bestandsnamen, maptokennamen, scaninterval, inhoudshashing, het verwijderingsbeleid, bewaartermijn van gebeurtenislogboeken en de scanbeveiligingsregels — gedraagt zich identiek voor elk maptype en is eenmaal volledig gedocumenteerd in de handleiding voor de File Set-connectorDit gedeelte behandelt uitsluitend wat specifiek is voor een map met Parquet-bestanden.
Tabelnaam
Vereist. Parquet is een single-table driver: elk bestand dat overeenkomt met de include-patronen wordt samengevoegd tot één tabel, en die tabel wordt in SQL zo genoemd. bestellingen, evenementen, reizen, ongeacht wat de map daadwerkelijk bevat. Alleen letters, cijfers en underscores, en het mag niet met een cijfer beginnen; alles wat daarvan afwijkt, wordt geweigerd tijdens het opslaan en niet tijdens het synchroniseren.
Kies deze naam bewust, want het is de naam die elke opgeslagen query, elke Nova-vraag en elke spreadsheetverversing zal gebruiken. Het later hernoemen is niet destructief, maar het betekent wel dat je alles wat je er al op hebt gebouwd, opnieuw moet doorlopen. Een map met deelbestanden genaamd deel-00000.parket De tabelnaam geeft geen enkele informatie over de inhoud van de rijen, waardoor deze meestal het enige leesbare label is dat de gegevens krijgen.
Voeg patronen toe
Standaard: **/*.parket — wordt automatisch voor je gegenereerd wanneer je de Parquet-mapkaart selecteert. Glob-patronen, één per regel, bepalen welke bestanden onder de hoofdmappen binnen het bereik vallen. Als je het zo laat, selecteert het elk Parquet-bestand in de boomstructuur, wat je wilt wanneer je het voor het eerst naar een export wijst.
Het verkleinen van dit gebied is het belangrijkste middel dat je hebt, en het is bijna altijd een betere zet dan het verhogen van de bovengrens. Data lake-exports zijn gepartitioneerd, dus de mapstructuur bevat al het filter dat u wilt gebruiken. Als een scan wordt geweigerd omdat de share meer bestanden bevat dan de limiet toestaat, beperk het patroon dan tot de partities die u daadwerkelijk opvraagt in plaats van de bestandslimiet te proberen te bereiken. Een connector die vierduizend bestanden leest, is sneller te scannen, sneller te synchroniseren en veel gemakkelijker te begrijpen dan een connector die vierhonderdduizend bestanden leest en daarna filtert.
**/*.parquet elk Parquet-bestand in de boomstructuur (de standaardwaarde) jaar=2026/**/*.parquet één jaar van een Hive-gepartitioneerd lake **/part-*.parquet Spark-partbestanden, waarbij handmatig toegevoegde extra's worden overgeslagen orders/**/*.parquet één dataset uit een share met meerdere
Eén regel verrast mensen, en de tovenaar vermeldt die regel zelf op het speelveld: Een gemengde map bevat twee connectoren op dezelfde root, één per driver. Als \\lake\exports houdt CSV's naast Parquet vast, waardoor dit patroon wordt uitgebreid naar **/*.* Dit geeft je niet beide — de twee formaten kunnen geen vastgezette vorm delen. Maak een Parquet-mapconnector en een CSV-mapconnector Ze wijzen allemaal naar hetzelfde pad, elk met een eigen include-patroon en een eigen tabelnaam.
Manifest-overrides (JSON)
Verborgen achter Toon geavanceerde optiesEn vooral nuttig op Parquet. Overal elders in deze familie zijn overrides een manier om iets te corrigeren wat de connector heeft geraden. Hier wordt niets geraden, dus een override is een manier om iets te corrigeren wat de connector zelf heeft geraden. pijpleiding Dat deed ik, en dat is precies het geval wanneer je de bestanden niet zomaar kunt repareren.
Drie scenario's dekken vrijwel elk praktisch gebruik. Een Spark-taak die een kolom een naam geeft. col_14 of amt_net_x En niemand wil dat in een rapport schrijven. Een kolom bevat vertrouwelijke informatie en zou helemaal niet in de tabel moeten voorkomen. Of een numerieke kolom vereist meer precisie in de tabel dan in de bestanden is aangegeven. Alle drie zijn hier bewerkingen van één regel, die worden toegepast wanneer de vorm wordt vastgezet, zodat ze onderdeel worden van de tabeldefinitie in plaats van iets dat je bij elke query opnieuw moet toepassen.
{ "renames": { "qty": "quantity" }, "retypes": { "price": "DECIMAL(18,4)" }, "exclude": [ "internal_notes" ] }
- hernoemt — Geef een kolom een betere naam. Je kunt de kolom niet hernoemen.
_bronbestandof_rij_idEn twee kolommen kunnen niet dezelfde naam krijgen. - hertypen — Dwing het type van een kolom af. Een type dat u hier instelt, is een bewuste instructie en wordt daarom toegepast zonder de strikte voettekstcontrole die anders een bestand zou blokkeren. Alleen eenvoudige typenamen met optionele precisie:
DECIMAL(18,4),VARCHAR,GROOT,DATUM. - uitsluiten — laat kolommen volledig buiten de tabel. Goed om te weten dat een uitgesloten kolom ook een kolom is waar de driftcontrole geen rekening meer mee houdt. Dit is dus de meest nette manier om een veld te negeren dat een pipeline voortdurend wijzigt.
Het veld moet een JSON-object bevatten of helemaal niets — ongeldige JSON wordt bij het opslaan geweigerd, niet stilzwijgend genegeerd. Door het vakje leeg te maken, worden je overrides gewist. en brengt de tabel terug naar de vorm die de voetteksten aangeven, wat de bedoelde manier is om een overschrijving ongedaan te maken in plaats van de connector te verwijderen en opnieuw op te bouwen.
Waarom is er geen optie voor tabelindeling?
De mappen CSV, Excel en JSONL bieden een Tabelindeling Keuze — één vastgezette lay-out, of één tabel per lay-out — omdat dat de formaten zijn die mensen handmatig samenstellen, en een map met dergelijke bestanden in de loop der jaren daadwerkelijk verschillende kolomsets verzamelt. Parquet heeft die instelling bewust niet. Parquet is per definitie machinaal geschreven: iets heeft die bestanden programmatisch geproduceerd, en als dat iets verschillende structuren in één map genereert, zou het opsplitsen ervan in aparte tabellen een probleem in de pipeline maskeren in plaats van het aan het licht te brengen.
Een Parquet-map krijgt dus één tabel, en meningsverschillen worden gemeld in plaats van opgelost. Ontbrekende kolommen worden opgenomen in de samenvoeging en gemarkeerd als nullable; conflicterende waarden worden genegeerd. typen zijn een benoemde weigering. Als u daadwerkelijk meerdere niet-gerelateerde datasets op één gedeelde map hebt staan, is het antwoord één connector per dataset, met een bereik van Voeg patronen toe — wat sowieso duidelijker is, omdat elk item dan zijn eigen tabelnaam krijgt.
Innamelimieten en scanlimieten
De vier limieten voor het aantal ingevoerde bestanden (rijen en bytes, per bestand en per synchronisatie) en de scanlimieten (bestanden per scan, diepte, tijdsbudget, parallelisme per root) worden gedeeld voor elk maptype en bevinden zich achter de rootmap. Toon geavanceerde optiesEn volg één regel die het herhalen waard is: laat een vakje leeg om de standaardwaarde te accepteren, want nul betekent nooit onbeperkt en wordt ronduit afgewezen. Hun waarden en de redenen om elk van deze waarden aan te halen, staan in de Handleiding voor het koppelen van bestandensetsDe belangrijkste criteria voor een Parquet-map staan vermeld in de bovenstaande tabel met richtlijnen.
Parquet heeft hier één voordeel, zoals eerder beschreven: omdat het aantal rijen in de voettekst staat, wordt de limiet per bestand gecontroleerd voordat er gegevens uit het bestand worden gelezen. Een overschrijding resulteert dus in een benoemde weigering in plaats van een laadfout halverwege. Het verhogen van de limiet blijft echter de op één na beste oplossing. Beperk eerst het include-patroon.
Parquet-gegevens importeren in Microsoft Excel
Het converteren van Parquet naar Excel is de meest voorkomende vraag hier, maar het eerlijke antwoord is dat je dat helemaal niet hoeft te doen. Zodra de map een connector is, voert de Query Streams-invoeging voor Microsoft Excel een opgeslagen query uit en plaatst de rijen in het spreadsheet, dat automatisch wordt vernieuwd wanneer je erom vraagt. Je krijgt Parquet in Excel zonder conversiestap, zonder Spark-cluster en zonder dat een kopie van de gegevens stilletjes in iemands downloadmap blijft staan. Dezelfde query werkt ongewijzigd in Google Sheets.
U hebt een Query Streams-account nodig en de Network Agent moet actief zijn op een machine die de map kan zien — een server, een werkstation met de gedeelde map of uw eigen laptop. Parquet Folder-connectoren vereisen Netwerkagent 2.6 of nieuwer.
- Installeer de agent vanuit de downloadpagina als het nog niet draait.
- Voeg in het portaal een gegevensconnector toe en kies Parquet-map.
- Voer het mappad in zoals de machine van de agent het ziet, en geef de tabel een naam. Dit veld is verplicht, omdat alles in de map wordt samengevoegd tot één tabel.
- Laat het include-patroon ingeschakeld.
**/*.parkettenzij de map meer informatie bevat dan je in de tabel wilt weergeven, in welk geval je de inhoud moet beperken.**/part-*.parquet, of een enkele partitie zoalsjaar=2026/**/*.parquet. - Opslaan. De agent leest de voetteksten van maximaal 64 bestanden, legt het schema vast en rapporteert de gevonden kolommen en gegevenstypen.
- Open de querybuilder, kies de connector en schrijf SQL — of laat Nova AI het voor je schrijven.
- Sla de query op en voer deze vervolgens uit vanuit de Microsoft Excel- of Google Sheets-invoegtoepassing wanneer u de cijfers nodig hebt.
\\lake\exports\ordersOf een lokaal pad op de eigen machine van de agent, en controleer of het account waaronder de agent draait, dit pad kan lezen. Data lake-exports bevinden zich vaak in een mappenstructuur met datumpartities, dus laat de diepte-instelling ongewijzigd, tenzij de structuur daadwerkelijk dieper is dan acht niveaus.
Vanaf dat moment gedraagt de map zich als elke andere gegevensbron. Hij kan worden gekoppeld aan Microsoft SQL Server, PostgreSQL, MySQL, BigQuery en andere databases, en aan API-connectoren zoals Stripe of Shopify. Hierdoor kan een gearchiveerde datawarehouse-tabel op een gedeelde map met één enkele leesopdracht worden gekoppeld aan live productiedata, zonder eerst iets in een datawarehouse te hoeven laden.
Veelgestelde vragen
Hoe kan ik Parquet-bestanden lezen zonder Spark? +
Kan ik Parquet-bestanden openen in Microsoft Excel? +
Moet ik Query Streams vertellen wat de kolomtypen zijn? +
DECIMAL(18,2) Het getal in het bestand wordt in de tabel als exact decimaal weergegeven, nooit als een zwevendekommagetal.
Moeten alle Parquet-bestanden identieke kolommen hebben? +
NULL Voor de bestanden die het missen. Een kolom met een ander type in verschillende bestanden wordt in plaats daarvan een benoemde weigering genoemd — de connector geeft de kolom en beide typen weer in plaats van het ene naar het andere te converteren.
Mijn pipeline heeft een kolom toegevoegd. Zal de map nog steeds werken? +
Waarom is een van mijn Parquet-bestanden geparkeerd? +
bestanden_gebeurtenissen met de bestandsnaam en het specifieke meningsverschil, en alle andere bestanden blijven synchroniseren.
Hoeveel Parquet-bestanden kan één connector lezen? +
Kan ik zien uit welk bestand een rij afkomstig is? +
_bronbestand het bestand een naam geven en _rij_id waardoor het uniek wordt geïdentificeerd binnen de tabel. Voor Parquet wordt de identifier opgebouwd uit de werkelijke rangpositie van de rij in het bestand, aangevuld met nullen zodat sorteren op basis van _rij_id sorteert rijen daadwerkelijk in de volgorde waarin ze in het bestand staan. Groeperen op _bronbestand Dit is meestal de snelste manier om de partitie te vinden die verantwoordelijk is voor een figuur die er verkeerd uitziet.
Wat gebeurt er als de pipeline nieuwe onderdeelbestanden schrijft? +
bestanden_gebeurtenissen.
Zijn mijn Parquet-gegevens geüpload of gewijzigd? +
SELECT, MET, PRAGMA, BESCHRIJVEN of UITLEGGEN verklaring — alles wat geschreven zou kunnen worden, wordt afgewezen voordat het uitgevoerd wordt.
Aan de slag
Kijk eens in die map met Parquet-bestanden.
Wijs de agent naar de map en bevraag elk deelbestand als één SQL-tabel, met exact dezelfde kolomnamen en -typen als de bestanden zelf. Geen Spark, geen Python en niets verlaat je netwerk.
Gerelateerde handleidingen: Hoe kan ik met SQL een zoekopdracht uitvoeren in een map met bestanden? | Combineer meerdere CSV-bestanden in één tabel. | Download de Query Streams Agent. | Alle handleidingen voor File Set Connector
Categorie: Bestandsetconnectoren
Tags: Parquet naar Excel, query's uitvoeren op Parquet-bestanden, Parquet lezen zonder Spark, Parquet-map, Parquet in Excel, Parquet-mapconnector, SQL op Parquet, Data Lake-export
Metabeschrijving: Een map met Parquet-bestanden opvragen als één SQL-tabel en de resultaten importeren in Microsoft Excel. Geen Spark, geen uploads.

