High-Performance-Architektur von Snowpipe Streaming mit Apache Iceberg™-Tabellen¶
Snowpipe Streaming mit High-Performance-Architektur unterstützt die Aufnahme von Daten in von Snowflake verwaltete Apache Iceberg-Tabellen, einschließlich Iceberg-Tabellen der Version 2 und Iceberg-Tabellen der Version 3. Dies ermöglicht nahezu Echtzeit-Streaming von Daten in Iceberg-Tabellen mit allen Leistungsvorteilen High-Performance-Architektur.
Bemerkung
Die klassische Architektur unterstützt nur Iceberg-Tabellen der Version 2. Wenn Sie Unterstützung für Iceberg-Tabellen der Version 3 benötigen, müssen Sie die High-Performance-Architektur verwenden. Weitere Informationen zur Iceberg-Unterstützung in der klassischen Architektur finden Sie unter Klassisches Snowpipe Streaming mit Apache Iceberg™-Tabellen.
Wie es funktioniert¶
Snowpipe Streaming nimmt Daten über das PIPE-Objekt in Ihre Iceberg-Zieltabelle auf. Snowflake erstellt Iceberg-kompatible Apache Parquet-Datendateien mit entsprechenden Iceberg-Metadaten und lädt sie in den von Ihnen konfigurierten externen Cloudspeicherort hoch. Die Daten werden als von Snowflake verwaltete Iceberg-Tabelle zur Verfügung gestellt, die bei Snowflake als Iceberg-Katalog registriert ist.
Snowflake stellt eine Verbindung zu Ihrem Speicherort über ein externes Volume her.
Erste Schritte¶
Dieser Abschnitt enthält ein schrittweises Beispiel für die Einrichtung von Snowpipe Streaming mit High-Performance-Architektur für die Aufnahme von Daten in eine Iceberg-Tabelle.
Schritt 1: Externes Volume erstellen¶
Erstellen Sie ein externes Volume, das einen Speicherort für Ihre Iceberg-Tabellendaten angibt.
Streaming-Rolle die USAGE-Berechtigung für das externe Volume gewähren:
Schritt 2: Eine von Snowflake verwaltete Iceberg-Tabelle erstellen¶
Erstellen Sie eine von Snowflake-verwaltete Iceberg-Tabelle mit Ihrem konfigurierten externen Volume:
Bemerkung
Wenn Sie den ICEBERG_VERSION-Parameter weglassen, ist die Standardeinstellung der Tabelle Iceberg v2.
Schritt 3: Eine Pipe für die Datenaufnahme erstellen¶
Erstellen Sie eine Pipe, die auf die Iceberg-Tabelle abzielt. Sie können die Standard-Pipe (automatisch erstellt) verwenden oder eine kundenspezifische Pipe erstellen:
Schritt 4: Daten mit dem SDK streamen¶
Konfigurieren Sie das SDK, um Daten über die Pipe in Ihre Iceberg-Tabelle zu streamen. Verwenden Sie die gleiche SDK-Einrichtung wie unter Tutorial: Erste Schritte mit der leistungsstarken Snowpipe Streaming-Architektur SDK beschrieben. Geben Sie dabei die Pipe Ihrer Iceberg-Tabelle in der Clientkonfiguration an.
Unterstützte Iceberg-Versionen¶
Die High-Performance-Architektur unterstützt sowohl Iceberg-Tabellen der Version 2 als auch Iceberg-Tabellen der Version 3.
Die klassische Architektur unterstützt nur Iceberg-Tabellen der Version 2.
Unterstützte Datentypen¶
Das Snowflake Ingest SDK unterstützt die meisten der Iceberg-Datentypen, die auch Snowflake derzeit unterstützt. Weitere Informationen dazu finden Sie unter Datentypen für Apache Iceberg™-Tabellen.
Das SDK unterstützt auch die Aufnahme in die drei :doc:` strukturierten Datentypen </sql-reference/data-types-structured>`: Strukturierte ARRAY-Typen, strukturierte OBJECT-Typen und strukturierte MAP-Typen.
Nutzungshinweise¶
Snowpipe Streaming unterstützt nur Snowflake als Iceberg-Katalog. Extern verwaltete Iceberg-Tabellen, die externe Kataloge verwenden (wie AWS Glue oder Hive Metastore) werden nicht unterstützt. Sie können jedoch Ihre von Snowflake verwalteten Iceberg-Tabellen mit Snowflake Open Catalog synchronisieren.
Snowflake stellt eine Verbindung zu Ihrem Speicherort über ein externes Volume her. Sie sind verantwortlich für Datenspeicher für Iceberg-Tabellen.
Die Iceberg-kompatiblen Parquet-Dateien werden auf der Grundlage der in der Iceberg-Tabelle angegebenen STORAGE_SERIALIZATION_POLICY erstellt.
Einschränkungen¶
Die folgenden Einschränkungen gelten für Snowpipe Streaming mit High-Performance -Architektur und Iceberg-Tabellen:
Partitionierte Iceberg-Tabellen werden nicht unterstützt.
Die Schemaentwicklung wird für Iceberg-Tabellen nicht unterstützt.
Längenbeschränkte VARCHAR-Spalten (z. B.
VARCHAR(100)) werden für Iceberg-Tabellen nicht unterstützt. Verwenden Sie STRING oderVARCHAR ohne Längenbeschränkung.
Die Beschränkungen der High-Performance-Architektur von Snowpipe Streaming und Einschränkungen für Iceberg-Tabellen gelten ebenfalls.