Was ist Apache Iceberg?
Apache Iceberg ist ein verteiltes, von der Community betriebenes, unter Apache 2.0 lizenziertes, zu 100 % quelloffenes Datentabellenformat, das die Datenverarbeitung großer, in Data Lakes gespeicherter Datenmengen vereinfacht. Dateningenieure verwenden Apache Iceberg, weil es in jeder Größenordnung schnell, effizient und zuverlässig ist und Aufzeichnungen darüber führt, wie sich Datensätze im Laufe der Zeit ändern. Apache Iceberg bietet einfache Integrationen mit gängigen Datenverarbeitungs-Frameworks wie Apache Spark, Apache Flink, Apache Hive, Presto und mehr.
Was ist ein transaktionaler Data Lake?
Ein Data Lake ist ein zentrales Repository, in dem Sie alle strukturierten und unstrukturierten Daten in beliebigem Umfang speichern können. Eine Datentransaktion ist eine Reihe von Datenaustauschvorgängen, die in einem einzigen Arbeitsgang durchgeführt werden. Wenn ein Kunde beispielsweise Geld von einem Bankkonto abhebt, führt die Bank in einer Datentransaktion mehrere Datenaustauschvorgänge gleichzeitig durch, darunter die Überprüfung des Kontostands, die Überprüfung der Identität und die Abbuchung vom Konto. Ein transaktionaler Data Lake ist eine Art von Data Lake, der nicht nur Daten in großem Umfang speichert, sondern auch transaktionale Vorgänge unterstützt und sicherstellt, dass die Daten genau und konsistent sind und dass Sie verfolgen können, wie sich Daten und Datenstrukturen im Laufe der Zeit ändern. Diese Eigenschaften werden zusammenfassend als Atomizität, Konsistenz, Isolierung und Dauerhaftigkeit (ACID) bezeichnet:
- Atomizität garantiert, dass jede Transaktion ein einzelnes Ereignis ist, das entweder erfolgreich ist oder vollständig fehlschlägt; es gibt keinen Zwischenstatus.
- Die Konsistenz stellt sicher, dass alle geschriebenen Daten gemäß den definierten Regeln des Data Lakes gültig sind, wodurch sichergestellt wird, dass die Daten korrekt und zuverlässig sind.
- Die Isolierung stellt sicher, dass mehrere Transaktionen gleichzeitig stattfinden können, ohne sich gegenseitig zu stören, und gewährleistet, dass jede Transaktion unabhängig ausgeführt wird.
- Dauerhaftigkeit bedeutet, dass die Daten nicht verloren gehen oder beschädigt werden, sobald eine Transaktion übermittelt wurde. Daten können im Falle eines Systemausfalls, z. B. eines Stromausfalls, wiederhergestellt werden.
Was sind die Vorteile der Verwendung von Apache Iceberg?
Zu den wichtigsten Vorteilen der Verwendung von Apache Iceberg für transaktionale Data Lakes gehören:
- Vertrautheit mit SQL: Die Structured Query Language (SQL) ist eine beliebte Abfragesprache, die häufig in allen Arten von Anwendungen verwendet wird. Datenanalysten und Entwickler lernen und verwenden SQL, weil es sich gut in verschiedene Programmiersprachen integrieren lässt und zudem relativ einfach zu erlernen ist, da es in seinen Aussagen gängige englische Schlüsselwörter verwendet. Apache Iceberg ermöglicht es jedem, der mit der Structured Query Language (SQL) vertraut ist, Data Lakes zu erstellen und die meisten Data Lake-Operationen auszuführen, ohne eine neue Sprache lernen zu müssen.
- Datenkonsistenz: Apache Iceberg sorgt für Datenkonsistenz, um sicherzustellen, dass jeder Benutzer, der die Daten liest und in die Daten schreibt, dieselben Daten sieht.
- Datenstruktur: Apache Iceberg ermöglicht einfache Änderungen an der Datenstruktur, auch bekannt als Schema-Evolution, was bedeutet, dass Benutzer Spalten einer Datentabelle hinzufügen, umbenennen oder entfernen können, ohne die zugrunde liegenden Daten zu beeinträchtigen.
- Datenversionierung: Apache Iceberg unterstützt die Datenversionierung, sodass Benutzer Änderungen an Daten im Laufe der Zeit verfolgen können. Dadurch wird die Zeitreisefunktion aktiviert, mit der Benutzer auf historische Versionen von Daten zugreifen und diese abfragen sowie Änderungen an den Daten zwischen Aktualisierungen und Löschungen analysieren können.
- Plattformübergreifende Unterstützung: Apache Iceberg unterstützt eine Vielzahl verschiedener Speichersysteme und Abfrage-Engines, darunter Apache Spark, Apache Hive und Presto. Dies macht es einfach, Iceberg in einer Vielzahl von verschiedenen Datenverarbeitungsumgebungen zu verwenden.
- Inkrementelle Verarbeitung: Iceberg unterstützt die inkrementelle Verarbeitung, sodass Benutzer nur die Daten verarbeiten können, die sich seit dem letzten Lauf geändert haben. Dies wird auch als CDC (Change Data Capture) bezeichnet. Dies kann dazu beitragen, die Effizienz und Leistung der Datenverarbeitung zu verbessern.
Was sind gängige Anwendungsfälle für Apache Iceberg?
Apache Iceberg eignet sich für viele Data Lake-Anwendungsfälle, darunter:
- Datentabellen in Data Lakes, die häufig gelöscht werden müssen, z. B. bei der Durchsetzung von Datenschutzgesetzen.
- Datentabellen im Data Lake, die Aktualisierungen auf Datensatzebene erfordern. Dies ist hilfreich, wenn Ihr Datensatz häufig aktualisiert werden muss, nachdem die Daten bereinigt wurden, z. B. Verkaufsdaten, die sich aufgrund späterer Ereignisse wie Kundenrücksendungen ändern können. Iceberg bietet die Möglichkeit, einzelne Datensätze zu aktualisieren, ohne dass der gesamte Datensatz neu veröffentlicht werden muss.
- Datentabellen in Data Lakes, die unvorhersehbare Änderungen aufweisen, z. B. SCD-Tabellen (Slowly Changing Dimension). Ein Beispiel für eine SCD ist eine Kundendatentabelle, die Name, Standort und Kontaktinformationen enthält, die sich im Laufe der Zeit in unbekannten Intervallen ändern können.
- Wenn Transaktionen mit dem Data Lake garantierte Datengültigkeit, Haltbarkeit und Zuverlässigkeit erfordern, können Apache Iceberg-Tabellenformate eingesetzt werden, um ACID-Transaktionen zu gewährleisten.
- Wenn es notwendig ist, in der Zeit zurückzugehen, um historische Datenversionen abzufragen, um Trendanalysen durchzuführen, Datenänderungen über einen bestimmten Zeitraum zu analysieren oder um eine frühere Version wiederherzustellen oder zurückzusetzen, um Probleme zu korrigieren.
Wer benutzt Apache Iceberg?
Dateningenieure, Datenadministratoren, Datenanalysten und Datenwissenschaftler gehören zu den Personen, die Apache Iceberg verwenden. Dateningenieure und Administratoren können Apache Iceberg verwenden, um skalierbare Datenspeichersysteme zu entwerfen und zu erstellen. Datenanalysten und Datenwissenschaftler können Apache Iceberg verwenden, um große Datensätze effizient zu analysieren.
Warum sollten Sie sich für Apache Iceberg entscheiden?
Apache Iceberg bietet eine schnelle und effiziente Möglichkeit, große Datensätze in großem Maßstab zu verarbeiten. Es bietet folgende Vorteile:
- Open Source: Apache Iceberg ist ein Open-Source-Projekt. Das bedeutet, dass es kostenlos verwendet werden kann und an Ihre spezifischen Bedürfnisse angepasst werden kann. Es hat auch eine aktive Community von Entwicklern, die das Projekt kontinuierlich verbessern und um neue Funktionen erweitern.
- Skalierbarkeit: Apache Iceberg wurde entwickelt, um große Datensätze effizient zu verarbeiten. Es kann Daten auf mehrere Knoten partitionieren und organisieren, wodurch die Arbeitslast verteilt und die Datenverarbeitung beschleunigt wird.
- Leistung: Apache Iceberg verfügt über eine Vielzahl von Funktionen zur Optimierung der Abfrageleistung, darunter spaltenbasierte Speicher- und Komprimierungstechniken wie Predicate Push Down und Schemaentwicklung.
- Flexibilität: Mit Apache Iceberg können Sie die Organisation Ihrer Daten ändern, sodass sie sich im Laufe der Zeit weiterentwickeln können, ohne dass Sie Ihre Abfragen neu schreiben oder Ihre Datenstrukturen neu erstellen müssen. Es unterstützt auch mehrere Datenformate und Datenquellen, was die Integration in bestehende Systeme erleichtert.
- Zuverlässigkeit: Apache Iceberg gewährleistet Datenkonsistenz und Zuverlässigkeit durch die Unterstützung von Transaktionen. Sie können verfolgen, wie sich Daten im Laufe der Zeit ändern, und zu früheren Versionen zurückkehren, um Probleme zu beheben.
Welche AWS-Services unterstützen Iceberg?
Apache Iceberg unterstützt beliebte Datenverarbeitungs-Frameworks wie Apache Spark, Apache Flink, Apache Hive und Presto. AWS-Services wie Amazon Redshift, Amazon Athena, Amazon EMR und AWS Glue beinhalten native Unterstützung für transaktionale Data-Lake-Frameworks wie Apache Iceberg. Apache Iceberg in Kombination mit unterstützten AWS-Services ermöglicht einen transaktionalen Data Lake, der häufig auf der Speicherung in S3 basiert.
- Amazon Redshift ist ein vollständig verwalteter, KI-gestützter SQL-Analyse- und Data-Warehousing-Service, mit dem Kunden schnell und kostengünstig Geschäftsentscheidungen treffen können. Amazon Redshift bietet eine Massively Parallel Processing (MPP), eine Multi-Cluster- und Serverless-Architektur mit Zero-ETL-Funktionen, die Analysen und KI/ML-Anwendungsfälle mit Datenaustausch nahezu in Echtzeit ermöglichen. Kunden können Amazon Redshift verwenden, um Apache-Iceberg-Tabellen im Data Lake abzufragen, auf die über den AWS Glue-Datenkatalog zugegriffen wird, und sie für umfassende Analysen mit ihren Tabellen im Data Warehouse verknüpfen.
- Amazon Athena ist ein serverloser, interaktiver Analysedienst, der auf Open-Source-Frameworks aufbaut und offene Tabellen- und Dateiformate unterstützt. Athena bietet eine vereinfachte, flexible Möglichkeit, Petabytes an Daten dort zu analysieren, wo sie gespeichert sind. Athena bietet native Unterstützung für Lese-, Zeitreise-, Schreib- und DDL-Abfragen für Apache Iceberg-Tabellen, die das Apache Parquet-Format für Daten und den AWS Glue-Katalog für ihren Metastore verwenden.
- Amazon EMR ist eine Big-Data-Lösung für Datenverarbeitung im Petabyte-Bereich, interaktive Analysen und Machine Learning unter Verwendung von Open-Source-Frameworks wie Apache Spark, Hadoop, Presto und Hive. Ab Amazon EMR 6.5.0 können Sie Apache Spark 3 auf Amazon EMR-Clustern mit dem Iceberg-Tabellenformat verwenden. EMR-Frameworks wie Spark, Trino, Flink und Hive unterstützen Apache Iceberg.
- AWS Glue ist ein Serverless-Datenintegrationsservice, der das Erkennen, Aufbereiten, Verschieben und Integrieren von Daten aus verschiedenen Quellen für Analytik, Machine Learning (ML) und Anwendungsentwicklung vereinfacht. AWS Glue 3.0 und höher unterstützt das Apache Iceberg-Framework für Data Lakes. Sie können AWS Glue verwenden, um Lese- und Schreibvorgänge an Iceberg-Tabellen in Amazon S3 durchzuführen oder mithilfe des AWS Glue-Datenkatalogs mit Iceberg-Tabellen zu arbeiten. Zusätzliche Operationen wie Einfügen, Aktualisieren und alle Spark-Abfragen sowie Spark-Schreibvorgänge werden ebenfalls unterstützt.
Nächste Schritte in AWS
Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.
Starten Sie mit der Entwicklung in der AWS-Managementkonsole.