Gérer les fournisseurs OpenSharing pour les destinataires de données

Cette page explique 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 devrez peut-être créer un objet fournisseur dans votre metastore Unity Catalog, tâche que la plupart des destinataires ne doivent jamais avoir à effectuer.

Important

Les destinataires de données doivent avoir accès à un espace de travail Databricks activé pour que Unity Catalog utilise les fonctionnalités décrites. Cette page ne s'applique pas aux destinataires qui n'ont pas d'espaces de travail avec le catalogue Unity activé.

Les destinataires doivent-ils créer des objets fournisseur ?

Dans OpenSharing sur Databricks, le terme « fournisseur » peut signifier à la fois l’organisation qui partage des données avec vous et un objet sécurisable dans le metastore Unity Catalog d’un destinataire qui représente cette organisation. L’existence de cet objet sécurisable dans le metastore Unity Catalog d’un destinataire permet aux destinataires de gérer l’accès de leur équipe aux données partagées à l’aide de Unity Catalog.

En tant que destinataire ayant accès à un metastore Unity Catalog, vous n’avez généralement pas besoin de créer d’objets fournisseur. En effet, les données doivent être partagées avec vous via le partage Databricks-to-Databricks et les objets fournisseur sont créés automatiquement dans votre metastore Unity Catalog.

Note

Si vous recevez des données d'un fournisseur qui ne partage pas à partir d'un espace de travail Azure Databricks compatible avec le catalogue Unity, vous pouvez utiliser l'Explorateur de catalogues pour importer le fichier d'informations d'identification du fournisseur. Consultez Importer un fournisseur et lire des données partagées dans Azure Databricks.

Avant de commencer

Pour gérer les fournisseurs dans votre espace de travail Azure Databricks :

  • Vous devez activer votre espace de travail pour Unity Catalog.
  • Pour voir un fournisseur, vous devez être administrateur du metastore, ou un administrateur du metastore doit vous accorder le privilège USE PROVIDER.
  • Pour créer un fournisseur, vous devez être administrateur du metastore, ou un administrateur du metastore 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 d’informations, consultez Mettre à jour un fournisseur (renommer, changer de propriétaire, ajouter un commentaire).

Pour cette raison, si votre espace de travail a été créé sans administrateur de metastore, un administrateur de compte Azure Databricks doit accorder à un utilisateur ou à un groupe le rôle d’administrateur de metastore pour vous permettre d’utiliser des objets fournisseur dans Azure Databricks. Consultez Découvrez Unity Catalog et Administrateurs du metastore.

Afficher les fournisseurs

Pour afficher la liste des fournisseurs de données disponibles, vous pouvez utiliser l’Explorateur de catalogues, l’interface CLI du catalogue Databricks Unity ou la commande SHOW PROVIDERS SQL dans un bloc-notes Azure Databricks ou l’éditeur de requête Databricks SQL.

Autorisations requises : vous devez disposer du USE PROVIDER privilège d’afficher tous les fournisseurs dans le metastore. Les autres utilisateurs n’ont accès qu’aux fournisseurs qu’ils possèdent.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous 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: Nom de l’organisation, tel que spécifié par le fournisseur.
    • Type d’authentification : Méthode de partage utilisée par le fournisseur.
    • Propriétaire: Nom ou e-mail du fournisseur.
    • Créé à l’adresse suivante : Date et heure de création du partage.
    • Description : la description du partage.

SQL

Exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks. Si vous le souhaitez, remplacez <pattern> par un prédicat LIKE.

SHOW PROVIDERS [LIKE <pattern>];

Pour plus d’informations sur SHOW PROVIDERS, consultez SHOW PROVIDERS.

Interface de ligne de commande (CLI)

Exécutez la commande suivante dans l’interface CLI Databricks.

databricks providers list

Voir les détails du fournisseur

Pour consulter les détails d’un fournisseur, vous pouvez utiliser Catalog Explorer, l’interface CLI de Databricks Unity Catalog ou la commande SQL DESCRIBE PROVIDER dans un notebook Azure Databricks ou dans l’éditeur de requête SQL Databricks.

Autorisations requises : administrateur de metastore, utilisateur disposant du privilège USE PROVIDER ou propriétaire de l’objet fournisseur.

Les détails sont les suivants :

  • Partages partagés par le fournisseur (consultez Afficher les partages qu’un fournisseur a partagés avec vous).
  • Créateur du fournisseur, horodatage de création, commentaires et type d’authentification (TOKEN ou DATABRICKS). TOKEN représente les fournisseurs qui ont partagé des données avec vous à l’aide du protocole de partage Databricks-to-Open. DATABRICKS repré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 de metastore du metastore Unity Catalog du fournisseur.
  • Si le fournisseur utilise le partage Databricks-to-Open : point de terminaison de votre profil de destinataire, qui correspond à l’emplacement où le serveur de partage OpenSharing est hébergé.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous l’onglet Éléments partagés avec moi, recherchez et sélectionnez le destinataire.

SQL

Exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks.

DESC PROVIDER <provider-name>;

Pour plus d’informations sur DESC PROVIDER, consultez DESCRIBE PROVIDER.

Interface de ligne de commande (CLI)

Exécutez la commande suivante dans l’interface 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, l’interface CLI du catalogue Databricks Unity ou la commande SHOW SHARES IN PROVIDER SQL dans un bloc-notes Azure Databricks ou l’éditeur de requête Databricks SQL.

Autorisations requises : administrateur de metastore, utilisateur disposant du privilège USE PROVIDER ou propriétaire de l’objet fournisseur.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous l’onglet Éléments partagés avec moi, recherchez et sélectionnez le destinataire.

SQL

Exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks. Si vous le souhaitez, remplacez <pattern> par un prédicat LIKE.

SHOW SHARES IN PROVIDER [LIKE <pattern>];

Pour plus d’informations sur SHOW SHARES IN PROVIDER, consultez SHOW SHARES IN PROVIDER.

Interface de ligne de commande (CLI)

Exécutez la commande suivante dans l’interface CLI Databricks.

 databricks providers list-shares <provider-name>

Mettre à jour un fournisseur (renommer, changer de propriétaire, ajouter un commentaire)

Vous pouvez utiliser Catalog Explorer, l’interface CLI du catalogue Databricks Unity ou la commande SQL ALTER PROVIDER dans un notebook Azure Databricks ou dans l’éditeur de requêtes SQL Databricks pour modifier l’objet fournisseur dans votre metastore Unity Catalog :

  • Renommez le fournisseur pour modifier la façon dont les utilisateurs voient l’objet fournisseur dans leurs interfaces Databricks.
  • Modifiez le propriétaire de l’objet fournisseur.
  • Ajoutez ou modifiez les commentaires.

Autorisations requises : vous devez être propriétaire de l’objet fournisseur pour pouvoir mettre à jour le propriétaire. Vous devez être un administrateur du metastore (ou utilisateur disposant du privilège CREATE PROVIDER) et propriétaire 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 metastore.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous l’onglet Éléments partagés avec moi, recherchez et sélectionnez le destinataire.

  4. Dans la page de détails, mettez à jour le propriétaire, le commentaire ou le nom du fournisseur.

    Pour renommer un fournisseur, cliquez sur l’icône de menu Kebab. Menu Kebab , puis sélectionnez Renommer.

SQL

Exécutez une ou plusieurs des commandes suivantes dans un notebook ou dans l’éditeur de requêtes SQL de Databricks :

ALTER PROVIDER <provider-name> OWNER TO <new-owner>;

COMMENT ON PROVIDER <provider-name> IS "<comment>";

ALTER PROVIDER <provider-name> RENAME TO <new-provider-name>;

Pour plus d’informations sur ALTER PROVIDER, consultez ALTER PROVIDER.

Interface de ligne de commande (CLI)

Exécutez la commande suivante dans l’interface 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>

Rotation des informations d’identification pour les destinataires ouverts

Cette section s’applique aux objets de fournisseur avec le type TOKENd’authentification , OAUTH_CLIENT_CREDENTIALSou 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, à l’aide du connecteur delta-sharing Python ou Spark, appliquez le nouveau fichier d’informations d’identification dans la configuration de votre connecteur. Consultez Lire les données partagées avec des jetons de porteur.

Un fournisseur utilisant le protocole de partage Databricks-to-Open peut faire pivoter votre jeton du porteur et vous envoyer un nouveau fichier d’informations d’identification. Quand 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 de nouvelles informations d’identification. Les catalogues sont liés à l’ID interne du fournisseur, et non à son nom. La recréation d’un fournisseur portant le même nom interrompt la connexion du catalogue aux données partagées.

ALTER PROVIDER, l’interface CLI Databricks et l’Explorateur catalogue ne prennent pas en charge la mise à jour des informations d’identification du fournisseur.

Mettre à jour les informations d’identification

Envoyez une PATCH demande au point de terminaison du fournisseur avec le contenu du nouveau fichier d’informations d’identification dans le recipient_profile_str champ.

Autorisations requises : propriétaire de l’objet du fournisseur ou administrateur du metastore.

Python

Exécutez ce qui suit à partir d’un bloc-notes sur l’espace de travail du destinataire. Remplacez <provider-name> par le nom de l’objet fournisseur dans votre metastore et mettez à jour new_profile 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

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 retourne 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 d’informations, consultez l’API REST Update a provider .

Vérifier la rotation

Vérifiez 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.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous l’onglet Partagé avec moi , recherchez votre fournisseur.

Les bannières d’erreur précédentes devraient avoir disparu et les actions devraient être répertoriées à nouveau. Le catalogue répertorié doit être identique à celui qu'il était auparavant.

SQL

Exécutez le code SQL suivant dans un notebook ou l’éditeur de requête 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, travaux et tableaux de bord existants continuent de fonctionner.

Résolution des problèmes

Error Réparer
Retour de la requête 403 Forbidden Vous devez être le propriétaire du fournisseur ou un administrateur du Metastore pour mettre à jour les informations d’identification. Demandez à un administrateur de metastore d’appliquer la rotation ou le transfert de propriété. Consultez Mettre à jour un fournisseur (renommer, modifier le propriétaire, commentaire).
Retour de la requête 404 Not Found Le nom du fournisseur est incorrect. Exécutez SHOW PROVIDERS pour répertorier les noms exacts dans votre metastore.
La requête retourne 400 Bad Request avec le message « Le profil de destinataire ne peut pas être mis à jour » L'API met à jour les informations d'identification uniquement pour les fournisseurs TOKEN, OAUTH_CLIENT_CREDENTIALS et OIDC_FEDERATION. Pour le partage Databricks-to-Databricks, les informations d’identification sont automatiquement renouvelées.
Les requêtes retournent TABLE_OR_VIEW_NOT_FOUND Le nom du catalogue peut être incorrect ou la liaison catalogue-à-fournisseur peut être rompue. Exécutez SHOW CATALOGS et SHOW SCHEMAS IN <catalog-name> pour vérifier que le catalogue existe.
L’Explorateur de catalogue affiche des données ou des erreurs obsolètes après une réussite PATCH. Vous voyez des résultats mis en cache avant la rotation. Actualisez la page ou attendez quelques minutes.

Supprimer un fournisseur

Pour supprimer un fournisseur, vous pouvez utiliser l’Explorateur de catalogues, l’interface CLI Databricks ou la commande DROP PROVIDER SQL dans un notebook Azure Databricks ou l’éditeur de requête Sql Databricks. Vous devez être le propriétaire de l’objet du 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.

Explorateur de catalogues

  1. Dans votre espace de travail Azure Databricks, cliquez sur l’icône Données.Catalogue.

  2. En haut du volet Catalogue, cliquez sur l’icône d’engrenage, puis sélectionnez OpenSharing.

    Sinon, dans le coin supérieur droit, cliquez sur Partager openSharing>.

  3. Sous l’onglet Éléments partagés avec moi, recherchez et sélectionnez le destinataire.

  4. Cliquez sur l’icône de menu Kebab. Menu kebab , puis sélectionnez Supprimer.

  5. Dans la boîte de dialogue de confirmation, cliquez sur Supprimer.

SQL

Exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks.

DROP PROVIDER [IF EXISTS] <provider-name>;

Pour plus d’informations sur DROP PROVIDER, consultez DROP PROVIDER.

Interface de ligne de commande (CLI)

Exécutez la commande suivante dans l’interface CLI Databricks.

databricks providers delete <provider-name>

Si l’opération réussit, aucun résultat n’est retourné.