Top 5 Sleutelkenmerken van Apache Iceberg voor Moderne Data Lakes

Big data is aanzienlijk geëvolueerd sinds de opkomst in het einde van de jaren 2000. Veel organisaties pasten zich snel aan de trend aan en bouwden hun big data-platforms met open-source tools zoals Apache Hadoop. Later begonnen deze bedrijven problemen te ondervinden bij het beheren van de snel evoluerende behoeften op het gebied van gegevensverwerking. Ze hebben uitdagingen ondervonden bij het omgaan met schemawijzigingen, evolutie van partitioneringsschema’s en het teruggaan in de tijd om naar de gegevens te kijken.

Ik ondervond vergelijkbare uitdagingen bij het ontwerpen van grootschalige gedistribueerde systemen in de jaren 2010 voor een groot technologiebedrijf en een klant uit de gezondheidszorg. Sommige industrieën hebben deze mogelijkheden nodig om te voldoen aan bank-, financiële en gezondheidszorgvoorschriften. Grote datagestuurde bedrijven zoals Netflix ondervonden ook vergelijkbare uitdagingen. Ze hebben een tabelindeling uitgevonden genaamd “Iceberg”, die bovenop de bestaande gegevensbestanden zit en belangrijke functies levert door gebruik te maken van zijn architectuur. Dit is snel het belangrijkste ASF-project geworden, omdat het snel belangstelling heeft gekregen in de datacommunity. In dit artikel zal ik de top 5 Apache Iceberg kernfuncties verkennen met voorbeelden en diagrammen.

1. Tijdreizen

Figuur 1: Tijdreizen in het Apache Iceberg tabelindeling (afbeelding gemaakt door auteur)

Deze functie stelt u in staat om uw gegevens op te vragen zoals ze op dat moment bestaan. Dit opent nieuwe mogelijkheden voor gegevens- en bedrijfsanalisten om trends te begrijpen en te zien hoe de gegevens in de loop van de tijd zijn geëvolueerd. U kunt moeiteloos teruggaan naar een eerdere staat in geval van fouten. Deze functie vergemakkelijkt ook auditcontroles door u in staat te stellen de gegevens op een specifiek tijdstip te analyseren.

SQL

 

2. Schema-evolutie

De schema-evolutie van Apache Iceberg maakt wijzigingen in uw schema mogelijk zonder veel moeite of dure migraties. Naarmate uw zakelijke behoeften veranderen, kunt u:

  • Kolommen toevoegen en verwijderen zonder downtime of tabelherschrijvingen. 
  • De kolom bijwerken (verbreden).
  • De volgorde van kolommen wijzigen.
  • Een bestaande kolom hernoemen.

Deze wijzigingen worden op metadataniveau afgehandeld zonder dat de onderliggende gegevens opnieuw moeten worden geschreven. 

SQL

 

3. Partitioneringsevolutie

Met het Apache Iceberg tabelformaat kunt u de tabelpartitioneringsstrategie wijzigen zonder de onderliggende tabel opnieuw te schrijven of de gegevens naar een nieuwe tabel te migreren. Dit is mogelijk omdat queries de partitiewaarden niet direct refereren zoals in Apache Hadoop. Iceberg houdt metadata-informatie voor elke partitieversie apart. Dit maakt het gemakkelijk om de splits te verkrijgen tijdens het opvragen van de gegevens. Bijvoorbeeld, het opvragen van een tabel op basis van het datumbereik, terwijl de tabel eerst de maand als een partitiekolom gebruikte (voorheen) als een split en de dag als een nieuwe partitiekolom (na) als een andere split. Dit wordt splitplanning genoemd. Zie het voorbeeld hieronder.

SQL

 

4. ACID-transacties

Iceberg biedt robuuste ondersteuning voor transacties in termen van Atomiciteit, Consistentie, Isolatie en Duurzaamheid (ACID). Het staat meerdere gelijktijdige schrijfbewerkingen toe, wat een hoge doorvoer mogelijk maakt in zware data-intensieve taken zonder concessies te doen aan de dataconsistentie.

SQL

 

Alle bewerkingen in Iceberg zijn transactioneel, wat betekent dat de gegevens consistent blijven ondanks fouten of wijzigingen in de gegevens die gelijktijdig plaatsvinden.

SQL

 

Het ondersteunt ook verschillende isolatieniveaus, waardoor je prestaties en consistentie kunt afstemmen op basis van de vereisten.

SQL

 

Hier is een samenvatting die laat zien hoe Iceberg rij-niveau updates en verwijderingen afhandelt.

Figuur 2: Verwijderrecords proces in Apache Iceberg (afbeelding gemaakt door de auteur)

5. Geavanceerde Tabelbewerkingen

Iceberg ondersteunt geavanceerde tabelbewerkingen zoals:

  • Tabel-snapshots maken/beheren: Dit biedt de mogelijkheid om robuuste versiecontrole te hebben.
  • Snelle queryplanning en uitvoering met zijn sterk geoptimaliseerde metadata
  • Ingebouwde tools voor tabelonderhoud, zoals compressie en opruimen van weesbestanden

Iceberg is ontworpen om te werken met alle belangrijke cloudopslag, zoals AWS S3, GCS en Azure Blob Storage. Ook integreert Iceberg eenvoudig met data-verwerkingsengines zoals Spark, Presto, Trino en Hive.

Slotgedachten

Deze gemarkeerde functies stellen bedrijven in staat om moderne, flexibele, schaalbare en efficiënte datalakes te bouwen, die kunnen tijdreizen, gemakkelijk omgaan met schema wijzigingen, ACID-transacties ondersteunen en partitie-evolutie.

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes