Hive-Tabellen sind Ordner mit Dateien plus ein Eintrag in einem Metastore. Sie funktionieren, haben aber keine Transaktionen, eine geänderte Partitionierung bedeutet, alles neu zu schreiben, und das Auflisten von Millionen Dateien bremst jede Abfrage. Apache Iceberg löst das mit einer echten Tabellenschicht: atomare Commits, Schema- und Partitionsänderungen ohne Neuschreiben, Time Travel und schnelle Planung. 2026 ist es außerdem das Format, das Snowflake, Databricks, BigQuery, AWS, DuckDB und Polars lesen und schreiben. Am 4. November hat AWS die Migration zu einer verwalteten Funktion von Amazon S3 Tables gemacht. Dieser Leitfaden behandelt diese Option und die zwei klassischen.
Methode 1: in place, mit Spark-Prozeduren
Iceberg liefert Spark-Prozeduren, die eine bestehende Hive-Tabelle ohne Kopieren der Daten in eine Iceberg-Tabelle verwandeln. Sie lesen die Dateiliste, schreiben Iceberg-Metadaten und Manifeste und registrieren die neue Tabelle. Die Datendateien müssen Parquet, ORC oder Avro sein.
-- Step 1: try it safely. Creates db.sales_iceberg pointing at the same files.
-- The original Hive table is untouched.
CALL spark_catalog.system.snapshot('db.sales', 'db.sales_iceberg');
-- Test queries, row counts and downstream jobs against db.sales_iceberg...
-- Step 2: convert for real. Replaces db.sales with an Iceberg table
-- (the old Hive table is kept as a backup with a _BACKUP_ suffix).
CALL spark_catalog.system.migrate('db.sales');
-- Alternative: add existing files to an Iceberg table you created yourself
CALL spark_catalog.system.add_files(
table => 'db.sales_new',
source_table => 'db.sales'
);Methode 2: vollständiges Neuschreiben mit CREATE TABLE AS SELECT
Hat die Hive-Tabelle Probleme, die Sie ohnehin beheben wollen, etwa Tausende winziger Dateien, falsche Partitionen oder alte Kompression, schreiben Sie stattdessen eine neue Iceberg-Tabelle:
CREATE TABLE lake.db.sales
USING iceberg
PARTITIONED BY (days(order_ts)) -- hidden partitioning: no extra date column needed
TBLPROPERTIES ('write.parquet.compression-codec' = 'zstd')
AS SELECT * FROM spark_catalog.db.sales;Dabei wird jedes Byte gelesen und geschrieben, es dauert also länger und verdoppelt den Speicher, bis Sie die alte Tabelle löschen. Dafür bekommen Sie gut dimensionierte Dateien, moderne Kompression und versteckte Partitionierung: Abfragen filtern auf order_ts, und Iceberg schließt Partitionen automatisch aus, sodass Nutzer keine separate Partitionsspalte mehr kennen müssen.
Methode 3: verwaltete Migration in Amazon S3 Tables
Neu seit dem 4. November 2026. Wenn Ihre Hive-Tabellen in AWS Glue registriert und als Parquet gespeichert sind, kann S3 Tables die ganze Migration übernehmen:
- Kosten: Sie zahlen nur für die vom Job kopierten Daten; die Konvertierung von Hive nach Iceberg selbst ist kostenlos. Quelldateien in S3 Intelligent-Tiering behalten ihre Zugriffsstufe.
- Bessere Dateien: Mit Snappy komprimierte Tabellen werden mit Zstandard neu komprimiert und verdichtet, was Speicher und Objektanzahl senkt.
- Grenzen zum Start: in Glue registrierte Hive-Tabellen in Parquet, im selben AWS-Konto und in derselben Region, in 10 Regionen, darunter Irland, Frankfurt und Stockholm in Europa.
- Für KI-Agenten: AWS hat auch einen Migrations-Skill veröffentlicht, mit dem ein Agent den Ablauf steuern kann, mit Ihrer Zustimmung.
Welche Methode sollten Sie nehmen?
| In place (migrate) | Neuschreiben (CTAS) | S3 Tables verwaltet | |
|---|---|---|---|
| Kopiert Daten | Nein | Ja | Ja |
| Tempo | Minuten | Stunden bei großen Tabellen | Läuft im Hintergrund |
| Behebt kleine Dateien und Partitionen | Nein | Ja | Verdichtet und komprimiert neu |
| Rollback | Aus der Backup-Tabelle | Alte Tabelle behalten | Eingebaut |
| Wo | Jedes Spark mit Iceberg | Jede Iceberg-Engine | Nur AWS, Glue und Parquet |
Die Checkliste für die Umstellung
- 1
Alle Leser und Schreiber auflisten
Dashboards, Spark-Jobs, Athena- oder Trino-Abfragen, Exporte. Jeder muss Iceberg unterstützen, bevor Sie umstellen.
- 2
Schreibvorgänge stoppen oder pausieren
Migrieren Sie in einer ruhigen Phase oder nutzen Sie die Synchronisierung von S3 Tables, um Änderungen vor der Umstellung nachzuziehen.
- 3
Ergebnisse vergleichen
Zeilenzahlen, Summen wichtiger Spalten und einige Beispielabfragen auf alter und neuer Tabelle.
- 4
Den Namen umstellen
Lassen Sie Jobs auf die neue Tabelle zeigen oder migrate den Namen für Sie ersetzen.
- 5
Wartung einplanen
Iceberg braucht regelmäßige Verdichtung und Snapshot-Ablauf; S3 Tables, Databricks und Snowflake können das automatisch.
- 6
Die alte Tabelle später löschen
Behalten Sie das Backup ein bis zwei Wochen, bevor Sie es löschen.
Testen Sie Ihr Wissen
1/3Was macht Icebergs Prozedur migrate mit den Datendateien?
Es ist eine reine Metadaten-Konvertierung; die Originaltabelle bleibt als Backup erhalten.
2/3Warum könnten Sie stattdessen vollständig neu schreiben?
CTAS liest und schreibt alles und erlaubt so, das Layout zu ändern.
3/3Wofür zahlen Sie bei der verwalteten Migration in S3 Tables?
Die Konvertierung von Hive nach Iceberg kostet nichts.
Sie haben 0 von 3 richtig.
Verwandte Themen: Apache Iceberg v3, DuckDB, Polars oder Spark und wie man eine Datenbank auswählt.
Quellen: AWS, "Amazon S3 Tables now provide a simple, cost-effective path for data lake modernization" (4. November 2026); Apache-Iceberg-Dokumentation zu Spark-Prozeduren (snapshot, migrate, add_files) und Tabelleneigenschaften; Google-Cloud-Blog (4. November 2026) für die Zahl von talabat. Testen Sie die Prozeduren an einer Kopie, bevor Sie sie auf Produktionstabellen anwenden.
