Gérer les fournisseurs OpenSharing pour les destinataires de données
Cette page décrit comment utiliser Unity Catalog pour obtenir des informations sur les fournisseurs de données qui partagent des données avec vous à l’aide d’OpenSharing. Il décrit également ce qu’est un objet fournisseur et quand vous pourriez avoir besoin de créer un objet fournisseur dans votre metastore Unity Catalog, une tâche que la plupart des destinataires ne devraient jamais avoir à effectuer.
Les destinataires de données doivent avoir accès à un workspace Databricks activé pour Unity Catalog afin d'utiliser les fonctionnalités décrites. Cette page ne s'applique pas aux destinataires qui n'ont pas de Workspace avec Unity Catalog activé.
Les destinataires doivent-ils créer des objets de fournisseur ?
Dans OpenSharing sur Databricks, le terme « fournisseur » peut désigner à la fois l'organisation qui partage des données avec vous et un objet sécurisable dans le métastore Unity Catalog d'un destinataire qui représente cette organisation. L'existence de cet objet sécurisable dans un métastore Unity Catalog d'un destinataire permet à celui-ci de gérer l'accès de son équipe aux données partagées à l'aide de Unity Catalog.
En tant que destinataire ayant accès à un métastore Unity Catalog, vous n'avez généralement pas besoin de créer d'objets de fournisseur. Ceci est dû au fait que les données devraient être partagées avec vous en utilisant le partage Databricks-to-Databricks, et les objets de fournisseur sont créés automatiquement dans votre métastore Unity Catalog.
Si vous recevez des données d’un fournisseur qui ne les partage pas depuis un workspace Databricks activé pour Unity Catalog, vous pouvez utiliser l’Explorateur de catalogues pour importer le fichier d’identifiants du fournisseur. Consultez Importer un fournisseur et lire les données partagées dans Databricks.
Avant de commencer
Pour gérer les fournisseurs dans votre workspace Databricks :
- Votre workspace doit être activé pour Unity Catalog.
- Pour afficher un fournisseur, vous devez être administrateur du métastore, ou un administrateur du métastore doit vous accorder le privilège
USE PROVIDER. - Pour créer un fournisseur, vous devez être administrateur de métastore, ou un administrateur de métastore doit vous accorder le privilège
CREATE PROVIDER. - Pour mettre à jour un fournisseur, vous devez être le propriétaire de l'objet fournisseur et disposer du privilège
CREATE PROVIDER. Pour plus de détails, consultez Mettre à jour un fournisseur (renommer, changer de propriétaire, commenter).
Pour cette raison, si votre workspace a été créé sans administrateur de métastore, un administrateur de compte Databricks doit accorder le rôle d’administrateur de métastore à un utilisateur ou à un groupe avant de pouvoir travailler avec les objets du fournisseur dans Databricks. Consultez Prise en main d’Unity Catalog et Administrateurs du métastore.
Afficher les fournisseurs
Pour afficher la liste des fournisseurs de données disponibles, vous pouvez utiliser l’Explorateur de catalogues, le CLI de Databricks Unity Catalog ou la commande SHOW PROVIDERS SQL dans un notebook Databricks ou l’éditeur de query Databricks SQL.
**Autorisations requises** : Vous devez disposer du USE PROVIDER privilège pour afficher tous les fournisseurs dans le métastore. Les autres utilisateurs ont accès uniquement aux fournisseurs qu'ils possèdent.
- Catalog Explorer
- SQL
- CLI
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Partagé avec moi , affichez toutes les données partagées avec votre organisation. Pour chaque partage, les détails suivants sont fournis :
- Nom : Le nom de l’organisation, tel que spécifié par le fournisseur.
- Type d’authentification : La méthode de partage utilisée par le fournisseur.
- Propriétaire : le nom ou l'adresse e-mail du fournisseur.
- Date de création : la date et l'heure de création du partage.
- Description : description du partage.
Exécutez la commande suivante dans un Notebook ou dans l'éditeur de query Databricks SQL. Vous pouvez éventuellement remplacer <pattern> par un LIKE prédicat.
SHOW PROVIDERS [LIKE <pattern>];
Pour plus de détails sur SHOW PROVIDERS, consultez SHOW PROVIDERS.
Exécutez la commande suivante à l'aide de l'CLI Databricks.
databricks providers list
Afficher les détails du fournisseur
Pour afficher les détails d'un fournisseur, vous pouvez utiliser l'Explorateur de catalogues, l'interface de ligne de commande (CLI) Databricks Unity Catalog ou la commande SQL DESCRIBE PROVIDER dans un Notebook Databricks ou l'éditeur de requêtes Databricks SQL.
Autorisations requises : Administrateur de métastore, utilisateur avec le privilège USE PROVIDER, ou le propriétaire de l'objet fournisseur.
Les détails incluent :
- Partages partagés par le fournisseur (voir Afficher les partages qu'un fournisseur a partagés avec vous).
- Le créateur du fournisseur, le Timestamp de création, les commentaires et le type d'authentification (
TOKENouDATABRICKS).TOKENreprésente les fournisseurs qui ont partagé des données avec vous à l’aide du protocole de partage Databricks-to-Open.DATABRICKSreprésente les fournisseurs qui ont partagé des données avec vous à l’aide du protocole de partage Databricks-to-Databricks. - Si le fournisseur utilise le partage Databricks-to-Databricks : le cloud, la région et l'ID du métastore Unity Catalog du fournisseur.
- Si le fournisseur utilise Databricks-to-OpenSharing : votre endpoint de profil de destinataire, qui est l'endroit où le serveur de partage OpenSharing est hébergé.
- Catalog Explorer
- SQL
- CLI
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Shared with me tab, trouvez et sélectionnez le fournisseur.
Exécutez la commande suivante dans un Notebook ou l'éditeur de requêtes Databricks SQL.
DESC PROVIDER <provider-name>;
Pour plus de détails sur DESC PROVIDER, consultez DESCRIBE PROVIDER.
Exécutez la commande suivante à l'aide de l'CLI Databricks.
databricks providers get <provider-name>
Afficher les partages qu'un fournisseur a partagés avec vous
Pour afficher les partages qu'un fournisseur a partagés avec vous, vous pouvez utiliser l'Explorateur de catalogues, le CLI Databricks Unity Catalog, ou la commande SQL SHOW SHARES IN PROVIDER dans un Notebook Databricks ou l'éditeur de query Databricks SQL.
Autorisations requises : Administrateur de métastore, utilisateur avec le privilège USE PROVIDER, ou le propriétaire de l'objet fournisseur.
- Catalog Explorer
- SQL
- CLI
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Shared with me tab, trouvez et sélectionnez le fournisseur.
Exécutez la commande suivante dans un Notebook ou dans l'éditeur de query Databricks SQL. Vous pouvez éventuellement remplacer <pattern> par un LIKE prédicat.
SHOW SHARES IN PROVIDER [LIKE <pattern>];
Pour plus de détails sur SHOW SHARES IN PROVIDER, consultez SHOW SHARES IN PROVIDER.
Exécutez la commande suivante à l'aide de l'CLI Databricks.
databricks providers list-shares <provider-name>
Mettre à jour un fournisseur (renommer, changer de propriétaire, commenter)
Vous pouvez utiliser Catalog Explorer, le CLI Databricks Unity Catalog, ou la commande SQL ALTER PROVIDER dans un Notebook Databricks ou l'éditeur de query Databricks SQL pour modifier l'objet de fournisseur dans votre metastore Unity Catalog :
- Renommer le fournisseur pour modifier la façon dont les utilisateurs voient l'objet fournisseur dans leurs interfaces Databricks.
- Changer le propriétaire de l'objet fournisseur.
- Ajouter ou modifier des commentaires.
Autorisations requises : Vous devez être le propriétaire de l'objet fournisseur pour mettre à jour le propriétaire. Vous devez être un administrateur du métastore (ou un utilisateur avec le privilège CREATE PROVIDER) et propriétaire du fournisseur pour mettre à jour le nom du fournisseur. Vous devez être le propriétaire pour mettre à jour le commentaire. Le propriétaire initial est l'administrateur du métastore.
- Catalog Explorer
- SQL
- CLI
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Shared with me tab, trouvez et sélectionnez le fournisseur.
-
Sur la page des détails, mettez à jour le propriétaire, le commentaire ou le nom du fournisseur.
Pour renommer un fournisseur, cliquez sur le menu kebab
et sélectionnez Renommer .
Exécutez la commande suivante dans un Notebook ou l'éditeur de requêtes Databricks SQL.
ALTER PROVIDER <provider-name> RENAME TO <new-provider-name>
OWNER TO <new-owner>
COMMENT "<comment>";
Pour plus de détails sur ALTER PROVIDER, consultez ALTER PROVIDER.
Exécutez la commande suivante à l’aide du CLI Databricks. Remplacez <provider-name> par le nom du fournisseur actuel et <new-provider-name> par le nouveau nom.
databricks providers update <provider-name> /
--new-name <new-provider-name> /
--comment "<new comment>" /
--owner <new-owner-name>
Faire pivoter les identifiants pour les destinataires ouverts
Cette section s'applique aux objets fournisseur avec le type d'authentification TOKEN, OAUTH_CLIENT_CREDENTIALS ou OIDC_FEDERATION. Les fournisseurs Databricks-to-Databricks (type d'authentification DATABRICKS) pivotent automatiquement. Si vous accédez aux données sans objet fournisseur, par exemple, en utilisant le connecteur delta-sharing Python ou Spark, appliquez le nouveau fichier d'informations d'identification dans la configuration de votre connecteur. Voir Lire les données partagées avec des jetons d'authentification.
Un fournisseur utilisant le protocole de partage Databricks-to-Open peut renouveler votre jeton d'accès et vous envoyer un nouveau fichier d'identifiants. Lorsque cela se produit, utilisez l'API REST Databricks pour mettre à jour l'objet fournisseur. Ne supprimez pas et ne recréez pas le fournisseur pour appliquer un nouvel identifiant. Les catalogues sont liés à l'ID interne du fournisseur, pas à son nom. Recréer un fournisseur avec le même nom rompt la connexion du catalogue aux données partagées.
ALTER PROVIDER, l'interface CLI Databricks et Catalog Explorer ne prennent pas en charge la mise à jour des identifiants du fournisseur.
Mettez à jour l'identifiant
Envoyez une requête PATCH à l'Endpoint du fournisseur avec le contenu du nouveau fichier d'identifiants dans le champ recipient_profile_str.
**Autorisations requises** : Propriétaire de l'objet du fournisseur ou administrateur du metastore.
- Python
- curl
Exécutez ce qui suit depuis un Notebook sur le Workspace du destinataire. Remplacez <provider-name> par le nom de l'objet fournisseur dans votre metastore, et mettez à jour new_profile avec les valeurs du nouveau fichier d'informations d'identification.
import json
import requests
new_profile = {
"shareCredentialsVersion": 1,
"bearerToken": "<new-bearer-token>",
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>",
}
token = (
dbutils.notebook.entry_point.getDbutils()
.notebook()
.getContext()
.apiToken()
.get()
)
workspace_url = spark.conf.get("spark.databricks.workspaceUrl")
response = requests.patch(
f"https://{workspace_url}/api/2.1/unity-catalog/providers/<provider-name>",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
json={"recipient_profile_str": json.dumps(new_profile)},
)
print(response.status_code)
print(response.json())
curl --request PATCH \
--header "Authorization: Bearer $DATABRICKS_TOKEN" \
--header "Content-Type: application/json" \
--url "https://<databricks-instance>/api/2.1/unity-catalog/providers/<provider-name>" \
--data '{
"recipient_profile_str": "<contents of the new credential file>"
}'
Une rotation réussie renvoie la réponse suivante avec les métadonnées mises à jour du fournisseur.
{
"name": "<provider-name>",
"authentication_type": "TOKEN",
"owner": "user@example.com",
"recipient_profile": {
"share_credentials_version": 1,
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>"
},
"updated_at": 1775804332820,
"updated_by": "user@example.com",
"id": "abcd2a5b-c18e-46eb-ae11-3056cfe99bef"
}
Pour plus de détails, consultez l'API REST de mise à jour d'un fournisseur.
Vérifier la rotation
Confirmez que le catalogue, les schémas et les tables sont toujours accessibles. Le nom du catalogue doit être le même qu'avant la rotation.
- Catalog Explorer
- SQL
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Partagé avec moi , trouvez votre fournisseur.
Les bannières d'erreur précédentes devraient avoir disparu et les partages devraient être à nouveau listés. Le catalogue listé devrait être le même qu'auparavant.
Exécutez le code SQL suivant dans un notebook ou l'éditeur de query Databricks SQL.
-- The catalog name should match what it was before rotation
SHOW CATALOGS;
-- Schemas in the shared catalog should still appear
SHOW SCHEMAS IN <catalog-name>;
-- Tables should still appear
SHOW TABLES IN <catalog-name>.<schema-name>;
-- A read from a shared table should return data
SELECT * FROM <catalog-name>.<schema-name>.<table-name> LIMIT 10;
Si les requêtes réussissent, la rotation est terminée et toutes les requêtes, jobs et tableaux de bord existants continuent de fonctionner.
Dépannage
Erreur | Corriger |
|---|---|
La requête renvoie | Vous devez être le propriétaire du fournisseur ou un administrateur de metastore pour faire pivoter les informations d'identification. Demandez à un administrateur de metastore d'appliquer la rotation ou de transférer la propriété. Voir Mettre à jour un fournisseur (renommer, changer le propriétaire, commenter). |
La requête renvoie | Le nom du fournisseur est incorrect. Exécutez |
La requête renvoie | L'API met à jour les informations d'identification uniquement pour les fournisseurs |
Les query renvoient | Le nom du catalogue pourrait être incorrect ou la liaison entre le catalogue et le fournisseur pourrait être interrompue. Exécutez |
L'Explorateur de catalogues affiche des données périmées ou des erreurs après une | Vous consultez des résultats mis en cache d'avant la rotation. refresh la page ou attendez quelques minutes. |
Supprimer un fournisseur
Pour supprimer un fournisseur, vous pouvez utiliser l'Explorateur de catalogues, l'interface de ligne de commande Databricks (CLI) ou la commande DROP PROVIDER SQL dans un Notebook Databricks ou l'éditeur de query Databricks SQL. Vous devez être le propriétaire de l'objet fournisseur pour supprimer le fournisseur.
Lorsque vous supprimez un fournisseur, vous et les utilisateurs de votre organisation (le destinataire) ne pouvez plus accéder aux données partagées par le fournisseur.
Autorisations requises : Propriétaire de l’objet fournisseur.
- Catalog Explorer
- SQL
- CLI
-
Dans votre workspace Databricks, cliquez sur
Catalogue .
-
En haut du volet Catalog , cliquez sur l'icône en forme d'engrenage
et sélectionnez OpenSharing .
Sinon, dans le coin supérieur droit, cliquez sur **Partager > OpenSharing**.
-
Dans l'onglet Shared with me tab, trouvez et sélectionnez le fournisseur.
-
Cliquez sur le menu kebab
et sélectionnez Supprimer .
-
Dans la boîte de dialogue de confirmation, cliquez sur Supprimer .
Exécutez la commande suivante dans un Notebook ou l'éditeur de requêtes Databricks SQL.
DROP PROVIDER [IF EXISTS] <provider-name>;
Pour plus de détails sur DROP PROVIDER, consultez DROP PROVIDER.
Exécutez la commande suivante à l'aide de l'CLI Databricks.
databricks providers delete <provider-name>
Si l'opération réussit, aucun résultat n'est renvoyé.