Berekeningsgroep (Calculation group)
Een berekeningsgroep past één DAX-patroon toe op elke meting in je model. Schrijf YTD, MTD en YoY% één keer in plaats van voor elke meting a...
Lees meerApache Iceberg is een open tabelformaat voor grote analytische datasets op object storage. Het transformeert een map met Parquet-bestanden in een echte, transactionele tabel met schema-evolutie, time travel en snapshot-isolatie.
Apache Iceberg is een open tabelformaat voor grote analytische datasets op object storage. Het doet wat Delta Lake en Apache Hudi ook doen: een map met Parquet-bestanden transformeren in een echte, transactionele tabel waarop je ACID-updates kan uitvoeren, schema's kan evolueren en kan tijdreizen naar oudere versies.
Iceberg werd in 2017 bij Netflix gestart door Ryan Blue en Dan Weeks. In november 2018 werd het als open source gedoneerd aan de Apache Software Foundation en in mei 2020 groeide het door tot top-level Apache-project. Sindsdien heeft het adoptie gevonden bij onder meer Netflix, Apple, Airbnb, Adobe, LinkedIn, Expedia en zowat elke moderne lakehouse-speler.
Je kan Iceberg zien als een versiebeheersysteem bovenop je datamap. De Parquet-bestanden zijn de eigenlijke bestanden in de repo, de Iceberg-metadata is de git-log die weet welke commit welke bestanden bevat. Checkout, revert, parallelle schrijvers: allemaal mogelijk zonder de onderliggende data te herschrijven.
Wie vroeger een data lake beheerde, deed dat met een Hive Metastore en een map met Parquet-bestanden. Die aanpak botst op grenzen zodra schaal en concurrency toenemen.
Geen transactionaliteit
Twee jobs die tegelijk schrijven in dezelfde Hive-tabel kunnen elkaars data overschrijven of inconsistente states achterlaten. Iceberg lost dat op met snapshot-gebaseerde optimistic concurrency: elke schrijfactie eindigt in een nieuwe snapshot, conflicten worden gedetecteerd en krijgen een retry.
Trage metadata
Hive moet bij elke query de lijst met partities opvragen aan de metastore. Op tabellen met miljoenen partities wordt dat een bottleneck. Iceberg's hiërarchische metadata (manifest lists die naar manifest files wijzen, die naar data files wijzen) maakt file pruning veel efficiënter.
Schema-evolutie zonder herschrijven
Een kolom toevoegen, hernoemen of wijzigen in Hive betekent vaak een massale herschrijfoperatie. Iceberg volgt kolommen op ID, niet op positie of naam. Add, drop en rename hebben geen data-herschrijving nodig.
Partition evolution
Oorspronkelijk gepartitioneerd op dag en achteraf besloten dat maandniveau beter was? In Hive is dat een migratie. In Iceberg wijzig je de partitionering voor nieuwe data zonder de oude te moeten aanraken.
Time travel
Elke snapshot is een geldige leesbare versie van de tabel. Herstel een fout door terug te lezen vanuit een oudere snapshot, debug een verschil door twee versies te vergelijken.
Een Iceberg-tabel is een hiërarchie van bestanden op object storage, plus een catalogverwijzing naar de huidige metadata pointer.
Catalog
Houdt de verwijzing naar de huidige metadata.json bij, per tabel. Opties zijn AWS Glue, Apache Nessie, Polaris Catalog (door Snowflake open-sourced in 2024, nu in Apache-incubatie), Hive Metastore en REST-catalogs. Je keuze van catalog bepaalt welke engines direct kunnen lezen en schrijven.
metadata.json
Beschrijft het huidige schema, de partitiespec, de snapshothistorie en verwijzingen naar manifest lists. Dit bestand wordt vervangen bij elke commit.
Manifest list
Eén bestand per snapshot, wijst naar de relevante manifest files, met min/max-statistieken op partitionwaardes.
Manifest files
Wijzen naar individuele data files (Parquet, ORC of Avro), met per bestand statistieken over kolomwaardes, min/max en null counts. Die statistieken maken predicate pushdown op tabelniveau mogelijk.
Data files
De eigenlijke Parquet-bestanden (of ORC, of Avro). Iceberg herschrijft die niet bij schema-wijzigingen, enkel bij compaction of expliciete rewrites.
De drie grote open tabelformaten op lakehouse-storage. Ze lossen hetzelfde probleem op, met andere accenten.
Delta Lake
Ontstaan bij Databricks, sterk gekoppeld aan Spark. Delta is in de Databricks- en Microsoft Fabric-wereld de dominante keuze. Recent toegevoegd: Delta UniForm kan hetzelfde bestandsformaat ook als Iceberg presenteren, waardoor een Delta-tabel door Iceberg-engines gelezen wordt.
Apache Iceberg
Open governance bij de Apache Foundation. Ontworpen om engine-agnostisch te zijn: Spark, Trino, Flink, Presto, Hive, Impala, Dremio, Snowflake, BigQuery, Athena en DuckDB kunnen Iceberg allemaal lezen. Voor organisaties die niet aan één vendor willen hangen, de voor de hand liggende keuze.
Apache Hudi
Oorspronkelijk gebouwd voor streaming-upserts bij Uber. Sterk in use cases met veel kleine incrementele updates. Minder breed ondersteund dan Iceberg en Delta.
In de praktijk wint Iceberg terrein in vendor-overstijgende omgevingen, terwijl Delta binnen Microsoft Fabric en Databricks dominant blijft. Dankzij UniForm en projecten als Apache XTable convergeert het veld, maar onder de kap blijven verschillen in governance, catalogkeuze en engine-ecosysteem relevant.
Microsoft Fabric
OneLake ondersteunt Delta native. Via OneLake-snelkoppelingen naar Iceberg kan je Iceberg-tabellen ook direct in Fabric lezen zonder ze te kopiëren. Dat maakt Fabric bruikbaar in omgevingen waar de upstream data in Iceberg zit, bijvoorbeeld Snowflake of een Athena-gebaseerd lakehouse.
Snowflake
Ondersteunt Iceberg als externe tabel én als native tabel, met Polaris Catalog als open-source catalog-optie. Query-performance is vergelijkbaar met Snowflake's eigen formaat.
Databricks
Leest Iceberg via Uniform en Unity Catalog-federation. Schrijven in Iceberg-formaat is beperkter, de focus blijft Delta.
Dremio, Trino, DuckDB
Allemaal first-class Iceberg-ondersteuning, vaak met het beste ecosysteem voor self-service query op Iceberg-tabellen.
Catalog-keuze is geen detail
Je catalog bepaalt welke engines rechtstreeks kunnen lezen en schrijven. Kies je Glue, dan wordt Snowflake lastiger. Kies je Polaris Catalog, dan hang je vooral in het Snowflake-ecosysteem. Kies je Nessie of een REST-catalog, dan houd je opties open. Denk hier vroeg over na, niet achteraf.
Te kleine bestanden
Zoals bij Parquet in het algemeen: streams die elke minuut een nieuw bestand droppen, produceren duizenden micro-Parquet-bestanden. Queries lopen dan vast op metadata, niet op data. Plan compaction-jobs vanaf dag één.
Engine-compatibiliteit drift
Iceberg evolueert, engines lopen niet altijd synchroon. Een nieuwe feature (v3-specificatie, row-level deletes via deletion vectors) kan door engine A al ondersteund zijn en door engine B nog niet. Check de versies voor je productie draait op de ondergrens van beide.
Schema evolution is niet rewrite-vrij voor alles
Kolomtypes wijzigen tussen incompatibele types (integer naar string) vraagt wel degelijk een rewrite. Column rename is gratis, type-verandering niet altijd.
Deletes en updates kosten meer dan appends
Iceberg ondersteunt row-level deletes en updates, maar die zijn duurder dan pure appends. Voor hoog-frequente updates is Hudi soms geschikter, of een streaming-aggregationpatroon dat appends blijft schrijven.
Een berekeningsgroep past één DAX-patroon toe op elke meting in je model. Schrijf YTD, MTD en YoY% één keer in plaats van voor elke meting a...
Lees meerEen data mart is een kleinere, gerichte deelverzameling van je data warehouse, afgestemd op één afdeling of thema. Sales, finance of HR krij...
Lees meerData mesh is een organisatiemodel voor data waarbij elk businessdomein eigenaar wordt van zijn eigen datasets en die aanbiedt als producten....
Lees meerEen data warehouse is een centrale databank die gegevens uit allerlei bronsystemen verzamelt en structureert voor rapportering en analyse. H...
Lees meerDelta Lake is een open opslagformaat dat klassieke Parquet-bestanden uitbreidt met transacties, schema-afdwinging en time travel. Het vormt ...
Lees meer
Copilot in Power BI levert vooral waarde als je datamodel er klaar voor is. Wat werkt in 2026, wat werkt nog niet, en waarom IT en business ...
Twijfel je tussen Power BI en Qlik? Lees de vergelijking van Data Panda en ontdek de verschillen in gebruiksgemak, prijs, hosting, integrati...