De Toekomst van Data Lakehouses: Apache Iceberg Uitleg

We weten dat databeheer vandaag de dag volledig verandert. Decennialang vertrouwden bedrijven op datawarehouses, die informatie op een gepaste manier opsloegen. Ze zijn gestructureerd, beheerd en snel om informatie uit te halen, hoewel duur en rigide van aard. In tegenstelling tot data lakes zijn data lakes efficiënter en stellen ze in staat om enorme hoeveelheden gegevens op te slaan, ongeacht de structuur. De opkomst van de data lakehouse-architectuur combineert echter de voordelen van data lakes en datawarehouses. Lakehouse-modellen behouden de flexibiliteit die door data lakes wordt geboden, terwijl ze de betrouwbaarheid, governance en prestaties van een datawarehouse integreren.

Het meest opmerkelijke open-source tabelformaat dat is gemaakt voor grootschalige data-analyse is Apache Iceberg. Iceberg staat aan de voorhoede van deze transformatie en verhoogt de waarde van gegevens in de lakehouse-architectuur. Bovendien biedt Iceberg oplossingen voor veel problemen waarmee data lakes worden geconfronteerd, waaronder schema-evolutie, ACID-transacties, gegevensconsistentie en queryprestaties.

Deze blogpost is de eerste in een driedelige serie die Apache Iceberg en zijn rol in moderne data-architecturen verkent. In deze post ligt de focus op de volgende onderwerpen:

  1. De evolutie van datawarehouses naar data lakes
  2. De uitdagingen die gepaard gaan met traditionele benaderingen
  3. Hoe Apache Iceberg deze beperkingen aanpakt

De volgende berichten in deze serie zullen dieper ingaan op de architectuur van Iceberg en onderzoeken hoe queries binnen Iceberg-tabellen werken.

Korte samenvatting: De evolutie van databronnen van datawarehouses

Al jarenlang vertrouwen bedrijven op datawarehouses, die dienden als de centrale basis voor analyses. Een datawarehouse fungeert als een gecentraliseerd repository dat gestructureerde gegevens van diverse bronnen vastlegt om efficiënt rapporten en inzichten te produceren. Tegenwoordig faciliteren datawarehouses snelle query-prestaties samen met robuuste governance mechanismen, waardoor ze betrouwbaar en goed gestructureerd zijn.

Niettemin ondervonden organisaties nieuwe problemen naarmate de datavolumes toenamen.

  1. Stijgende opslagkosten als gevolg van hoge reken- en opslagkosten
  2. Starre schema-handhaving die integratie van semi-gestructureerde of ongestructureerde gegevens uitdagend maakte
  3. Ondersteuning voor AI- en machine learning-workloads was beperkt

Als oplossing begonnen bedrijven datalakes te gebruiken. Hierdoor konden bedrijven ruwe gegevens, gestructureerde gegevens en ongestructureerde gegevens opslaan in goedkope opslag zoals Amazon S3, Azure Data Lake Storage, Google Cloud Storage en Hadoop Distributed File System.

De voordelen van datalakes omvatten de volgende factoren:

  1. Opslagkostenvermindering binnen bepaalde cloudomgevingen
  2. Gebruik van nieuwe gegevensformaten zoals ongestructureerde, semi-gestructureerde en zelfs gestructureerde gegevens
  3. Verbeterd gebruik van AI- en machine learning-toepassingen

Zelfs met deze voordelen brachten datalakes nieuwe problemen met zich mee zoals:

  1. De afwezigheid van governance en schema, die leidde tot inconsistente datasets.
  2. Het inefficiënte gebruik van indexering en volledige tabelscans maakte de queryprestaties trager.
  3. De afwezigheid van ACID-transacties maakte de waarborging van gegevensintegriteit in multi-user omgevingen zwaar.

De opkomst van de Data Lakehouse

Een data lakehouse combineert alle schaalbaarheid en economische voordelen van een data lake met de productiviteit, betrouwbaarheid en transactionele functies van een data warehouse. Dit is een modern ontwerpparadigma.

De belangrijkste voordelen van een data lakehouse zijn onder andere:

  1. Woning bieden voor zowel opslag- als verwerkingsfuncties tegen lagere kosten
  2. Efficiënte gegevenscontrole door middel van ACID-transacties 
  3. Wijziging van schema zonder bestaande queries te beïnvloeden – Schema-evolutie
  4. Herstel van eerdere versies van een tabel via tijdreisfunctionaliteiten

