Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Unity Catalog-verwaltete Iceberg-Tabellen sind in der öffentlichen Vorschau in Databricks Runtime 16.4 LTS und höher verfügbar. Fremde Iceberg-Tabellen sind auch in der Public Preview in Databricks Runtime 16.4 LTS und höher.
Iceberg v3-Features sind in Der Betaversion in Databricks Runtime 17.3 und höher verfügbar. Siehe "Apache Iceberg v3-Features verwenden".
Apache Iceberg ist ein Open Source-Tabellenformat für Analyseworkloads. Es unterstützt Features wie Schemaentwicklung, Zeitreise und ausgeblendete Partitionierung. Wie Delta Lake bietet Iceberg eine Abstraktionsebene, die ACID-Transaktionen auf daten ermöglicht, die im Objektspeicher gespeichert sind. Azure Databricks unterstützt Iceberg-Tabellen, die das Apache-Parkettdateiformat verwenden. Iceberg behält die Atomarität und Konsistenz bei, indem neue Metadatendateien für jede Tabellenänderung erstellt werden.
Ein Iceberg-Katalog ist die oberste Ebene der Iceberg-Tabellenarchitektur. Sie behandelt Vorgänge wie das Erstellen, Ablegen und Umbenennen von Tabellen. Die Hauptverantwortung liegt in der Bereitstellung der aktuellen Metadaten, wenn eine Tabelle geladen wird. Azure Databricks unterstützt Iceberg-Tabellen, die von verwaltet werden:
- Unity-Katalog
- Fremdkataloge wie AWS Glue, Hive Metastore oder Snowflake Horizon Catalog
Alle Iceberg-Tabellen in Azure Databricks folgen der Spezifikation des offenen Iceberg-Tabellenformats. Sehen Sie sich die Eisberg-Tabellenspezifikation an.
Erstellen von Iceberg-Tabellen im Unity-Katalog
Iceberg-Tabellen, die im Unity-Katalog erstellt wurden, sind verwaltete Iceberg-Tabellen. Sie können diese Tabellen erstellen mit:
- Databricks Runtime oder Databricks SQL
- Externe Iceberg-kompatible Engines, die die Iceberg REST-Katalog-API unterstützen, z. B. Apache Spark, Flink, Trino oder Kafka. Siehe Access Azure Databricks-Tabellen von Apache Iceberg-Clients.
Verwaltete Iceberg-Tabellen sind vollständig in Azure Databricks-Plattformfeatures integriert. Unity Catalog verwaltet Lebenszyklusaufgaben wie den Ablauf von Snapshots und die Dateikompaktierung für diese Tabellen. Verwaltete Iceberg-Tabellen unterstützen auch flüssige Clustering, wodurch die Abfrageleistung verbessert wird. Die Predictive Optimization automatisiert diese Aufgaben, um die Speicherkosten zu reduzieren und die Abfragegeschwindigkeit zu verbessern. Databricks empfiehlt die Verwendung von Iceberg-Clients 1.9.2 und höher, um den Unity-Katalog zu lesen und zu schreiben.
Lesen von Iceberg-Tabellen, die von anderen Katalogen verwaltet werden
Eine fremde Iceberg-Tabelle ist eine Iceberg-Tabelle, die von einem Katalog außerhalb des Unity-Katalogs verwaltet wird. Der externe Katalog speichert die aktuellen Metadaten der Tabelle. Azure Databricks verwendet lakehouse Federation , um Metadaten abzurufen und die Tabelle aus dem Objektspeicher zu lesen.
Fremde Iceberg-Tabellen sind in Azure Databricks schreibgeschützt und besitzen eine nur begrenzte Plattformunterstützung.
Zugreifen auf Iceberg-Tabellen mit externen Systemen
Sie können mit der Iceberg REST-Katalog-API auf alle Iceberg-Tabellen im Unity-Katalog zugreifen. Diese offene API unterstützt Lese- und Schreibvorgänge von externen Iceberg-Engines in verschiedenen Sprachen und Plattformen. Siehe Access Azure Databricks-Tabellen von Apache Iceberg-Clients.
Der REST-Katalog unterstützt Credential Vending, das temporäre Credentials an externe Engines für den Zugriff auf den zugrunde liegenden Speicher liefert. Weitere Informationen finden Sie unter Unity Catalog credential vending für external system access.
Eisberg-Tabellenbeschränkungen
Die folgenden Einschränkungen gelten für Iceberg-Tabellen in Azure Databricks und können geändert werden:
- Iceberg-Tabellen unterstützen nur das Apache Parquet-Dateiformat.
- Azure Databricks unterstützt die Versionen 1, 2 und 3 der Iceberg-Spezifikation.
- Informationen zu v3-spezifischen Einschränkungen finden Sie unter "Einschränkungen".
- Iceberg v2-Positionslösungen und gleichheitsbasierte Lösungen werden nicht unterstützt. Stattdessen unterstützt Azure Databricks Iceberg v3-Löschvektoren für Löschungen auf Zeilenebene.
- Verzweigungen und Markierungen werden nicht unterstützt. Nur der Hauptzweig ist beim Lesen fremder Iceberg-Tabellen zugänglich.
- Aufteilend:
- Die Entwicklung von Partitionen wird bei verwalteten Iceberg-Tabellen nur unterstützt, wenn die Interaktion über externe Iceberg-Engines erfolgt.
- Fremde Eisbergtabellen unterstützen die Partitionsentwicklung nicht.
- Die Partitionierung nach
BINARYTyp wird nicht unterstützt.
- Die folgenden Datentypen werden nicht unterstützt:
UUIDFixed(L)TIME- Geschachtelt
STRUCTmit erforderlichen Feldern
- Verwaltete Iceberg-Tabellen unterstützen keine Primärschlüssel- oder Fremdschlüsseleinschränkungen.
Grenzwerte für verwaltete Iceberg-Tabellen
Die folgenden Einschränkungen gelten speziell für verwaltete Iceberg-Tabellen:
- Zeilenfilter und Spaltenmasken werden nicht unterstützt.
- Die Vektorsuche wird nicht unterstützt.
- Iceberg unterstützt keine Änderungsdatenfeeds. Daher wird die inkrementelle Verarbeitung nicht unterstützt, wenn verwaltete Iceberg-Tabellen als Quelle gelesen werden:
- Materialisierte Ansichten und Streaming-Tabellen
- Datenprofilerstellung
- Onlinetabellen
- Lakebase
- Datenklassifizierung
- Verwaltete Iceberg-Tabellen können nur erstellt werden, wenn die Vorhersageoptimierung für die Tabellenwartung aktiviert ist.
- Die folgenden Tabelleneigenschaften werden vom Unity-Katalog verwaltet und können nicht manuell festgelegt werden:
write.location-provider.implwrite.data.pathwrite.metadata.pathwrite.format.defaultwrite.delete.format.default
- Der Komprimierungscodec zum Ändern der Tabellenkomprimierung wird nicht unterstützt. Alle Tabellen verwenden standardmäßig Zstd.
- Die Partitionierung nach Ausdrücken (z. B.
years(),months(),days(), ,hours()bucket()) wird nicht unterstützt.
Grenzwerte für fremde Iceberg Tabellen
Die folgenden Grenzwerte gelten explizit für fremde Iceberg-Tabellen:
- Zeitreisen werden nur für Iceberg-Momentaufnahmen unterstützt, die zuvor in Azure Databricks gelesen wurden (d. a. Momentaufnahmen, bei denen eine
SELECTAnweisung ausgeführt wurde). - Die Verwendung von Buckettransformationsfunktionen für die Iceberg-Partitionierung kann die Abfrageleistung beeinträchtigen, wenn bedingte Filter verwendet werden.
- Cloudspeicher-Tiering-Produkte wie Amazon S3 sind nicht mit fremden Iceberg-Tabellen integriert. Der Zugriff auf ausländische Iceberg-Tabellen in Azure Databricks kann Daten wiederherstellen, die in niedrigeren Speicherebenen archiviert sind.
- Bei Clustern mit dediziertem Zugriffsmodus werden Lese- und
REFRESH FOREIGN TABLE-Operationen auf Iceberg-TabellenALL PRIVILEGES.