SDK du catalogue Snowflake¶
Le SDK du catalogue Snowflake est disponible pour Apache Iceberg™ versions 1.2.0 ou ultérieures.
Avec le SDK du catalogue Snowflake, vous pouvez interroger les tables Iceberg à l’aide d’un moteur tiers tel que Apache Spark™ ou Trino.
Opérations de catalogue prises en charge¶
Le SDK prend en charge les commandes suivantes pour parcourir les métadonnées Iceberg dans Snowflake :
SHOW NAMESPACES
USE NAMESPACE
SHOW TABLES
USE DATABASE
USE SCHEMA
Le SDK ne prend actuellement en charge que les opérations de lecture (instructions SELECT).
Installer et se connecter¶
Pour installer le SDK du catalogue Snowflake, téléchargez la dernière version des bibliothèques Iceberg.
Avant de pouvoir utiliser le SDK du catalogue Snowflake, vous devez disposer d’une base de données Snowflake avec une ou plusieurs tables Iceberg. Pour créer une table Iceberg, voir Création d’une table Apache Iceberg™ dans Snowflake.
Une fois que vous avez établi une connexion et que le SDK confirme la présence de métadonnées Iceberg, Snowflake accède à vos données Parquet en utilisant le volume externe associé à votre ou vos tables Iceberg.
Exemples utilisant Spark¶
Note
Pour en savoir plus sur l’utilisation de Trino avec le SDK du catalogue Snowflake, consultez la documentation Trino.
Pour lire les données d’une table avec le SDK, commencez par configurer les propriétés suivantes pour votre cluster Spark :
Note
Vous pouvez utiliser n’importe quel paramètre de connexion de pilote JDBC pris en charge par Snowflake dans votre configuration via la syntaxe suivante : --conf spark.sql.catalog.snowflake_catalog.jdbc.property-name=property-value
Après avoir configuré votre cluster Spark, vous pouvez vérifier sur quelles tables vous pouvez lancer des requêtes. Par exemple :
Vous pouvez ensuite sélectionner une table à laquelle appliquer une requête.
Vous pouvez utiliser la structure DataFrame avec des langages tels que Python et Scala pour interroger les données.
Note
Si vous recevez des erreurs de lecture vectorisée lors de l’exécution de requêtes, vous pouvez désactiver les lectures vectorisées pour votre session en configurant : spark.sql.iceberg.vectorization.enabled=false. Pour continuer à utiliser les lectures vectorisées, vous pouvez définir le paramètre STORAGE_SERIALIZATION_POLICY.
Mise en cache des requêtes¶
Lorsque vous lancez une requête, Snowflake met un certain temps à mettre le résultat en cache (90 secondes par défaut). Pendant ce délai, il se peut que vous subissiez une latence. Si vous prévoyez d’accéder aux données par programme à des fins de comparaison, vous pouvez définir la propriété spark.sql.catalog.cache-enabled sur false pour désactiver la mise en cache.
Si votre application est conçue pour tolérer un temps de latence spécifique, vous pouvez utiliser la propriété suivante pour spécifier la période de latence : spark.sql.catalog.cache.expiration-interval-ms.
Limitations¶
Les limites suivantes s’appliquent au SDK du catalogue Snowflake et sont susceptibles d’être modifiées :
Le SDK ne prend actuellement en charge que les opérations de lecture (instructions SELECT).
Seuls Apache Spark et Trino sont pris en charge pour la lecture des tables Iceberg.
Vous ne pouvez pas utiliser le SDK pour accéder à des tables autres que des tables Iceberg Snowflake.