De introductie van deze mogelijkheden resulteerde in de ontwikkeling van moderne tabelformaten zoals Delta Lake, Apache Hudi en Apache Iceberg. Deze structuren maakten het gemakkelijker voor data lakes om te functioneren als data warehouses, terwijl ze nog steeds de vrijheid hadden om flexibel en ongestructureerd te blijven door de introductie van gestructureerde metadata-lagen. Onder deze tabelformaten is Apache Iceberg naar voren gekomen als een toonaangevende keuze, die een robuuste oplossing biedt voor organisaties die willen overstappen naar data lakehouse-architecturen.

Apache Iceberg: Een game-changer voor Data Lakehouses

Wat is een tabelformaat?

Het gebruik van een tabelindeling biedt een manier om grote hoeveelheden informatie die in een data lake zijn opgeslagen effectief te beheren. Het omvat een aantal functies, waaronder:

  1. Structureren van gegevens in tabellen voor effectief beheer en queries.
  2. Efficiënt verwijderen en bijwerken van gegevens, evenals het wijzigen van schema’s.
  3. Verbeteren van de prestaties van query-responstijden door het wijzigen van de metadata.

Net als bij andere traditionele tabelindelingen zoals Hive, was er afhankelijkheid van opslag die op directory’s was gebaseerd, wat betekende dat tabellen werden opgebouwd uit de inhoud van bepaalde bestandsdirectory’s. Deze methode creëerde echter een prestatieknelpunt, aangezien query-engines door hele directory’s moesten filteren voordat ze een query uitvoerden.

De Evolutie van Hive naar Iceberg

Het Hive-tabelformaat was bedoeld om het probleem van het structureren van data lakes in de vroege jaren op te lossen. Het doel was om gebruikers in staat te stellen datasets te organiseren in tabellen met queries zoals die gebruikt worden in SQL door Apache Hive en Presto. Er zijn echter aanzienlijke nadelen aan het Hive-formaat:

  1. Inconsistenties als gevolg van gelijktijdige schrijfoperaties vanuit verschillende bronnen door gebrek aan ACID-transacties.
  2. Kostbare bestandslijstbewerkingen die werden uitgevoerd vanwege inefficiënt beheer van metadata.
  3. Langzame queries veroorzaakt door de handmatige optimalisatie van partitioneringsuitdagingen.

Hoe Apache Iceberg Deze Uitdagingen Oplost

Apache Iceberg is een modern tabelformaat dat de problemen oplost die zich voordoen bij Hive, terwijl het ACID-transacties, schemamutatie en snelle prestaties op vragen met datalakes biedt.

Onder de belangrijke voordelen van Apache Iceberg zijn:

  1. ACID-transacties die betrouwbare gegevensupdates en consistentie garanderen.
  2. Mogelijkheid om door de tijd te reizen en de historische gegevensmomentopnames te bevragen.
  3. Schemamutatie waarmee het toevoegen, hernoemen of verwijderen van kolommen mogelijk is zonder bestaande vragen te verbreken.
  4. Evoluatie van partities die automatisch partitioneringsstrategieën optimaliseert.
  5. Vermindering van onnodige bestandsscans die snellere vraaguitvoering mogelijk maken vanwege het efficiënte beheer van metadata.

Eindopmerkingen

Data management is drastisch veranderd met de opkomst van Apache Iceberg. Het stelt bedrijven in staat om over te stappen op een data lakehouse-benadering om hun informatie op een kosteneffectieve en zeer schaalbare manier te beheren zonder prestaties op te offeren. Het is duidelijk dat de analysemogelijkheden zijn getransformeerd met de uitvinding van Apache Iceberg, en het gebruik ervan neemt voortdurend toe. Let op voor de laatste post van deze serie. Voor de komende twee blogposts zal de focus verschuiven naar:

  • Deel 2: De architectuur van Apache Iceberg, inclusief de data-, metadata- en cataloguslagen.
  • Deel 3: De mechanismen van vragen in Iceberg, inclusief lezen en schrijven, tijdreizen en query-optimalisatiemethoden.

Source:
https://dzone.com/articles/the-future-of-data-lakehouses-apache-iceberg