Was ist Apache Iceberg?
Themen der Seite
Was ist Apache Iceberg?
Apache Iceberg ist ein verteiltes, von der Community betriebenes, Apache 2.0-lizenziertes, zu 100% Open-Source-Datentabellenformat, das die Datenverarbeitung großer Datensätze, die in Data Lakes gespeichert sind, 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 zentralisiertes Repository, das es Ihnen ermöglicht, all Ihre strukturierten und unstrukturierten Daten in jeder Größenordnung zu speichern. 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 Haltbarkeit (ACID) bezeichnet:
-
Atomarität garantiert, dass jede Transaktion ein einzelnes Ereignis ist, das entweder erfolgreich ist oder vollständig fehlschlägt; es gibt keinen Halbzeitstatus.
-
Konsistenz stellt sicher, dass alle geschriebenen Daten gemäß den definierten Regeln des Data Lake gültig sind, wodurch sichergestellt wird, dass die Daten korrekt und zuverlässig sind.
-
Die Isolierung stellt sicher, dass mehrere Transaktionen gleichzeitig ausgeführt werden können, ohne sich gegenseitig zu stören, und stellt sicher, dass jede Transaktion unabhängig ausgeführt wird.
-
Haltbarkeit bedeutet, dass Daten nicht verloren gehen oder beschädigt werden, sobald eine Transaktion eingereicht 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 strukturierte Abfragesprache (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. Mit Apache Iceberg kann jeder, der mit der Structured Query Language (SQL) vertraut ist, Data Lakes erstellen und die meisten Data Lake-Operationen ausfü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 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, mit der Benutzer Änderungen an Daten im Laufe der Zeit verfolgen können. Dadurch wird die Zeitreise-Funktion aktiviert, mit der Benutzer auf historische Versionen von Daten zugreifen und diese abfragen und Ä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 der letzten Ausführung geändert haben, auch bekannt als CDC (Change Data Capture). 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 Funktionen zur Aktualisierung einzelner Datensätze, ohne dass der gesamte Datensatz erneut veröffentlicht werden muss.
-
Datentabellen in Data Lakes mit unvorhersehbaren Änderungen, z. B. SCD-Tabellen (Slowly Changing Dimension). Ein Beispiel für eine SCD ist eine Kundendatensatztabelle, 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 Personas, 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 die folgenden Vorteile:
-
Open Source: Apache Iceberg ist ein Open-Source-Projekt, was 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 neue Funktionen hinzufügen.
-
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 spaltenorientierte Speicher- und Komprimierungstechniken wie Prädikat-Pushdown und Schemaentwicklung.
-
Flexibilität: Apache Iceberg ermöglicht es Ihnen, die Organisation Ihrer Daten so zu ändern, dass 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 , AWS Glue und Amazon Data Firehose beinhalten native Unterstützung für transaktionale Data Lake-Frameworks, einschließlich Apache Iceberg. Apache Iceberg ermöglicht in Kombination mit unterstützten AWS-Services 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 basiert 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 maschinelles Lernen 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 serverloser Datenintegrationsservice, der das Auffinden, Vorbereiten, Verschieben und Integrieren von Daten aus mehreren Quellen für Analysen, maschinelles Lernen (ML) und Anwendungsentwicklung erleichtert. 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.
-
Amazon Data Firehose ist ein vollständig verwalteter, serverloser Service für die Bereitstellung von Streaming-Daten in Echtzeit an Ziele wie Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Snowflake, Apache Iceberg Tables und alle benutzerdefinierten HTTP-Endpunkte oder HTTP-Endpunkte unterstützter Drittanbieter, darunter Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic Corc, Alogix und Elastic. Mit Amazon Data Firehose müssen Sie keine Anwendungen schreiben oder Ressourcen verwalten. Sie konfigurieren Ihre Datenproduzenten zum Senden von Daten an Amazon Data Firehose. Die Daten werden dann automatisch an das angegebene Ziel geliefert. Sie können Amazon Data Firehose auch so konfigurieren, dass Ihre Daten vor der Auslieferung transformiert werden.