Dynamische Apache Iceberg™-Tabellen erstellen¶
In diesem Thema wird erklärt, wie Sie dynamische Iceberg-Tabellen erstellen, die Abfrageergebnisse im Format der Iceberg-Tabelle speichern.
Dynamische Iceberg-Tabellen erstellen¶
Dynamische Iceberg-Tabellen vereinen die Vorteile von dynamischen Tabellen und Snowflake-verwalteten Iceberg-Tabellen und bieten Features wie die Verwaltung von externem Cloud-Speicher, automatische Datentransformation und Leistungsoptimierung.
Dynamische Iceberg-Tabellen lassen sich in Data Lakes integrieren, mit denen Sie Daten in einem externen Cloudspeicher wie AWS S3 oder Azure Blob Storage speichern können, während sie von Snowflake verwaltet werden. Diese Tabellen unterstützen ACID-Transaktionen, Schemaentwicklung, versteckte Partitionierung und Tabellen-Snapshots.
Die automatisierte Datentransformationen mit dynamischen Iceberg-Tabellen nutzt deklarative SQL, um den gewünschten Endzustand ohne Verwaltung von Zwischenschritten zu definieren. Snowflake übernimmt die Orchestrierung, Planung und Aktualisierung von Datentransformationen auf der Grundlage Ihrer festgelegten Ziele für die Datenaktualität.
Die Optimierung der Leistung erfolgt durch inkrementelle Verarbeitung, bei der nur geänderte Daten verarbeitet werden, um die Leistung zu verbessern und die Kosten im Vergleich zu einer vollständigen Datenaktualisierung zu senken. Darüber hinaus können Sie mit einem einfachen Befehl zwischen Batchverarbeitung und Streaming-Daten wechseln, was für Flexibilität in den Datenverarbeitungs-Workflows sorgt.
Beispiele für die Anwendung dynamischer Iceberg-Tabellen sind:
Data Lake-Integration: Sie können große Datensets kostengünstig speichern und gleichzeitig Transformationen und Analysen in Snowflake durchführen, indem Sie das Iceberg-Format für effiziente Abfragen und Verwaltung nutzen.
Definition kontinuierlicher Datentransformationspipelines: Durch die Verwendung dynamischer Tabellen können Sie sicherstellen, dass die Daten ohne manuelle Eingriffe immer auf dem neuesten Stand sind, und Streams mit hoher Geschwindigkeit durch inkrementelle Verarbeitung effizient verarbeiten.
Um eine dynamische Iceberg-Tabelle zu erstellen, führen Sie die SQL-Anweisung CREATE DYNAMIC ICEBERG TABLE aus. Um zum Beispiel eine dynamische Iceberg-Tabelle zu erstellen, die aus my_iceberg_table liest, verwenden Sie die folgende Syntax:
Konfigurieren von Partitionierung, Dateigröße und Pfadlayout¶
Dynamische Iceberg-Tabellen unterstützen die Tabelleneigenschaften PARTITION_BY, TARGET_FILE_SIZE und PATH_LAYOUT. Diese Eigenschaften funktionieren auf die gleiche Weise wie bei den von Snowflake verwalteten Iceberg-Tabellen.
PARTITION_BY: Gibt einen oder mehrere Iceberg-Partitionsausdrücke an, die steuern, wie Snowflake Datendateien in der Tabelle partitioniert. So können Sie beispielsweise eine dynamische Iceberg-Tabelle anhand des Jahreswerts einer
order_time-Spalte partitionieren:Informationen zu den unterstützten Partitionstransformationen finden Sie unter Parameter für Partitionsausdrücke (partitionExpression).
TARGET_FILE_SIZE: Gibt die Zielgröße der Parquet-Datei für die Tabelle an. Der Standardwert ist
AUTO, mit dem Snowflake die Dateigröße basierend auf den Merkmalen der Tabelle auswählen kann. Weitere Informationen dazu finden Sie unter Zieldateigröße festlegen.PATH_LAYOUT: Gibt an, ob Snowflake Parquet-Datendateien mit einem einfachen oder hierarchischen Pfad-Layout schreibt. Die Standardeinstellung ist
FLAT. Verwenden SieHIERARCHICALzusammen mitPARTITION_BY, um partitionierte Pfade im Hive-Stil unter demdata/-Verzeichnis zu aktivieren.
Umfassende Details zu den Parametern finden Sie unter CREATE DYNAMIC ICEBERG TABLE.
Zukünftige Berechtigungszuweisungen für dynamische Iceberg-Tabellen¶
Um den Zugriff auf alle neuen dynamischen Iceberg-Tabellen, die im Schema erstellt wurden, zu gewährleisten, verwenden Sie die Syntax GRANT … ON FUTURE ICEBERG TABLES ohne das Schlüsselwort DYNAMIC. Beispiel:
Wenn Sie das Schlüsselwort DYNAMIC verwenden, bietet die Berechtigung keinen Zugriff auf neue dynamische Iceberg-Tabellen, die im Schema erstellt wurden. Der folgende Befehl gilt zum Beispiel nicht für dynamische Iceberg-Tabellen:
Hinweise und Einschränkungen¶
Dynamische Iceberg-Tabellen unterstützen die gleichen Datentypen wie reguläre Iceberg-Tabellen in Snowflake. Weitere Informationen dazu finden Sie unter Unterstützte Datentypen.
Bei Katalog handelt es sich um einen Konto-, Schema- oder Datenbankparameter, den Sie genau wie die von Snowflake verwalteten Iceberg-Tabellen als implizit konfigurieren können.
Dynamische Iceberg-Tabellen unterstützen derzeit nicht die
IF NOT EXISTS-Klausel. Die Verwendung der KlauselIF NOT EXISTSführt zu einem Fehler, wenn die Zieltabelle bereits existiert.Dynamische Iceberg-Tabellen werden derzeit nur für
CREATE-Anweisungen unterstützt. Die Angabe vonDYNAMIC ICEBERGin einem anderen Befehl (z. B.ALTER DYNAMIC ICEBERG TABLE <Name>) führt zu einem Fehler.Sie können dynamische Iceberg-Tabellen nicht klonen. Außerdem wird beim Klonen einer Datenbank oder eines Schemas, die bzw. das eine dynamische Iceberg-Tabelle enthält, die Tabelle nicht an den neuen Speicherort geklont.