Die Top 5 wichtigsten Funktionen von Apache Iceberg für moderne Data Lakes

Big Data hat sich seit seiner Entstehung in den späten 2000er Jahren erheblich weiterentwickelt. Viele Organisationen passten sich schnell dem Trend an und bauten ihre Big Data-Plattformen mit Open-Source-Tools wie Apache Hadoop auf. Später begannen diese Unternehmen, Schwierigkeiten bei der Verwaltung der sich schnell entwickelnden Anforderungen an die Datenverarbeitung zu haben. Sie standen vor Herausforderungen beim Umgang mit Änderungen auf Schema-Ebene, der Evolution von Partitionierungsschemata und dem Zurückblicken auf die Daten.

Ich hatte ähnliche Herausforderungen, als ich in den 2010er Jahren groß angelegte verteilte Systeme für ein großes Technologieunternehmen und einen Gesundheitskunden entwarf. Einige Branchen benötigen diese Fähigkeiten, um den Vorschriften im Bankwesen, Finanzwesen und im Gesundheitswesen gerecht zu werden. Datengetriebene Unternehmen wie Netflix standen ebenfalls vor ähnlichen Herausforderungen. Sie erfanden ein Tabellenformat namens „Iceberg“, das über den bestehenden Datendateien sitzt und wichtige Funktionen durch die Nutzung seiner Architektur bereitstellt. Dies ist schnell zum führenden ASF-Projekt geworden, da es in der Daten-Community schnell Interesse geweckt hat. In diesem Artikel werde ich die 5 wichtigsten Apache Iceberg Funktionen mit Beispielen und Diagrammen erkunden.

1. Zeitreise

Abbildung 1: Zeitreise im Apache Iceberg Tabellenformat (Bild erstellt vom Autor)

Dieses Feature ermöglicht es Ihnen, Ihre Daten zu einem beliebigen Zeitpunkt abzufragen. Dies eröffnet neue Möglichkeiten für Daten- und Business-Analysten, um Trends zu verstehen und wie sich die Daten im Laufe der Zeit entwickelt haben. Sie können mühelos zu einem vorherigen Zustand zurückkehren, falls Fehler auftreten. Dieses Feature erleichtert auch Prüfungen, indem es Ihnen erlaubt, die Daten zu einem bestimmten Zeitpunkt zu analysieren.

SQL

 

2. Schema-Evolution

Die Schema-Evolution von Apache Iceberg ermöglicht Änderungen an Ihrem Schema ohne großen Aufwand oder kostspielige Migrationen. Wenn sich Ihre Geschäftsanforderungen weiterentwickeln, können Sie:

  • Spalten hinzufügen und entfernen, ohne Ausfallzeiten oder Tabellen-Neuschreibungen.
  • Die Spalte aktualisieren (Erweiterung).
  • Die Reihenfolge der Spalten ändern.
  • Eine vorhandene Spalte umbenennen.

Diese Änderungen werden auf der Metadatenebene verarbeitet, ohne dass die zugrunde liegenden Daten neu geschrieben werden müssen.

SQL

 

3. Partitionsevolution

Mit dem Apache Iceberg-Tabellenformat können Sie die Partitionierungsstrategie der Tabelle ändern, ohne die zugrunde liegende Tabelle neu zu schreiben oder die Daten in eine neue Tabelle zu migrieren. Dies wird ermöglicht, da Abfragen die Partitionierungswerte nicht direkt wie in Apache Hadoop referenzieren. Iceberg hält Metainformationen für jede Partition-Version separat. Dies erleichtert es, die Splits beim Abfragen der Daten zu erhalten. Zum Beispiel wird eine Tabelle basierend auf dem Datumsbereich abgefragt, während die Tabelle den Monat als Partitionierungsspalte (vorher) als einen Split und den Tag als neue Partitionierungsspalte (nachher) als einen weiteren Split verwendet. Dies wird als Split-Planung bezeichnet. Siehe das Beispiel unten.

SQL

 

4. ACID-Transaktionen

Iceberg bietet eine robuste Unterstützung für Transaktionen in Bezug auf Atomarität, Konsistenz, Isolation und Dauerhaftigkeit (ACID). Es ermöglicht mehrere gleichzeitige Schreibvorgänge, was eine hohe Durchsatzrate bei datenintensiven Aufgaben ermöglicht, ohne die Datenkonsistenz zu gefährden.

SQL

 

Alle Vorgänge in Iceberg sind transaktional, was bedeutet, dass die Daten trotz Ausfällen oder Änderungen an den Daten gleichzeitig konsistent bleiben.

SQL

 

Es unterstützt auch verschiedene Isolationsstufen, die es Ihnen ermöglichen, Leistung und Konsistenz je nach Anforderungen auszubalancieren.

SQL

 

Hier ist eine Zusammenfassung, die zeigt, wie Iceberg zeilenweise Aktualisierungen und Löschungen behandelt.

Abbildung 2: Löschvorgang von Datensätzen in Apache Iceberg (Bild erstellt vom Autor)

5. Erweiterte Tabellenoperationen

Iceberg unterstützt erweiterte Tabellenoperationen wie:

  • Erstellen/Verwalten von Tabellenschnappschüssen: Dies ermöglicht eine robuste Versionskontrolle.
  • Schnelle Abfrageplanung und -ausführung mit hochoptimierten Metadaten
  • Integrierte Werkzeuge für die Tabellenwartung, wie Kompaktierung und Bereinigung von verwaisten Dateien

Iceberg ist darauf ausgelegt, mit allen großen Cloud-Speichern zu arbeiten, wie AWS S3, GCS und Azure Blob Storage. Außerdem lässt sich Iceberg problemlos mit Datenverarbeitungs-Engines wie Spark, Presto, Trino und Hive integrieren.

Abschließende Gedanken

Diese hervorgehobenen Funktionen ermöglichen es Unternehmen, moderne, flexible, skalierbare und effiziente Datenseen zu erstellen, die Zeitreisen ermöglichen, Schemaänderungen problemlos handhaben, ACID-Transaktionen unterstützen und eine Partitionsevolution bieten.

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