Direct naar de tool
ViewCSV
Niets wordt geüpload

CSV comprimeren naar gzip of ZIP

Sleep een CSV-, .gz- of .zip-bestand hierheen
Actie
De bytes van het bestand worden ongewijzigd gecomprimeerd, dus terugzetten levert precies hetzelfde bestand op, inclusief codering, byte order mark en regeleinden.
Open een bestand om te comprimeren of terug te zetten.

Open een CSV-bestand en kies gzip of ZIP: het gecomprimeerde bestand wordt gedownload zodra het klaar is. orders.csv wordt orders.csv.gz of orders.zip. Andersom kan ook: open een .gz- of .zip-bestand en zet het terug naar de bestanden die erin zitten. De bytes worden niet ingelezen of veranderd, dus codering, scheidingsteken, aanhalingstekens, regeleinden en een eventuele byte order mark komen precies zo terug als ze waren. Het comprimeren gebeurt in je browser; het bestand wordt nooit geüpload.

Zo comprimeer je een CSV-bestand of zet je het terug

  1. Open een bestand of sleep het naar de tool. Eindigt het op .gz of .zip, dan schakelt de tool over op terugzetten; al het andere wordt gecomprimeerd.
  2. Kies gzip of ZIP en een compressieniveau van 1 tot 9. De standaard, 6, is de gebruikelijke balans tussen grootte en tijd.
  3. Start de taak. Het resultaat wordt gedownload, en de tool toont de grootte vooraf en achteraf en de verhouding daartussen.

Gzip of ZIP?

Gzip (.csv.gz)Eén gecomprimeerd bestand, vastgelegd in RFC 1952. Opdrachtregeltools, datawarehouses en veel importstraten lezen .csv.gz rechtstreeks. De oorspronkelijke bestandsnaam wordt erin opgeslagen.
ZIP (.zip)Een archief met één item onder de oorspronkelijke bestandsnaam. Opent met een dubbelklik op Windows en macOS, dus handig als e-mailbijlage en voor mensen zonder opdrachtregeltools.
Compressieniveau1 kost de minste tijd en 9 doet het meeste moeite voor een kleiner bestand. Bij gewone CSV-bestanden is het verschil tussen 6 en 9 klein, en bij een klein bestand is er soms helemaal geen verschil.
TerugzettenEen .gz-bestand geeft het ene bestand terug dat erin zit. Een .zip geeft alle bestanden terug die erin zitten; mappen worden overgeslagen en mappaden verdwijnen uit de namen. Eén bestand wordt meteen gedownload; meerdere bestanden worden opgesomd, elk met een eigen downloadknop.

Hetzelfde bestand op hetzelfde niveau comprimeren geeft elke keer identieke bytes, omdat de tijdstempels in de gzip-header en de ZIP-items vastliggen in plaats van de huidige tijd te gebruiken. Het resultaat is daardoor geschikt om een controlesom van te maken of in versiebeheer te bewaren.

Wat precies behouden blijft

  • Het bestand wordt als bytes behandeld, niet als tabel, dus er wordt niets opnieuw gecodeerd: een export in Windows-1252 of Shift_JIS, een puntkomma als scheidingsteken, CRLF-regeleinden en een UTF-8-byte order mark komen allemaal ongewijzigd terug. Voorloopnullen en lange nummers blijven onaangeroerd, omdat er geen enkele waarde wordt gelezen.
  • Regeleinden tussen aanhalingstekens en losse aanhalingstekens maken voor comprimeren niet uit; zelfs een misvormde CSV wordt gecomprimeerd en teruggezet zoals hij is. Om het bestand zelf te controleren, gebruik je CSV valideren.
  • Gzip slaat de naam op in Latin-1, zoals RFC 1952 voorschrijft. Een bestandsnaam in een ander schrift, zoals Chinees of Cyrillisch, komt daardoor mogelijk niet heel terug. Gebruik voor zulke namen ZIP, of hernoem het bestand na het terugzetten.
  • Bevat een ZIP twee bestanden met dezelfde naam in verschillende mappen, dan worden ze allebei onder die naam teruggezet. Hernoem ze bij het downloaden.

