Definition Was ist Apache Iceberg?

Von Dipl.-Ing. (FH) Stefan Luber Lesedauer: 4 min |

Anbieter zum Thema

Apache Iceberg ist ein unter Open-Source-Lizenz stehendes, offenes Datentabellenformat. Es wurde speziell für die Anforderungen von Datentabellen im Petabytebereich entwickelt und eignet sich für die schnelle und effiziente Verarbeitung und Analyse großer, in Data Lakes gespeicherter Datenmengen. Das Tabellenformat lässt sich in viele gängige Datensysteme und Datenverarbeitungs-Frameworks wie Apache Hive, Apache Spark, Apache Flink oder Presto integrieren.

(Bild: © aga7ta - stock.adobe.com)

Apache Iceberg ist der Name eines unter Apache-2.0-Lizenz stehenden, quelloffenen Datentabellenformats. Es wurde 2017 von Netflix für den Einsatz zusammen mit Apache Hive entwickelt. 2018 spendete Netflix Apache Iceberg als Open-Source-Projekt an die Apache Software Foundation. Seit 2020 ist Iceberg ein Apache-Top-Level-Projekt. Inzwischen zählt Apache Iceberg zu den populärsten Open-Source-Tabellenformaten im Data-Lake- und Big-Data-Umfeld und hat sich in diesem Bereich als eine Art De-facto-Standard etabliert.

Das Tabellenformat wurde für große Datentabellen mit vielen Petabyte Daten entworfen. Es ermöglicht eine schnelle und effiziente Verarbeitung und Analyse großer, in Data Lakes gespeicherter Datenmengen. Das High-Performance-Tabellenformat macht riesige Datentabellen, ähnlich wie SQL-Tabellen traditioneller relationaler Datenbanken, nutzbar. Es ermöglicht Daten-Engines wie Hive, Presto, Flink oder Spark und anderen unter Einhaltung des ACID-Prinzips (Atomicity, Consistency, Isolation, Durability) mit den gleichen Tabellen zu arbeiten. Apache Iceberg unterstützt verschiedene Big-Data-File-Formate wie Parquet, ORC and Avro und bietet eine Abstraktionsschicht, die es erlaubt, einen Data Lake ähnlich wie ein Data Warehouse zu behandeln.

Zahlreiche Hersteller, Softwareprodukte und Cloud-Lösungen verschiedener Anbieter unterstützen das Open-Source-Tabellenformat Apache Iceberg. Darunter Cloudera, Dremio, Snowflake, Google BigLake, AWS Glue und viele mehr. Zu dem Datentabellenformat Apache Iceberg gehören verschiedene APIs und Bibliotheken für die Arbeit mit Tabellen. Genutzt wird Apache Iceberg von zahlreichen namhaften Unternehmen weltweit wie Netflix, Apple, Airbnb, Adobe, Lyft und anderen.

Aufbau, Struktur und Merkmale von Apache Iceberg

In Data Lakes lassen sich riesige Datenmengen an strukturierten, halbstrukturierten und unstrukturierter Daten in verschiedenen File-Formaten speichern. Oft fehlt es den Dateiformaten aber an den notwendigen Funktionen und Informationen für eine Verarbeitung mit Daten-Engines oder Anwendungen, was die Arbeit mit den Daten schwierig und zeitaufwendig macht. Das Datentabellenformat Apache Iceberg löst dieses Problem, indem es Möglichkeiten und Funktionen bereitstellt, mit den Datentabellen von Data Lakes wie mit SQL-Tabellen klassischer relationaler Datenbanken zu arbeiten. Apache Iceberg sorgt für die Einhaltung des ACID-Prinzips und ermöglicht es verschiedenen Anwendungen und Engines gleichzeitig und konsistent auf die gleichen Daten zuzugreifen. Es entsteht ein transaktionaler Data Lake, auch als Data Lakehouse bezeichnet. Mithilfe von Apache Iceberg lässt sich die komplette Historie von Datentabellen inklusive Daten- und Schemaveränderungen beschreiben.

Von Apache Iceberg bereitgestellte Funktionen sind:

  • transaktionale Konsistenz
  • Tracking der Datentabellenveränderungen
  • Abfrage historischer Daten und Prüfung von Änderungen zwischen Updates (Time Travel)
  • Partitionslayout und -entwicklung
  • Rollback zu vorherigen Versionen
  • erweiterte Filter- und Planungsfunktionen mit hoher Performance bei großen Datenmengen

Um diese Funktionen bereitzustellen, definiert Apache Iceberg eine Metadatenebene und eine Datenebene. Ein Iceberg-Katalog verfolgt, welche Tabellen existieren und enthält Zeiger zu den Metadata Files. Immer wenn neue Tabellen angelegt oder Daten einer Tabelle verändert werden, wird ein Metadata File beschrieben. Es enthält Metadaten der Tabelle wie Schema oder Partitionsspezifikation und trackt die Tabelle hinsichtlich aktueller und historischer Versionen.

Ebenfalls auf der Metadatenebene ist die Manifest List angesiedelt. Jeder Snapshot einer Tabelle wird in der Manifest List getrackt. In der Manifest List wird nachverfolgt, welche Manifest Files eine Tabelle einen bestimmten Snapshots bilden. Jedes Manifest File enthält Pfade zu einer Gruppe zusammengehöriger Data Files. Die Data Files sind auf der Datenebene angesiedelt und enthalten die eigentlichen Daten. Es handelt sich um Files im Parquet-, AVRO- oder ORC-Format.

Anwendungsmöglichkeiten von Apache Iceberg

Das Datentabellenformat Apache Iceberg eignet sich besonders gut für Big-Data-Anwendungen und Datenwissenschaften. Es lassen sich skalierbare Datenspeichersysteme mit transaktionalen Eigenschaften entwerfen, deren Daten mit verschiedenen Engines oder Anwendungen mit hoher Performance abgefragt, analysiert und verarbeitet werden können. Verwendet wird das Datentabellenformat von Datenwissenschaftlern, -analysten, -administratoren und Dateningenieuren. Sie können mit der ihnen vertrauten Datenbanksprache Structured Query Language (SQL) mit den Daten eines Data Lakes arbeiten. Die Unterstützung verschiedener Speichersysteme und Engines wie Spark, Hive und Presto ermöglicht den Einsatz in vielen verschiedenen Datenverarbeitungsumgebungen.

Vorteile des Datentabellenformats Apache Iceberg

Das Datentabellenformat Apache Iceberg bietet viele Vorteile. Dazu zählen:

  • offenes, Open-Source-basiertes Datentabellenformat
  • für Data Lakes im Petabytebereich geeignet
  • hohe Abfrage- und Datenverarbeitungsleistung
  • Sicherstellung der Einhaltung des ACID-Prinzips und Realisierung transaktionaler Data Lakes
  • Unterstützung vieler verschiedener Daten-Engines, Speichersysteme und File-Formate
  • ermöglicht die gleichzeitige Arbeit verschiedener Engines und Anwendungen mit den gleichen Daten
  • gut für Cloud-Umgebungen geeignet
  • Verwendung der vertrauten Structured Query Language (SQL) für die Arbeit mit Data Lakes
  • unterstützt die Datenversionierung und den Zugriff auf historische Daten
  • Unterstützung der inkrementellen Datenverarbeitung
  • wird von der Apache Software Foundation stetig weiterentwickelt
  • ist weltweit im Einsatz und hat eine große Community

(ID:49688915)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung