Snowflake-Katalog SDK¶
Der Snowflake-Katalog SDK ist für Apache Iceberg™-Versionen 1.2.0 oder höher verfügbar.
Mit dem Snowflake-Katalog SDK können Sie Iceberg-Tabellen mit einer Drittanbieter-Engine wie Apache Spark™ oder Trino abfragen.
Unterstützte Katalogoperationen¶
Das SDK unterstützt die folgenden Befehle zum Durchsuchen von Iceberg-Metadaten in Snowflake:
SHOW NAMESPACES
USE NAMESPACE
SHOW TABLES
USE DATABASE
USE SCHEMA
Das SDK unterstützt derzeit nur Leseoperationen (SELECT-Anweisungen).
Installieren und Verbinden¶
Um den Snowflake-Katalog SDK zu installieren, laden Sie die neueste Version der Iceberg-Bibliotheken herunter.
Bevor Sie den Snowflake-Katalog SDK verwenden können, benötigen Sie eine Snowflake-Datenbank mit einer oder mehreren Iceberg-Tabellen. Weitere Informationen zum Erstellen einer Iceberg-Tabelle finden Sie unter Apache Iceberg™-Tabelle in Snowflake erstellen.
Nachdem Sie eine Verbindung hergestellt haben und das SDK bestätigt hat, dass Iceberg-Metadaten vorhanden sind, greift Snowflake auf Ihre Parquet-Daten zu, indem das mit Ihren Iceberg-Tabellen verbundene externe Volume verwendet ist.
Beispiele mit Spark¶
Bemerkung
Informationen zur Verwendung von Trino mit dem Snowflake-Katalog SDK finden Sie in der Trino-Dokumentation.
Um Tabellendaten mit dem SDK zu lesen, konfigurieren Sie zunächst die folgenden Eigenschaften für Ihren Spark-Cluster:
Bemerkung
Sie können in Ihrer Konfiguration jeden von Snowflake unterstützten JDBC-Treiber-Verbindungsparameter verwenden, indem Sie die folgende Syntax verwenden: --conf spark.sql.catalog.snowflake_catalog.jdbc.property-name=property-value
Nachdem Sie Ihren Spark-Cluster konfiguriert haben, können Sie prüfen, welche Tabellen zur Abfrage verfügbar sind. Beispiel:
Dann können Sie eine Tabelle zur Abfrage auswählen.
Sie können die DataFrame-Struktur mit Sprachen wie Python und Scala verwenden, um Daten abzufragen.
Bemerkung
Wenn Sie beim Ausführen von Abfragen Fehler beim vektorisierten Lesen erhalten, können Sie das vektorisierte Lesen für Ihre Sitzung deaktivieren, indem Sie Folgendes konfigurieren: spark.sql.iceberg.vectorization.enabled=false. Um weiterhin vektorisierte Reads zu verwenden, können Sie den Parameter STORAGE_SERIALIZATION_POLICY einstellen.
Abfrage-Caching¶
Wenn Sie eine Abfrage ausführen, speichert Snowflake das Ergebnis innerhalb eines bestimmten Zeitrahmens (standardmäßig 90 Sekunden). Bis zu dieser Dauer kann es zu Latenzen kommen. Wenn Sie planen, zu Vergleichszwecken programmgesteuert auf Daten zuzugreifen, können Sie die Eigenschaft spark.sql.catalog.cache-enabled auf false setzen, um das Caching zu deaktivieren.
Wenn Ihre Anwendung ein bestimmtes Maß an Latenz tolerieren soll, können Sie die folgende Eigenschaft verwenden, um die Latenz anzugeben: spark.sql.catalog.cache.expiration-interval-ms.
Einschränkungen¶
Die folgenden Beschränkungen gelten für das Snowflake-Katalog-SDK und können jederzeit geändert werden:
Das SDK unterstützt derzeit nur Leseoperationen (SELECT-Anweisungen).
Nur Apache Spark und Trino werden für das Lesen von Iceberg-Tabellen unterstützt.
Sie können das SDK nicht für den Zugriff auf Nicht-Iceberg-Snowflake-Tabellen verwenden.