Definition Was ist Apache Hudi?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Apache Hudi ist ein Data Lake Framework, mit dem sich Datensätze in verteilten Dateisystemen wie dem Hadoop Distributed File System (HDFS) oder in Cloud Stores effizient verwalten lassen. Es kommt im Big-Data-Umfeld zum Einsatz und eignet sich für das Erstellen und Verwalten von Data Lakes im Petabyte-Bereich. Hudi ermöglicht ein streambasiertes Lesen und Schreiben der Daten. Die Software ist frei verfügbar und steht unter Apache-2.0-Lizenz.

Firmen zum Thema

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

Apache Hudi ist der Name eines Open Source Frameworks zum Speichern und Managen von Daten großer Data Lakes im Petabyte-Bereich. Hudi steht für „Hadoop Upserts Deletes and Incrementals“ und basiert auf verteilten Dateisystemen wie HDFS-kompatiblen Stores oder auf Cloud Stores wie Amazon S3, Microsoft Azure oder Google Cloud Storage. Entwickelt wurde Hudi im Jahr 2016 vom Unternehmen Uber. Auf Basis des 2017 veröffentlichten Hudi-Codes startete Hudi zunächst als Incubator-Projekt der Apache Software Foundation (ASF). Seit 2020 ist Hudi ein Top-Level-Projekt der ASF.

Apache Hudi führt eine abstrahierte Datenebene ein und erlaubt ein streamähnliches, inkrementelles Schreiben und Auslesen großer Mengen von Daten. Gegenüber einer batchbasierten Verarbeitung reduziert sich die Latenz und die Effizienz steigt. Das Framework sorgt bei der Durchführung der Datentransaktionen für die Einhaltung des ACID-Prinzips (Atomicity, Consistency, Isolation, Durability). Als Datenabfrage-Engines werden Lösungen wie Apache Spark, Apache Impala, Apache Hive oder Presto unterstützt. Neben Uber verwenden auch andere Unternehmen wie die Alibaba Group, Tencent oder Linknovate Apache Hudi. Innerhalb der Amazon Web Services (AWS) ist Apache Hudi ein Bestandteil von AWS Elastic Map Reduce. Die aktuelle Version von Apache Hudi ist die Version 0.7.0 (Stand Q1 2021). Die Software steht unter Apache-2.0-Lizenz und ist frei verfügbar.

Designprinzipien und Funktionen von Apache Hudi

Apache Hudi ist von Grund auf für das streambasierte, inkrementelle Schreiben und Auslesen der Daten aus HDFS-kompatiblen Stores und Cloud Stores konzipiert. Gegenüber dem klassischen Batch Processing schreibt oder liest das Stream Processing Daten mit geringerem zeitlichen Versatz (geringerer Latenz). Die Macher von Hudi bezeichnen die Streaming-Arbeitsweise von Hudi in Abgrenzung zu den typischen Stream-Processing-Lösungen wie Apache Kafka Streams oder Apache Flink auch als ein auf Micro Batches basierendes Incremental Processing.

Das Framework arbeitet zum Schreiben oder Lesen der Daten der Stores mit dem Konzept der Hudi Tables. Zum Schreiben in die Hudi Tables sind die notwendigen Komponenten beispielsweise in Apache-Spark-Jobs eingebettet. Das Lesen aus den Hudi Tables erfolgt über Datenabfrage-Engines wie Apache Spark, Apache Impala, Apache Hive oder Presto. Ein Hudi Table besteht aus folgenden drei Grundkomponenten:

  • Index
  • Data Files
  • Timeline Metadata

In den hierarchisch organisierten Data Files befinden sich die Daten. Der Index sorgt für das Mapping der Daten und die Timeline-Metadaten enthalten die komplette Timeline der ausgeführten Datenaktionen eines Hudi Tables.

Auf Basis des Hudi Tables bietet Apache Hudi die Kernfunktionalitäten des Beziehens von Change Streams und des inkrementellen Aktualisierens und Löschens von Daten-Records unter Sicherstellung des ACID-Prinzips. In einem Change Stream werden alle Datensätze geliefert, die ab einem definierten Zeitpunkt in einem Hudi Table aktualisiert, eingefügt oder gelöscht wurden. Zu den weiteren bereitgestellten Funktionen von Apache Hudi zählen die Snapshot-Isolation zwischen Schreiben und Abfragen, Savepoints für Daten-Recovery und die Rollback-Unterstützung.

Vorteile von Apache Hudi

Apache Hudi bietet für das Managen, Speichern und Abfragen der Daten eines Data Lakes zahlreiche Vorteile. Durch das streamähnliche, inkrementelle Lesen und Schreiben der Daten steigt die Effizienz des Storages und die Latenzzeiten sinken. Es lassen sich auf Basis verteilter File Systeme wie dem Hadoop Distributed File System (HDFS) oder auf Basis von Cloud Stores große Data Lakes im Petabyte-Bereich realisieren. Das Framework stellt die hohe Qualität der Data Tables sicher und sorgt für die Einhaltung des ACID-Prinzips der durchgeführten Transaktionen.

Über Change Streams können ab einem vorgegebenen Zeitpunkt veränderte Datensätze ressourcenschonend abgefragt werden, ohne dass die kompletten Datenbereiche gescannt und prozessiert werden müssen. Apache Hudi ist cloudfreundlich und erlaubt das effiziente, nahtlose und anbieterübergreifende Management der Daten. Die Cloud Stores der großen Cloud-Anbieter Amazon, Microsoft und Google werden unterstützt. Mithilfe von Apache Hudi lassen sich Datenpipelines realisieren, die für Anwendungen in Bereichen wie Data Warehouses, Business Intelligence oder Machine Learning nutzbar sind. Inkrementelles Processing der Datenpipelines sorgt im Vergleich zu klassischem Batch Processing für eine höhere Geschwindigkeit und Performance. Das Data Processing nähert sich einer Verarbeitung der Daten in Echtzeit an.

(ID:47267732)

Über den Autor