Verwendung von Snowpipe Streaming mit Apache Iceberg™-Tabellen¶
Mit Snowflake Ingest SDK Version 3.0.0 und höher kann Snowpipe Streaming Daten in von Snowflake verwaltete Apache Iceberg-Tabellen einlesen. Das Snowpipe Streaming Ingest Java SDK unterstützt das Laden in Standard-Snowflake-Tabellen (nicht Iceberg) und in Iceberg-Tabellen.
Daten, die über Snowpipe Streaming API gesendet werden, werden über einen oder mehrere Kanäle eingespeist, die automatisch gemäß der angegebenen MAX_CLIENT_LAG
geleert werden.
Die Eigenschaft MAX_CLIENT_LAG
steuert die Latenz der Streaming-Datenaufnahme.
Für Standard-Snowflake-Tabellen (nicht Iceberg) ist die Standardeinstellung
MAX_CLIENT_LAG
1 Sekunde.Für Iceberg-Tabellen ist die Standardeinstellung
MAX_CLIENT_LAG
30 Sekunden.
Snowflake stellt über ein externes Volume eine Verbindung zu Ihrem Speicherort her, und Snowpipe Streaming entleert die Daten, um Iceberg-kompatible Parquet-Datendateien mit entsprechenden Iceberg-Metadaten zu erstellen. Diese Parquet-Daten- und -Metadatendateien werden in den von Ihnen konfigurierten externen Cloud-Speicher hochgeladen und als von Snowflake verwaltete Iceberg-Tabellen zur Verfügung gestellt, die bei Snowflake als Iceberg-Katalog registriert sind.
Konfigurationen¶
Erstellen Sie Ihre von Snowflake verwaltete Iceberg-Tabelle mit Ihrem konfigurierten externen Volume, und geben Sie den Namen der Iceberg-Tabelle in Ihrer Anfrage für einen offenen Kanal an.
Um Snowpipe Streaming mit der von Snowflake verwalteten Iceberg-Tabelle zu aktivieren, müssen Sie die folgende Eigenschaft ENABLE_ICEBERG_STREAMING=true
in der Datei profile.json
einstellen.
Unterstützte Datentypen¶
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.
Snowflake Ingest SDK unterstützt die Datenaufnahme der drei strukturierten Datentypen: Strukturiertes ARRAY, Strukturiertes OBJECT, Strukturierte MAP.
Nutzungshinweise¶
Die Standardeinstellung
MAX_CLIENT_LAG
für das Streaming zu von Snowflake verwalteten Iceberg-Tabellen beträgt 30 Sekunden, um optimierte Parquet-Dateien zu gewährleisten. Sie können die Eigenschaft auf einen niedrigeren Wert einstellen, aber wir empfehlen, dies nicht zu tun, es sei denn, der Durchsatz ist sehr hoch.Der Ingest SDK unterstützt die automatische, asynchrone, serverlose Verdichtung von kleinen Parquet-Dateien.
Dieselbe Client-Anwendung kann nicht gleichzeitig für Iceberg- und Nicht-Iceberg-Tabellen verwendet werden.
Snowflake-verwaltete Iceberg-Tabellen unterstützen keine clientseitige Verschlüsselung.
Die Iceberg-kompatiblen Parquet-Dateien werden auf der Grundlage der in der Iceberg-Tabelle angegebenen STORAGE_SERIALIZATION_POLICY erstellt.
Snowpipe Streaming unterstützt nur Snowflake als Iceberg-Katalog, aber es unterstützt auch die Synchronisierung mit Snowflake Open Catalog.
Snowflake stellt eine Verbindung zu Ihrem Speicherort über ein externes Volume her. Sie sind verantwortlich für Datenspeicher für Iceberg-Tabellen.
Snowpipe Streaming-Datenaufnahme zu von Snowflake verwalteten Iceberg-Tabellen ist für einen begrenzten Zeitraum kostenlos verfügbar.
Einschränkungen¶
Die für Snowpipe Streaming dokumentierten Einschränkungen gelten auch für Snowpipe Streaming mit Iceberg-Tabellen.