Verwendung von Snowpipe Streaming Classic mit Apache Iceberg™-Tabellen¶
Mit Snowflake Ingest SDK ab Version 3.0.0 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_LAG1 Sekunde.
- Für Iceberg-Tabellen ist die Standardeinstellung - MAX_CLIENT_LAG30 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_LAGfü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. 
Einschränkungen¶
Die Beschränkungen für Snowpipe Streaming und die Beschränkungen für Iceberg-Tabellen gelten auch für Snowpipe Streaming mit Iceberg-Tabellen.