Fouten bij het terugzetten en weinig compressie

  • Dit is geen gzip- of ZIP-bestand. De eerste bytes van het bestand zijn geen gzip- of ZIP-handtekening. Het kan een gewone CSV zijn met een naam op .gz, of een ander soort archief, zoals 7z of RAR. Kies gzip of ZIP om het in plaats daarvan te comprimeren.
  • De gzip-gegevens zijn beschadigd of onvolledig. De controlesom of lengte aan het eind van het bestand klopt niet, wat meestal betekent dat de download is afgebroken. Haal het bestand opnieuw op.
  • De ZIP-gegevens zijn beschadigd of gebruiken een methode die niet wordt ondersteund. Alleen items die zijn opgeslagen zonder compressie of met Deflate kunnen worden teruggezet; methoden zoals Deflate64, BZIP2 of LZMA worden niet ondersteund. Ook ZIP-bestanden met een wachtwoord worden niet ondersteund: pak ze uit met een archiefprogramma dat om het wachtwoord vraagt.
  • Het gecomprimeerde bestand is nauwelijks kleiner. Een CSV met veel verschillende waarden, zoals willekeurige nummers of hashes, comprimeert minder goed dan herhalende gegevens, en heel kleine bestanden winnen weinig omdat het formaat een vaste header toevoegt. Omzetten naar Parquet kan getypeerde gegevens in kolomvorm verder verkleinen.

Grote bestanden en privacy

Hier geldt geen grens van 25 MB, omdat het bestand nooit als tabel wordt geladen: het wordt in stukken van 4 MB gelezen en als stroom gecomprimeerd of teruggezet. Terugzetten stopt met een foutmelding zodra de teruggezette gegevens in totaal boven de 4 GB zouden komen. Dat beschermt het tabblad tegen ‘zipbommen’ die uitdijen tot enorme groottes.

Het werk gebeurt in een achtergrondproces in dit tabblad, en met Annuleren stop je het. Er wordt niets geüpload. Wil je een groot bestand liever kleiner maken door het in stukken te knippen, gebruik dan CSV-bestanden splitsen. Dat kan de delen ook als één ZIP downloaden.

Voorbeeld: een export van 12 rijen op verschillende compressieniveaus

Een orderexport van 12 rijen met puntkomma’s, decimale komma’s en SKU’s met voorloopnullen (eerste rijen getoond), in totaal 374 bytes, zoals een Nederlandse Excel-export eruit kan zien. Gzip geeft op niveau 1, 6 en 9 dezelfde 185 bytes, omdat het bestand zo klein is; ZIP voegt een grotere archiefheader toe. Terugzetten van beide bestanden levert alle 374 bytes ongewijzigd op.

CSV
order_id;region;sku;qty;amount
SO-1001;North;00123;1;19,90
SO-1002;South;00124;2;38,90
SO-1003;East;00125;3;57,90
SO-1004;West;00123;4;76,90
…
Resultaat
orders-march.csv.gz   185 bytes (49.5 %), restores to orders-march.csv
orders-march.zip      296 bytes (79.1 %), one entry: orders-march.csv
Restored orders-march.csv   374 bytes, identical to the original

Vragen en antwoorden

Kan ik meerdere CSV-bestanden in één ZIP stoppen?

Niet op deze pagina: die comprimeert één bestand tegelijk. CSV-bestanden splitsen downloadt al zijn delen als één ZIP, en als je hier een ZIP terugzet, krijg je elk bestand terug dat erin zit.

Is een .csv.gz-bestand nog steeds een CSV?

Het is een CSV die met gzip is gecomprimeerd. Programma’s die gzip ondersteunen, zoals gunzip, de importopdrachten van de meeste databases en databibliotheken, lezen het rechtstreeks. Andere moeten het eerst terugzetten naar .csv, en dat doet deze pagina.

Verandert comprimeren mijn gegevens?

Nee. Compressie met gzip en ZIP is verliesvrij en deze tool leest de CSV nooit in, dus het teruggezette bestand bestaat uit precies dezelfde reeks bytes als het origineel.

Standaarden en bronnen