Configurer une intégration de catalogue pour Unity Catalog¶
Use the CREATE CATALOG INTEGRATION (Apache Iceberg™ REST) command to create a REST catalog integration that uses vended credentials or an external volume to connect to Databricks Unity Catalog.
Note
Pour configurer une intégration de catalogue pour se connecter au catalogue Databricks Unity via une adresse IP privée plutôt que sur l’Internet public, consultez Configurer une intégration de catalogue Apache Iceberg™ REST avec une connexion privée sortante.
Pour un tutoriel qui explique comment connecter Snowflake à un catalogue dans Databricks Unity Catalog en utilisant une base de données liée à un catalogue accessible en écriture avec des identifiants de connexion fournis par le catalogue, consultez Tutoriel : Configurer l’accès bidirectionnel aux tables Apache Iceberg™ dans Databricks Unity Catalog.
Vous pouvez créer une intégration de catalogue pour Unity Catalog où l’espace de travail Databricks est hébergé sur l’un des fournisseurs Cloud suivants :
AWS
Azure
Google Cloud
You can configure a catalog integration for Unity Catalog that uses OAuth or bearer authentication:
Configure an OAuth catalog integration¶
Étape 1 : Récupérer l’URL de votre espace de travail Databricks¶
L’URL de votre espace de travail Databricks est l’URL que vous utilisez pour accéder à votre espace de travail Databricks. Vous devez trouver cette URL, car vous la spécifierez plus tard lorsque vous créerez une intégration de catalogue.
Récupérez l’URL de votre espace de travail Databricks.
Pour obtenir des instructions sur la manière de trouver cette URL, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Noms des instances d’espace de travail, URLs et IDs
Azure Databricks : Azure Databricks : Déterminer l’URL par espace de travail
Databricks sur Google Cloud : Databricks sur Google Cloud : Noms des instances d’espace de travail, URLs et IDs
Copiez votre URL d’espace de travail Databricks dans un éditeur de texte.
Étape 2 : Ajouter un principal de service dans Databricks¶
Pour ajouter un principal de service, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Ajouter des principaux de service à votre compte
Azure Databricks : Azure Databricks : Ajouter des principaux de service à votre compte
Databricks sur Google Cloud : Databricks sur Google Cloud : Ajouter des principaux de service à votre compte
Copiez la valeur ID d’application pour votre principal de service dans un éditeur de texte et stockez-la de manière sécurisée. Vous spécifierez cette valeur ultérieurement, lorsque vous créerez une intégration de catalogue dans Snowflake.
Étape 3 : Créer un secret OAuth pour votre principal de service¶
Pour créer un secret OAuth pour votre principal de service, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Créer un secret OAuth
Azure Databricks : Azure Databricks : Créer un secret OAuth
Databricks sur Google Cloud : Databricks sur Google Cloud : Créer un secret OAuth
Copiez la valeur Secret que vous avez générée dans un éditeur de texte et stockez-la de manière sécurisée. Vous spécifierez cette valeur ultérieurement, lorsque vous créerez une intégration de catalogue dans Snowflake.
Important
Le secret du client n’est affiché qu’une seule fois. Assurez-vous de le copier avant de fermer la boîte de dialogue.
Étape 4 : Activer l’accès à Snowflake à votre catalogue dans Unity Catalog¶
À cette étape, vous utilisez Databricks pour permettre à Snowflake d’accéder à votre catalogue dans Unity Catalog.
Pour permettre à Snowflake d’accéder à votre catalogue dans Unity Catalog par le biais d’identifiants de connexion fournis, tout d’abord, au niveau du metastore, vous devez activer l’accès aux données externes sur le metastore. Ensuite, vous devez accorder à votre principal de service des privilèges Unity Catalog sur votre catalogue.
Activer l’accès aux données externes sur le metastore (identifiants de connexion fournis uniquement)¶
Si vous créez une intégration de catalogue qui utilise des identifiants de connexion fournis, vous devez activer l’accès aux données externes sur le metastore dans Databricks. Si vous créez une intégration de catalogue qui utilise un volume externe, vous pouvez ignorer cette étape.
Pour obtenir des instructions sur la manière d’activer l’accès aux données externes sur le metastore, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Activer l’accès aux données externes sur le metastore
Azure Databricks : Azure Databricks : Activer l’accès aux données externes sur le metastore
Databricks sur Google Cloud : Databricks sur Google Cloud : Activer l’accès aux données externes sur le metastore
Attribuer votre principal de service à un espace de travail¶
Ensuite, vous devez attribuer votre principal de service à votre espace de travail Databricks.
Pour obtenir des instructions, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Attribuer un principal de service à un espace de travail
Azure Databricks : Azure Databricks : Attribuer un principal de service à un espace de travail
Databricks sur Google Cloud : Databricks sur Google Cloud : Attribuer un principal de service à un espace de travail
Accorder à votre principal de service l’accès à votre catalogue¶
Ensuite, vous devez accorder à votre principal de service les privilèges Unity Catalog. Vous devez accorder ces privilèges à votre principal de service pour permettre à Snowflake d’accéder au catalogue en fonction des privilèges que vous spécifiez.
Privilèges pour les fonctionnalité complètes¶
Pour activer les fonctionnalités complètes dans Snowflake, vous devez accorder les privilèges suivants :
Note
Si vous souhaitez restreindre l’accès à Snowflake, consultez Privilèges de Unity Catalog et objets sécurisables dans la documentation Databricks.
Privilège |
Description |
|---|---|
|
Permet à Unity Catalog de générer et de fournir des identifiants de connexion temporaires et limités à Snowflake pour accéder aux données des tables dans le stockage Cloud. Note Ce privilège n’est requis que lorsque vous créez une intégration de catalogue qui utilise des identifiants de connexion fournis. Il n’est pas requis lorsque vous créez une intégration de catalogue qui utilise un volume externe. Par conséquent, si vous utilisez un volume externe, supprimez-le de l’exemple de bloc de code. |
|
Permet à Snowflake d’ajouter, de mettre à jour et de supprimer des données dans une table. |
|
Permet à Snowflake d’interroger les tables et d’accéder aux métadonnées des tables. Nécessaire pour toutes les opérations dans Snowflake, y compris la lecture de données et la découverte de tables dans la base de données liée au catalogue. |
|
Permet à Snowflake d’accéder au catalogue. Nécessaire pour se connecter à tous les objets dans Unity Catalog et interagir avec eux. |
|
Permet à Snowflake d’accéder aux schémas (espaces de noms) à l’intérieur du catalogue. Nécessaire pour afficher et travailler avec des tables dans des schémas spécifiques. |
Accorder des privilèges¶
Vous pouvez accorder des privilèges en utilisant l’Explorateur de catalogues ou SQL.
Pour accorder des autorisations en utilisant l’Explorateur de catalogues Databricks, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Accorder des autorisations sur un objet
Azure Databricks : Azure Databricks : Accorder des autorisations sur un objet
Databricks sur Google Cloud : Databricks sur Google Cloud : Accorder des autorisations sur un objet
Important
Dans le champ Principals, vous devez saisir le nom de votre principal de service, et non l’adresse e-mail d’un utilisateur ou le nom d’un groupe.
Pour accorder à votre principal de service les privilèges Unity Catalog, vous devez spécifier l’ID d’application pour votre principal de service.
Par exemple, l’instruction suivante accorde les privilèges du catalogue example_sales_catalog à un principal de service avec un ID d’application correspondant à 1aaa1a1a-11a1-1111-1111-1a11111aaa1a.
GRANT EXTERNAL USE SCHEMA ON CATALOG example_sales_catalog TO `1aaa1a1a-11a1-1111-1111-1a11111aaa1a`;
GRANT MODIFY ON CATALOG example_sales_catalog TO `1aaa1a1a-11a1-1111-1111-1a11111aaa1a`;
GRANT SELECT ON CATALOG example_sales_catalog TO `1aaa1a1a-11a1-1111-1111-1a11111aaa1a`;
GRANT USE CATALOG ON CATALOG example_sales_catalog TO `1aaa1a1a-11a1-1111-1111-1a11111aaa1a`;
GRANT USE SCHEMA ON CATALOG example_sales_catalog TO `1aaa1a1a-11a1-1111-1111-1a11111aaa1a`;
Pour plus d’informations sur la manière d’accorder à votre principal de service les privilèges Unity Catalog, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Accordez des privilèges Unity Catalog et Databricks sur AWS à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Azure Databricks : Azure Databricks : Accordez des privilèges Unity Catalog et Azure Databricks à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Databricks sur Google Cloud : Databricks sur Google Cloud : Accordez des privilèges Unity Catalog et Databricks sur Google Cloud à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Étape 5 : Créer une intégration de catalogue¶
L’exemple suivant crée une intégration au catalogue REST utilisant OAuth :
CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_oauth_vended_credentials
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
REST_CONFIG = (
CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg-rest'
CATALOG_NAME = '<catalog_name>'
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_TOKEN_URI = '<databricks_workspace_url>/oidc/v1/token'
OAUTH_CLIENT_ID = '<client_id>'
OAUTH_CLIENT_SECRET = '<oauth_secret>'
OAUTH_ALLOWED_SCOPES = ('all-apis')
)
ENABLED = TRUE;
Où :
<databricks_workspace_url>spécifie l’URL pour votre espace de travail Databricks. Pour trouver cette URL, consultez Étape 1 : Récupérer l’URL de votre espace de travail Databricks.Voici un exemple d’URL d’espace de travail Databricks pour chaque plateforme Cloud :
Databricks sur AWS :
https://dbc-a1a1a1a1-a1a1.cloud.databricks.comAzure Databricks :
https://adb-1111111111111111.1.azuredatabricks.netDatabricks sur Google Cloud :
https://1111111111111111.1.gcp.databricks.com
<catalog_name>spécifie le nom de votre catalogue dans Unity Catalog auquel vous souhaitez connecter Snowflake. Vous pouvez trouver ce nom dans l’espace de travail Databricks sous Data > Catalogs.ACCESS_DELEGATION_MODE = VENDED_CREDENTIALSconfigure l’intégration de catalogue pour utiliser des identifiants de connexion fournis à partir de Unity Catalog.Note
Si vous créez une intégration de catalogue qui utilise un volume externe, vous devez exclure le paramètre
ACCESS_DELEGATION_MODE.<client_id>spécifie l’ID du client OAuth pour votre principal de service Databricks. Vous avez copié cette valeur lorsque vous avez ajouté un principal de service dans Databricks.Note
Dans Databricks, cette valeur est appelée ID d’application, et non ID de client.
<oauth_secret>spécifie le secret OAuth pour votre principal de service Databricks. Vous avez copié cette valeur lorsque vous avez créé un secret OAuth pour votre principal de service.
Étape 6 : Vérifier l’intégration de votre catalogue¶
Pour vérifier la configuration pour votre intégration de catalogue, appelez la fonction SYSTEM$VERIFY_CATALOG_INTEGRATION.
Pour obtenir plus d’informations, y compris un exemple, consultez Utiliser SYSTEM$VERIFY_CATALOG_INTEGRATION pour vérifier la configuration de votre intégration de catalogue.
Prochaines étapes¶
Après avoir configuré une intégration de catalogue pour votre catalogue dans Unity Catalog, utilisez la commande CREATE DATABASE (liée à un catalogue) pour créer une base de données liée à un catalogue en spécifiant l’intégration de catalogue que vous avez créée. Snowflake se synchronise ensuite automatiquement avec votre catalogue dans Unity Catalog pour détecter les schémas et les tables Iceberg, et enregistre les tables distantes dans la base de données liée au catalogue.
Lorsque vous créez votre base de données liée au catalogue, vous spécifiez l’intégration du catalogue.
For example:
CREATE OR REPLACE DATABASE my_linked_db
LINKED_CATALOG = (
CATALOG = 'unity_catalog_int_oauth_vended_credentials'
);
Note
Si vous utilisez un volume externe, vous devez inclure le paramètre
EXTERNAL_VOLUMEavec votre instruction CREATE DATABASE. Pour plus d’informations, voir CREATE DATABASE (liée à un catalogue).Pour plus d’informations sur l’utilisation de bases de données liées à un catalogue, consultez Utiliser une base de données liée à un catalogue pour les tables Apache Iceberg™.
Configure a bearer token catalog integration¶
Étape 1 : Récupérer l’URL de votre espace de travail Databricks¶
L’URL de votre espace de travail Databricks est l’URL que vous utilisez pour accéder à votre espace de travail Databricks. Vous devez trouver cette URL, car vous la spécifierez plus tard lorsque vous créerez une intégration de catalogue.
Récupérez l’URL de votre espace de travail Databricks.
Pour obtenir des instructions sur la manière de trouver cette URL, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Noms des instances d’espace de travail, URLs et IDs
Azure Databricks : Azure Databricks : Déterminer l’URL par espace de travail
Databricks sur Google Cloud : Databricks sur Google Cloud : Noms des instances d’espace de travail, URLs et IDs
Copiez votre URL d’espace de travail Databricks dans un éditeur de texte.
Étape 2 : Ajouter un jeton d’accès personnel (PAT) dans Databricks¶
Vous devez ajouter un jeton d’accès personnel (PAT), car vous devez le spécifier lorsque vous créez une intégration de catalogue qui utilise un jeton du porteur pour l’authentification.
Pour ajouter un PAT dans Databricks, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : S’authentifier avec des jetons d’accès personnel Databricks (hérités)
Azure Databricks : Azure Databricks : S’authentifier avec des jetons d’accès personnel Azure Databricks (hérités)
Databricks sur Google Cloud : Databricks sur Google Cloud : S’authentifier avec des jetons d’accès personnel Databricks (hérités)
Copiez la valeur de votre PAT dans un éditeur de texte et stockez-la en toute sécurité. Vous spécifierez cette valeur ultérieurement, lorsque vous créerez une intégration de catalogue dans Snowflake.
Étape 3 : Activer l’accès à Snowflake à votre catalogue dans Unity Catalog¶
À cette étape, vous utilisez Databricks pour permettre à Snowflake d’accéder à votre catalogue dans Unity Catalog.
Pour permettre à Snowflake d’accéder à votre catalogue dans Unity Catalog par le biais d’identifiants de connexion fournis, tout d’abord, au niveau du metastore, vous devez activer l’accès aux données externes sur le metastore. Ensuite, vous devez accorder à votre utilisateur Databricks les privilèges Unity Catalog pour votre catalogue, dont votre PAT hérite.
Activer l’accès aux données externes sur le metastore (identifiants de connexion fournis uniquement)¶
Si vous créez une intégration de catalogue qui utilise des identifiants de connexion fournis, vous devez activer l’accès aux données externes sur le metastore dans Databricks. Si vous créez une intégration de catalogue qui utilise un volume externe, vous pouvez ignorer cette étape.
Pour obtenir des instructions sur la manière d’activer l’accès aux données externes sur le metastore, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Activer l’accès aux données externes sur le metastore
Azure Databricks : Azure Databricks : Activer l’accès aux données externes sur le metastore
Databricks sur Google Cloud : Databricks sur Google Cloud : Activer l’accès aux données externes sur le metastore
Accorder à votre utilisateur Databricks l’accès à votre catalogue¶
Ensuite, vous devez accorder à votre utilisateur Databricks les privilèges Unity Catalog. Vous devez accorder ces privilèges à votre utilisateur Databricks pour permettre à Snowflake d’accéder au catalogue en fonction des privilèges que vous spécifiez. Lorsque vous utilisez un PAT pour l’authentification, il hérite de tous les privilèges accordés sur l’utilisateur Databricks qui a créé le PAT.
Privilèges pour les fonctionnalité complètes¶
Pour activer les fonctionnalités complètes dans Snowflake, vous devez accorder les privilèges suivants :
Note
Si vous souhaitez restreindre l’accès à Snowflake, consultez Privilèges de Unity Catalog et objets sécurisables dans la documentation Databricks.
Privilège |
Description |
|---|---|
|
Permet à Unity Catalog de générer et de fournir des identifiants de connexion temporaires et limités à Snowflake pour accéder aux données des tables dans le stockage Cloud. Note Ce privilège n’est requis que lorsque vous créez une intégration de catalogue qui utilise des identifiants de connexion fournis. Il n’est pas requis lorsque vous créez une intégration de catalogue qui utilise un volume externe. Par conséquent, si vous utilisez un volume externe, supprimez-le de l’exemple de bloc de code. |
|
Permet à Snowflake d’ajouter, de mettre à jour et de supprimer des données dans une table. |
|
Permet à Snowflake d’interroger les tables et d’accéder aux métadonnées des tables. Nécessaire pour toutes les opérations dans Snowflake, y compris la lecture de données et la découverte de tables dans la base de données liée au catalogue. |
|
Permet à Snowflake d’accéder au catalogue. Nécessaire pour se connecter à tous les objets dans Unity Catalog et interagir avec eux. |
|
Permet à Snowflake d’accéder aux schémas (espaces de noms) à l’intérieur du catalogue. Nécessaire pour afficher et travailler avec des tables dans des schémas spécifiques. |
Accorder des privilèges¶
Vous pouvez accorder des privilèges en utilisant l’Explorateur de catalogues ou SQL.
Pour accorder des autorisations en utilisant l’Explorateur de catalogues Databricks, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Accorder des autorisations sur un objet
Azure Databricks : Azure Databricks : Accorder des autorisations sur un objet
Databricks sur Google Cloud : Databricks sur Google Cloud : Accorder des autorisations sur un objet
Pour accorder à votre utilisateur Databricks des privilèges Unity Catalog, vous devez spécifier l’ID d’utilisateur pour cet utilisateur de Databricks.
Par exemple, l’instruction suivante accorde les privilèges du catalogue example_sales_catalog à l’utilisateur Databricks j.smith@example.com.
GRANT EXTERNAL USE SCHEMA ON CATALOG example_sales_catalog TO `j.smith@example.com`;
GRANT MODIFY ON CATALOG example_sales_catalog TO `j.smith@example.com`;
GRANT SELECT ON CATALOG example_sales_catalog TO `j.smith@example.com`;
GRANT USE CATALOG ON CATALOG example_sales_catalog TO `j.smith@example.com`;
GRANT USE SCHEMA ON CATALOG example_sales_catalog TO `j.smith@example.com`;
Pour plus d’informations sur la manière d’accorder à votre utilisateur Databricks les privilèges Unity Catalog, consultez la rubrique correspondant à l’endroit où votre compte Databricks est hébergé :
Databricks sur AWS : Databricks sur AWS : Accordez des privilèges Unity Catalog et Databricks sur AWS à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Azure Databricks : Azure Databricks : Accordez des privilèges Unity Catalog et Azure Databricks à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Databricks sur Google Cloud : Databricks sur Google Cloud : Accordez des privilèges Unity Catalog et Databricks sur Google Cloud à un principal de service : Accorder des autorisations sur un objet en utilisant SQL
Étape 4 : Créer une intégration de catalogue¶
The following example creates a REST catalog integration that uses a bearer token with vended credentials:
CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_bearer_vended_credentials
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
REST_CONFIG = (
CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg-rest'
CATALOG_NAME = '<catalog_name>'
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
)
REST_AUTHENTICATION = (
TYPE = BEARER
BEARER_TOKEN = '<personal_access_token>'
)
ENABLED = TRUE;
Où :
<databricks_workspace_url>spécifie l’URL pour votre espace de travail Databricks. Pour trouver cette URL, consultez Étape 1 : Récupérer l’URL de votre espace de travail Databricks.Voici un exemple d’URL d’espace de travail Databricks pour chaque plateforme Cloud :
Databricks sur AWS :
https://dbc-a1a1a1a1-a1a1.cloud.databricks.comAzure Databricks :
https://adb-1111111111111111.1.azuredatabricks.netDatabricks sur Google Cloud :
https://1111111111111111.1.gcp.databricks.com
<catalog_name>spécifie le nom de votre catalogue dans Unity Catalog auquel vous souhaitez connecter Snowflake. Vous pouvez trouver ce nom dans l’espace de travail Databricks sous Data > Catalogs.ACCESS_DELEGATION_MODE = VENDED_CREDENTIALSconfigure l’intégration de catalogue pour utiliser des identifiants de connexion fournis à partir de Unity Catalog.Note
Si vous créez une intégration de catalogue qui utilise un volume externe, vous devez exclure le paramètre
ACCESS_DELEGATION_MODE.<personal_access_token>specifies your Databricks personal access token (PAT). An example of a PAT isaaaa111aaaa111a1a1a1a111111a111a1111.
Étape 5 : Vérifier l’intégration de votre catalogue¶
Pour vérifier la configuration pour votre intégration de catalogue, appelez la fonction SYSTEM$VERIFY_CATALOG_INTEGRATION.
Pour plus d’informations, voir Utiliser SYSTEM$VERIFY_CATALOG_INTEGRATION pour vérifier la configuration de l’intégration de votre catalogue.
Prochaines étapes¶
Après avoir configuré une intégration de catalogue pour votre catalogue dans Unity Catalog, utilisez la commande CREATE DATABASE (liée à un catalogue) pour créer une base de données liée à un catalogue en spécifiant l’intégration de catalogue que vous avez créée. Snowflake se synchronise ensuite automatiquement avec votre catalogue dans Unity Catalog pour détecter les schémas et les tables Iceberg, et enregistre les tables distantes dans la base de données liée au catalogue.
Lorsque vous créez votre base de données liée au catalogue, vous spécifiez l’intégration du catalogue.
For example:
CREATE OR REPLACE DATABASE my_linked_db
LINKED_CATALOG = (
CATALOG = 'unity_catalog_int_bearer_vended_credentials'
);
Note
Si vous utilisez un volume externe, vous devez inclure le paramètre
EXTERNAL_VOLUMEavec votre instruction CREATE DATABASE. Pour plus d’informations, voir CREATE DATABASE (liée à un catalogue).Pour plus d’informations sur l’utilisation de bases de données liées à un catalogue, consultez Utiliser une base de données liée à un catalogue pour les tables Apache Iceberg™.