ACID-transacties
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerTable compaction voegt veel kleine databestanden samen tot minder, grotere bestanden. In lakehouses helpt dat om queries sneller te maken en het small files problem onder controle te houden.
Table compaction is het samenvoegen van veel kleine databestanden tot minder, grotere bestanden. De inhoud van de tabel blijft hetzelfde, maar de fysieke layout wordt beter voor lezen.
In een lakehouse schrijft elke batch of streamingjob vaak nieuwe Parquet-bestanden. Na verloop van tijd krijg je veel kleine bestanden. Compaction ruimt dat op door ze te herschrijven naar grotere bestanden.
Je kan het vergelijken met losse bonnetjes in een map. De informatie verandert niet wanneer je ze ordent, maar je vindt alles sneller terug.
Een compaction-job leest kleine bestanden uit een tabel en schrijft ze opnieuw als grotere bestanden. Daarna wijst de tabelmetadata naar de nieuwe bestanden.
In Delta Lake gebruik je vaak OPTIMIZE.
OPTIMIZE sales;Dat statement verandert geen waarden in de tabel. Het verandert hoe de data in bestanden verdeeld is. Bij tabelformaten met transaction logs, zoals Delta Lake en Iceberg, kan dit veilig gebeuren terwijl lezers met een consistente versie blijven werken.
Na veel kleine writes. Streaming en micro-batches maken vaak kleine bestanden.
Voor trage lakehouse-query's. Als de engine veel tijd verliest aan planning en file listing, kan compaction helpen.
Als periodiek onderhoud. Veel teams plannen compaction dagelijks of wekelijks op druk gebruikte tabellen.
Na backfills. Grote herladingen kunnen een rommelige bestandslayout achterlaten.
Partitionering bepaalt in welke mappen of logische groepen data terechtkomt. Compaction bepaalt hoe groot en netjes de bestanden binnen die groepen zijn.
Ze lossen dus andere problemen op. Partitionering helpt om stukken data over te slaan. Compaction helpt om niet te veel kleine stukken te moeten openen. Een goed lakehouse heeft vaak beide nodig.
Compaction kost rekenkracht. Je leest en herschrijft data. Plan het op een moment waarop de extra belasting past.
Te grote bestanden zijn ook niet ideaal. Dan verliezen engines parallelisme. Kies bestandsgroottes die bij je platform passen.
Het is geen datakwaliteitsfix. Compaction verandert de layout, niet de inhoud. Dubbels, nulls of foute waarden blijven bestaan.
Automatische compaction helpt, maar vervangt monitoring niet. Controleer bestandsgroottes en querytijden per tabel.
1. Verandert compaction mijn data?
Nee. De rijen en waarden blijven hetzelfde. Alleen de bestanden waarin ze zitten veranderen.
2. Moet ik na elke write compaction draaien?
Meestal niet. Dat zou duur zijn. Plan het wanneer de tabel merkbaar versnipperd raakt.
3. Is OPTIMIZE hetzelfde als VACUUM?
Nee. OPTIMIZE herschrijft kleine bestanden naar grotere. VACUUM verwijdert oude bestanden die niet meer nodig zijn volgens het retentiebeleid.
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerApache Airflow is een open-source orkestrator: je beschrijft je datapijplijnen als code in Python, in de vorm van een DAG, en Airflow plant ...
Lees meerApache Hudi is een open tabelformaat dat een data lake op object storage transactioneel maakt. Het blinkt uit in snelle upserts, verwijderin...
Lees meerApache Iceberg is een open tabelformaat voor grote analytische datasets op object storage. Het transformeert een map met Parquet-bestanden i...
Lees meerApache Kafka is een open-source platform dat stromen van events opslaat en doorgeeft: producenten schrijven berichten naar een topic, afneme...
Lees meer