Configuration de Snowflake pour Spark dans Databricks

Le connecteur Snowflake natif version 4.2 de Databricks permet à votre compte Databricks de lire des données depuis Snowflake, et d’y écrire des données sans importer de bibliothèque. Les anciennes versions de Databricks nécessitaient l’importation des bibliothèques pour le connecteur Spark dans vos clusters Databricks.

Le connecteur répartit automatiquement le processus entre Spark et Snowflake, sans que l’utilisateur n’ait à spécifier les parties du traitement qui doivent être effectuées sur chaque système. Les requêtes bénéficient également de l’optimisation du pushdown automatique des requêtes de Snowflake.

Dans ce chapitre :

Conditions préalables

  • Vous devez avoir un compte Databricks, et vous devez utiliser la version 4.2 ou ultérieure de Databricks Runtime. Par ailleurs :

    • Vous devez avoir déjà défini votre nom d’utilisateur et votre mot de passe Snowflake dans votre gestionnaire secret Databricks. Vous pourrez lire le nom d’utilisateur et le mot de passe en exécutant dbutils.secrets.get(...). Pour plus de détails sur le gestionnaire secret de Databricks, voir https://docs.databricks.com/user-guide/secrets/index.html

  • Vous devez avoir un compte Snowflake. Pour lire ou écrire à partir de ce compte, vous avez besoin des informations suivantes :

    • URL pour votre compte Snowflake.

    • Nom d’utilisateur et mot de passe pour l’utilisateur qui se connecte au compte.

    • Base de données et schéma par défaut à utiliser pour la session après la connexion.

    • Entrepôt virtuel par défaut à utiliser pour la session après la connexion.

  • Le rôle utilisé dans la connexion nécessite les privilèges USAGE et CREATE STAGE sur le schéma qui contient la table que vous allez lire ou écrire via Databricks.

Accès à la documentation sur le connecteur Snowflake Databricks.

La documentation principale sur le connecteur Snowflake Databricks est disponible sur le site Web de Databricks. Cette documentation comprend des exemples montrant les commandes qu’un notebook Scala ou Python utilise pour envoyer des données de Spark à Snowflake, ou vice versa.

Pour plus de détails, voir Sources de données — Snowflake.

Préparation d’un emplacement externe pour les requêtes de longue durée

Si certaines de vos opérations durent plus de 36 heures, songez à préparer un emplacement externe à utiliser pour l’échange de données entre Snowflake et Spark. Pour plus d’informations, voir Préparation d’un emplacement externe pour les fichiers.

Pushdown de requêtes dans Databricks

Les requêtes Spark bénéficient de l’optimisation du pushdown automatique des requêtes de Snowflake, ce qui permet d’améliorer les performances. Par défaut, le pushdown de requêtes Snowflake est activé dans Databricks.

Pour plus de détails sur le pushdown de requêtes, voir Déplacer le traitement de requêtes Spark vers Snowflake (blog Snowflake).