Exécuter des requêtes fédérées sur Snowflake (Microsoft Entra ID)
Cette page décrit comment configurer Lakehouse Federation pour exécuter des requêtes fédérées sur des données Snowflake qui ne sont pas gérées par Databricks. Pour en savoir plus sur Lakehouse Federation, consultez Connecter aux bases de données et catalogues externes
Pour vous connecter à votre base de données Snowflake à l'aide de Lakehouse Federation, vous devez créer les éléments suivants dans votre métastore Databricks Unity Catalog (les workspaces créés après le 8 novembre 2023 disposent déjà d'un métastore Unity Catalog provisionné automatiquement) :
- Une connexion à votre base de données Snowflake.
- Un catalogue étranger qui reflète votre base de données Snowflake dans Unity Catalog afin que vous puissiez utiliser la syntaxe de query et les outils de gouvernance des données de Unity Catalog pour gérer l’accès des utilisateurs Databricks à la base de données.
Cette page explique comment exécuter des queries fédérées sur des données Snowflake à l'aide de Microsoft Entra ID comme fournisseur OAuth externe. Il couvrira les flux U2M (code d'autorisation) et M2M (informations d'identification du client).
Pour les autres méthodes d’authentification, veuillez consulter les pages suivantes :
- OAuth intégré Snowflake
- OAuth avec Okta
- Jeton d'accès OAuth
- Clé privée PEM
- Authentification de base (nom d’utilisateur/mot de passe)
Vous pouvez exécuter des requêtes fédérées sur Snowflake en utilisant la fédération de requêtes ou la fédération de catalogues.
Dans la fédération de query, JDBC transmet la query du Unity Catalog à la base de données externe. Ceci est idéal pour le reporting à la demande ou les travaux de preuve de concept sur vos pipelines ETL.
Dans la fédération de catalogue, le query Unity Catalog s'exécute directement sur le stockage de fichiers. Cette approche est utile pour la migration incrémentielle sans adaptation de code ou comme modèle hybride à plus long terme pour les organisations qui doivent maintenir certaines données dans Snowflake parallèlement à leurs données enregistrées dans Unity Catalog. Consultez Activer la fédération de catalogue Snowflake.
Avant de commencer
Exigences du Workspace :
- Workspace activé pour Unity Catalog. Les Workspace créés après le 8 novembre 2023 sont automatiquement activés pour Unity Catalog, y compris le provisionnement automatique du métastore. Vous n'avez pas besoin de créer manuellement un métastore, à moins que votre workspace ne soit antérieur à l'activation automatique et n'ait pas été activé pour Unity Catalog. Voir Se familiariser avec Unity Catalog.
Compute requis :
- Connectivité réseau de votre ressource de compute vers les systèmes de bases de données cibles. Consultez les recommandations de mise en réseau pour Lakehouse Federation.
- Le compute Databricks doit utiliser Databricks Runtime 13.3 LTS ou version ultérieure et le mode d'accès **Standard** ou **Dédié**.
- Les SQL warehouses doivent être Pro ou Serverless et doivent utiliser la version 2023.40 ou ultérieure.
Autorisations requises :
- Pour créer une connexion, vous devez être administrateur de métastore ou un utilisateur disposant du privilège
CREATE CONNECTIONsur le métastore Unity Catalog attaché à l'espace de travail. Dans les espaces de travail qui ont été activés automatiquement pour Unity Catalog, les administrateurs d'espace de travail disposent du privilègeCREATE CONNECTIONpar default. - Pour créer un catalogue externe, vous devez disposer de l'autorisation
CREATE CATALOGsur le metastore et être le propriétaire de la connexion ou disposer du privilègeCREATE FOREIGN CATALOGsur la connexion. Dans les workspaces activés automatiquement pour Unity Catalog, les administrateurs du workspace disposent du privilègeCREATE CATALOGpar default.
Des exigences d'autorisation supplémentaires sont spécifiées dans chaque section basée sur les tâches qui suit.
Qu'est-ce que l'OAuth externe dans Snowflake ?
External OAuth est une méthode d'authentification qui vous permet d'utiliser des serveurs externes qui utilisent OAuth 2.0 pour accéder à Snowflake. Au lieu qu'un utilisateur ou une application se connecte directement à Snowflake, ils s'authentifient auprès du fournisseur OAuth (par ex. Okta, Microsoft Entra ID ou PingFederate).
Le fournisseur OAuth émet ensuite un jeton d'accès, que Databricks présente à Snowflake. Snowflake vérifie ensuite la signature et les revendications du jeton avec l'intégration de sécurité configurée, accordant l'accès.
Déterminer un flux OAuth
Pour choisir le flux OAuth correct pour votre connecteur Snowflake, vous devez comprendre les deux types principaux : U2M (User-to-Machine) et M2M (Machine-to-Machine).
U2M est un flux d'autorisation où l'application (Databricks) reçoit l'autorisation d'agir au nom de l'utilisateur. Ce flux est interactif, ce qui signifie que l'utilisateur est invité à se connecter lors de la création d'une connexion externe, et l'application reçoit un **jeton d'accès limité aux autorisations de l'utilisateur**.
Le M2M est un flux non interactif utilisé lorsqu'une application doit accéder directement aux ressources sans intervention de l'utilisateur. Dans ce flux, l'application doit être enregistrée auprès du fournisseur OAuth avec un ensemble d'autorisations, indépendant de tout utilisateur spécifique.
Dans un Workspace Databricks, OAuth fait référence à l'authentification U2M, et OAuth machine à machine fait référence à l'authentification M2M.
Configurer Microsoft Entra ID
La configuration Entra exacte dépend des besoins et des politiques de votre entreprise. Les étapes de cette section et des sections suivantes servent de guide pour vous amener à une configuration OAuth fonctionnelle, et représentent un exemple simple et fonctionnel, non pas une ressource Entra exhaustive. Consultez la documentation Azure pour une couverture approfondie de leur plateforme et de leurs fonctionnalités.
Configurez l'application de ressources OAuth
L'application de ressources représente Snowflake dans Microsoft Entra ID et définit les autorisations (étendues) que les clients peuvent demander.
-
Connectez-vous au portail Microsoft Azure .
-
Accédez à **Microsoft Entra ID**, et notez l'**identifiant du tenant** dans la section Vue d’ensemble. Nous nous référerons à cette valeur comme
<TENANT_ID>à l’avenir. -
Développez le menu déroulant **Manage**, accédez à **App Registrations**, et cliquez sur **New registration**.
- Saisissez un nom descriptif, par exemple, « Ressource Snowflake OAuth ».
- Sélectionnez Comptes dans ce répertoire d’organisation uniquement (Default Directory only - Single tenant) pour les types de compte pris en charge.
- Cliquez sur S'INSCRIRE .
-
Dans la section Vue d'ensemble de l'enregistrement d'application nouvellement créé, notez la valeur de l' ID de l'application (client) ; nous y ferons référence ultérieurement sous le nom de
<RESOURCE_APP_ID>. -
Accédez à Exposer une API dans le tiroir à gauche, et cliquez sur Ajouter près de l'URI de l'ID d'application en haut. La valeur default doit être au format
api://<RESOURCE_APP_ID>et elle fonctionnera comme la revendication d'audience OAuth. Vous pouvez plutôt définir une valeur contenant le domaine de votre organisation, commehttps://yourorg.onmicrosoft.com/<RESOURCE_APP_ID>(voir Restrictions concernant les URI d'identificateur des applications Microsoft Entra). Enregistrez la valeur finale, nous y ferons référence en tant que<SNOWFLAKE_APPLICATION_ID_URI>lors de la configuration de l'intégration de sécurité. -
(U2M uniquement) Dans la section Exposer une API , cliquez sur Ajouter une étendue .
- Saisissez le nom de votre rôle Snowflake avec le préfixe
session:role:comme nom de scope. Par exemple,session:role:analyst. - Sélectionnez qui peut donner son consentement.
- Veuillez saisir le nom d'affichage du consentement administrateur, par exemple : Administrateur de compte.
- Saisissez la description du consentement administrateur, par ex. Peut administrer le compte Snowflake.
- Enfin, cliquez sur Ajouter un périmètre .
- Saisissez le nom de votre rôle Snowflake avec le préfixe
-
(M2M uniquement) Accédez à App roles et cliquez sur Create app role .
- Nom d'affichage : saisissez un nom, il peut correspondre à la valeur du rôle, dans notre cas, PUBLIC.
- Types de membres autorisés : choisissez Applications.
- Valeur : sélectionnez la portée, nous utiliserons
session:role:PUBLIC. - Description : saisissez une description — idéalement, vous devriez décrire le niveau d'accès fourni par le rôle.
- Voulez-vous activer ce rôle d'application ? Assurez-vous que votre rôle est activé en cochant la case.
- Cliquez sur Appliquer .
Créer une application cliente OAuth
L'application cliente représente le client (Databricks) qui se connectera à Snowflake afin d'obtenir des jetons.
-
Accédez de nouveau à **Enregistrements d'applications** et cliquez sur **Nouvel enregistrement**.
- Saisissez un nom descriptif, par exemple, « Snowflake OAuth Client ».
- Pour les types de compte pris en charge, sélectionnez **Comptes dans ce répertoire organisationnel uniquement (Répertoire default uniquement - Mono-tenant)**.
- Cliquez sur S'INSCRIRE .
-
Dans la section Vue d'ensemble, copiez et enregistrez le champ ID de l'application (client) . Cette valeur sera désignée sous le nom de
<CLIENT_ID>à l'avenir lors de la configuration de la connexion dans Databricks. -
(M2M only) Cliquez sur le Link à côté de Application gérée dans le répertoire local . Là, copiez et enregistrez la valeur dans le champ ID de l'objet . Dans les prochaines étapes, nous y ferons référence en tant que
<CLIENT_OBJECT_ID>– il sera nécessaire de créer un mappage entre le client et l'intégration de sécurité dans Snowflake. -
Retournez et développez le menu déroulant Gérer . Là, accédez à Certificats et secrets , puis cliquez sur Nouveau secret client .
- Choisissez une description, p. ex. Secret client Databricks
- Choisissez l’expiration du secret en fonction de vos besoins. Une fois que le secret expire, vous devrez en créer un nouveau dans Entra et mettre à jour la connexion dans Databricks.
- Cliquez sur Ajouter ci-dessous.
- Une fois ajouté, copiez et stockez en toute sécurité la valeur dans la colonne Valeur – vous ne pourrez plus la voir après avoir quitté la page. Nous nous référerons à cette valeur sous le nom de
<CLIENT_SECRET>lors de la création d'une connexion dans Databricks.
-
Accédez aux **autorisations d'API**, puis cliquez sur **Ajouter une autorisation**.
- Accédez à l'onglet APIs que mon organisation utilise .
- Recherchez l'application de ressources que vous avez créée dans la section précédente et cliquez dessus.
- (U2M uniquement) Cliquez sur le grand bouton Autorisations déléguées , et sélectionnez le rôle que vous avez créé à l'étape précédente sous Autorisations.
- (M2M uniquement) Cliquez sur le grand bouton Autorisations d'application , puis sélectionnez le rôle que vous avez créé à l'étape précédente sous Autorisations.
- Cliquez sur Ajouter des autorisations .
-
Enfin, cliquez sur Accorder le consentement administrateur pour le répertoire default .
-
(U2M uniquement) La dernière étape consiste à configurer une URI de redirection. Lorsque vous initiez le processus de connexion Entra depuis Databricks, l'URL de redirection indique à Entra vers quelle page Databricks revenir si la connexion a réussi.
- Dans le menu déroulant **Gérer**, accédez à la section **Authentification**.
- Cliquez sur Ajouter une plateforme et choisissez Application web .
- Saisissez un URI de redirection au format
https://<YOUR_DATABRICKS_WORKSPACE>/login/oauth/snowflake.html. - Cliquez sur Configurer .
Créer une intégration de sécurité dans Snowflake
Cette étape configure une intégration de sécurité dans Snowflake afin qu'elle puisse communiquer en toute sécurité avec Entra ID, valider les jetons Entra ID et fournir l'accès aux données approprié en fonction du rôle associé au jeton d'accès OAuth.
- User-to-Machine flow
- Machine-to-Machine flow
-
Connectez-vous à votre compte Snowflake en tant qu'utilisateur disposant du rôle
ACCOUNTADMIN. -
Exécutez la commande
CREATE SECURITY INTEGRATION. Par exemple :SQLCREATE SECURITY INTEGRATION <ENTRA_U2M_SECURITY_INTEGRATION_NAME>
TYPE = EXTERNAL_OAUTH
ENABLED = TRUE
EXTERNAL_OAUTH_TYPE = AZURE
EXTERNAL_OAUTH_ISSUER = 'https://sts.windows.net/<TENANT_ID>/'
EXTERNAL_OAUTH_JWS_KEYS_URL = 'https://login.microsoftonline.com/<TENANT_ID>/discovery/v2.0/keys'
EXTERNAL_OAUTH_AUDIENCE_LIST = ('<SNOWFLAKE_APPLICATION_ID_URI>')
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'email'
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'EMAIL_ADDRESS';L'exemple utilise la revendication et l'attribut de mappage e-mail . Cela exige que l'e-mail de votre utilisateur Snowflake corresponde à l'e-mail du tenant Azure.
SQLALTER USER <SNOWFLAKE_USER> SET EMAIL = '<YOUR_EMAIL>';Il est possible d'utiliser différentes revendications, en fonction de vos besoins.
-
Connectez-vous à votre compte Snowflake en tant qu'utilisateur disposant du rôle
ACCOUNTADMIN. -
Exécutez la commande
CREATE SECURITY INTEGRATION. Par exemple :SQLCREATE OR REPLACE SECURITY INTEGRATION <ENTRA_M2M_SECURITY_INTEGRATION_NAME>
TYPE = EXTERNAL_OAUTH
ENABLED = TRUE
EXTERNAL_OAUTH_TYPE = AZURE
EXTERNAL_OAUTH_ISSUER = 'https://sts.windows.net/<TENANT_ID>/'
EXTERNAL_OAUTH_JWS_KEYS_URL = 'https://login.microsoftonline.com/<TENANT_ID>/discovery/v2.0/keys'
EXTERNAL_OAUTH_AUDIENCE_LIST = ('<SNOWFLAKE_APPLICATION_ID_URI>')
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'sub'
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name';Vous devrez créer un nouvel utilisateur non humain dans Snowflake pour représenter le client qui se connecte à la base de données. Cette étape est requise pour que Snowflake puisse vérifier et mapper un utilisateur à l'application client représentant Databricks dans Azure Entra ID.
SQLCREATE OR REPLACE USER <ENTRA_M2M_CLIENT_USER>
LOGIN_NAME = '<CLIENT_OBJECT_ID>'
DEFAULT_ROLE = 'PUBLIC';
Créer une connexion
Une connexion spécifie un chemin d'accès et des identifiants pour accéder à un système de base de données externe. Pour créer une connexion, vous pouvez utiliser Catalog Explorer ou la commande SQL CREATE CONNECTION dans un Notebook Databricks ou l'éditeur de query Databricks SQL.
Vous pouvez également utiliser l'API REST Databricks ou la CLI Databricks pour créer une connexion. Voir POST /api/2.1/unity-catalog/connections et les commandes Unity Catalog.
Autorisations requises : administrateur du Metastore ou utilisateur disposant du privilège CREATE CONNECTION.
- User-to-Machine flow
- Machine-to-Machine flow - Catalog Explorer
- Machine-to-Machine flow - SQL
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet **Catalogue**, cliquez sur
l'icône **Ajouter** et sélectionnez **Créer une connexion** dans le menu.
-
Sur la page **Principes de base de la connexion** de l’assistant **Configurer la connexion**, saisissez un **Nom de connexion** convivial.
-
Sélectionnez un type de connexion Snowflake.
-
Pour le Type d’authentification , sélectionnez
OAuthdans le menu déroulant. -
Ajouter un commentaire (facultatif).
-
Cliquez sur Suivant .
-
Saisissez les détails d'authentification et de connexion suivants pour votre warehouse Snowflake.
-
Hôte : Par exemple,
snowflake-demo.east-us-2.azure.snowflakecomputing.com -
Port : par exemple,
443 -
Utilisateur : Par exemple,
snowflake-user -
Endpoint d'autorisation :
https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorize -
**Secret du client** : Le secret du client que vous avez enregistré lors de la création de l'intégration de sécurité.
-
Identifiant client : L'identifiant client que vous avez enregistré lors de la création de l'intégration de sécurité.
-
Champ d'application d'OAuth :
api://<RESOURCE_APP_ID>/.default offline_access -
Fournisseur OAuth :
Azure Entra ID -
Connectez-vous avec Microsoft Entra ID : Cliquez et connectez-vous à Snowflake en utilisant vos informations d'identification Microsoft.
Après une connexion réussie, vous êtes redirigé vers l'assistant **Configurer la connexion**.
-
-
Cliquez sur Créer une connexion .
-
Sur la page **Bases du catalogue**, veuillez saisir un nom pour le catalogue étranger. Un catalogue étranger reflète une base de données dans un système de données externe afin que vous puissiez query et gérer l'accès aux données de cette base de données à l'aide de Databricks et de Unity Catalog.
-
(Facultatif) Cliquez sur **Tester la connexion** pour confirmer que cela fonctionne.
-
Cliquez sur **Créer un catalogue**.
-
Sur la page Accès , sélectionnez les workspaces dans lesquels les utilisateurs peuvent accéder au catalogue que vous avez créé. Vous pouvez sélectionner Tous les workspaces ont accès , ou cliquer sur Attribuer aux workspaces , sélectionner les workspaces, puis cliquer sur Attribuer .
-
Modifiez le propriétaire qui pourra gérer l'accès à tous les objets du catalogue. start à taper un principal dans la zone de texte, puis cliquez sur le principal dans les résultats renvoyés.
-
Accordez les **Privilèges** sur le catalogue. Cliquez sur Accorder :
-
Spécifiez les **principals** qui auront accès aux objets dans le catalogue. start à taper un principal dans la zone de texte, puis cliquez sur le principal dans les résultats renvoyés.
-
Sélectionnez les **Préréglages de privilèges** à accorder à chaque principal. Tous les utilisateurs du compte se voient accorder
BROWSEpar default.- Sélectionnez Data Reader dans le menu déroulant pour accorder
readprivilèges sur les objets du catalogue. - Sélectionnez **Data Editor** dans le menu déroulant pour accorder
readlesmodifyprivilèges et sur les objets du catalogue. - Sélectionnez manuellement les privilèges à octroyer.
- Sélectionnez Data Reader dans le menu déroulant pour accorder
-
Cliquez sur Accorder .
-
-
Cliquez sur Suivant .
-
Sur la page Métadonnées , spécifiez les paires clé-valeur de balises. Pour plus d'informations, consultez Appliquer des balises aux objets sécurisables d'Unity Catalog.
-
Ajouter un commentaire (facultatif).
-
Cliquez sur Enregistrer .
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet **Catalogue**, cliquez sur
l'icône **Ajouter** et sélectionnez **Créer une connexion** dans le menu.
-
Sur la page **Principes de base de la connexion** de l’assistant **Configurer la connexion**, saisissez un **Nom de connexion** convivial.
-
Sélectionnez un type de connexion Snowflake.
-
Pour le Type d’authentification , sélectionnez
OAuth Machine to Machinedans le menu déroulant. -
Ajouter un commentaire (facultatif).
-
Cliquez sur Suivant .
-
Saisissez les détails d'authentification suivants pour votre connexion.
- Hôte : Par exemple,
snowflake-demo.east-us-2.azure.snowflakecomputing.com - Port : par exemple,
443 - Endpoint de métadonnées OpenID :
https://login.microsoftonline.com/<TENANT_ID>/v2.0/.well-known/openid-configuration - **Secret du client** : Le secret du client que vous avez enregistré lors de la création de l'intégration de sécurité.
- Identifiant client : L'identifiant client que vous avez enregistré lors de la création de l'intégration de sécurité.
- Champ d'application d'OAuth :
api://<RESOURCE_APP_ID>/.default
- Hôte : Par exemple,
-
Cliquez sur Suivant .
-
Saisissez les détails de connexion suivants pour votre connexion :
- Snowflake warehouse : le nom du warehouse que vous souhaitez utiliser.
- (Facultatif) Hôte proxy : Hôte du proxy utilisé pour se connecter à Snowflake. Vous devez également sélectionner Utiliser un proxy et spécifier le Port du proxy .
- (Facultatif) Utiliser un proxy : pour vous connecter à Snowflake à l'aide d'un serveur proxy.
- (Facultatif) Port du proxy : Port du proxy utilisé pour se connecter à Snowflake. Vous devez également sélectionner **Utiliser un proxy** et spécifier **Hôte proxy**.
- (Facultatif) Rôle Snowflake : Le rôle de sécurité par default à utiliser pour la session après la connexion.
-
Cliquez sur Créer une connexion .
-
Sur la page **Bases du catalogue**, veuillez saisir un nom pour le catalogue étranger. Un catalogue étranger reflète une base de données dans un système de données externe afin que vous puissiez query et gérer l'accès aux données de cette base de données à l'aide de Databricks et de Unity Catalog.
-
(Facultatif) Cliquez sur **Tester la connexion** pour confirmer que cela fonctionne.
-
Cliquez sur **Créer un catalogue**.
-
Sur la page Accès , sélectionnez les workspaces dans lesquels les utilisateurs peuvent accéder au catalogue que vous avez créé. Vous pouvez sélectionner Tous les workspaces ont accès , ou cliquer sur Attribuer aux workspaces , sélectionner les workspaces, puis cliquer sur Attribuer .
-
Modifiez le propriétaire qui pourra gérer l'accès à tous les objets du catalogue. start à taper un principal dans la zone de texte, puis cliquez sur le principal dans les résultats renvoyés.
-
Accordez les **Privilèges** sur le catalogue. Cliquez sur Accorder :
-
Spécifiez les **principals** qui auront accès aux objets dans le catalogue. start à taper un principal dans la zone de texte, puis cliquez sur le principal dans les résultats renvoyés.
-
Sélectionnez les **Préréglages de privilèges** à accorder à chaque principal. Tous les utilisateurs du compte se voient accorder
BROWSEpar default.- Sélectionnez Data Reader dans le menu déroulant pour accorder
readprivilèges sur les objets du catalogue. - Sélectionnez **Data Editor** dans le menu déroulant pour accorder
readlesmodifyprivilèges et sur les objets du catalogue. - Sélectionnez manuellement les privilèges à octroyer.
- Sélectionnez Data Reader dans le menu déroulant pour accorder
-
Cliquez sur Accorder .
-
-
Cliquez sur Suivant .
-
Sur la page Métadonnées , spécifiez les paires clé-valeur de balises. Pour plus d'informations, consultez Appliquer des balises aux objets sécurisables d'Unity Catalog.
-
Ajouter un commentaire (facultatif).
-
Cliquez sur Enregistrer .
Exécutez la commande suivante dans un Notebook ou l'éditeur de requêtes Databricks SQL.
CREATE CONNECTION <connection-name>
TYPE SNOWFLAKE
OPTIONS (
host '<hostname>',
port '443',
sfWarehouse '<warehouse-name>',
client_id '<client-id>',
client_secret '<client-secret>',
openid_metadata_endpoint '<oidc-metadata-endpoint>',
oauth_scope 'api://<RESOURCE_APP_ID>/.default'
);
Vous pouvez ensuite créer un catalogue étranger à l’aide de la nouvelle connexion en exécutant la commande suivante :
CREATE FOREIGN CATALOG <catalog-name>
USING CONNECTION <connection-name>
OPTIONS (database = '<database>');
Options de connexion avancées
Les connexions Snowflake prennent en charge l'option avancée suivante pour les environnements à sortie restreinte ou de connectivité privée :
disableOCSPChecksDéfinissez surtruepour désactiver les vérifications de révocation de certificat OCSP (Online Certificate Status Protocol) dans le driver JDBC Snowflake. La désactivation des vérifications OCSP ignore la vérification de la révocation des certificats.
Autorisez le trafic sortant vers le répondeur OCSP de Snowflake chaque fois que possible. Laissez disableOCSPChecks non défini ou définissez-le à false. Définissez-le sur true uniquement si votre configuration de connectivité privée ou à egress restreint ne peut pas autoriser ce trafic.
Cette option n'est pas affichée dans l'Explorateur de catalogues. Vous pouvez le définir lorsque vous créez la connexion avec SQL :
CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
<connection-options>,
disableOCSPChecks 'true'
);
Pour une connexion existante, utilisez ALTER CONNECTION.
Identifiants de base de données sensibles à la casse
Le champ database du catalogue étranger correspond à un identifiant de base de données Snowflake. Si l'identifiant de la base de données Snowflake n'est pas sensible à la casse, la casse que vous utilisez dans le catalogue étranger <database-name> est conservée. Toutefois, si l'identifiant de la base de données Snowflake est sensible à la casse, vous devez envelopper le catalogue étranger <database-name> entre guillemets pour préserver la casse.
Par exemple :
-
databaseest converti enDATABASE -
"database"est converti endatabase -
"database"""est converti endatabase"Pour échapper un guillemet double, utilisez un autre guillemet double.
-
"database""entraîne une erreur car le guillemet double n'est pas correctement échappé.
Pour plus d'informations, consultez Exigences en matière d'identifiants dans la documentation Snowflake.
Pushdowns pris en charge
Les pushdowns suivants sont pris en charge :
- Filtres
- Projections
- Limite
- Décalage
- Jointures
- Agrégats (Average, Corr, CovPopulation, CovSample, Count, Max, Min, StddevPop, StddevSamp, Sum, VariancePop, VarianceSamp)
- Fonctions (fonctions de chaîne, fonctions mathématiques, fonctions de date, d'heure et de Timestamp, et autres fonctions diverses, telles que Alias, Cast, SortOrder)
- Fonctions de fenêtre (DenseRank, Rank, RowNumber)
- Tri
- Top-N (combinant le tri et la limite en une seule opération), pris en charge dans Databricks Runtime 17.3 et versions supérieures.
Mappages des types de données
Lorsque vous lisez depuis Snowflake vers Spark, les types de données sont mappés comme suit :
Type Snowflake | Type Spark |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Limitations
- L'endpoint OAuth Snowflake doit être accessible depuis les adresses IP du plan de contrôle Databricks. Consultez IP sortantes du plan de contrôle Databricks. Snowflake prend en charge la configuration de politiques réseau au niveau de l'intégration de sécurité, ce qui permet une politique réseau distincte qui active la connectivité directe du plan de contrôle Databricks à l'Endpoint OAuth pour l'autorisation.