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.

Snowpipe Streaming mit 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.