Gérer les fournisseurs de partage Delta 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 du partage Delta. 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.

Importante

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 Delta Sharing 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 Databricks compatible avec le catalogue Unity, vous pouvez utiliser l’Explorateur de catalogues pour importer le fichier d’informations d’identification du fournisseur. Consultez Azure Databricks : Lire des données partagées à l’aide de connecteurs de partage ouverts.

Avant de commencer

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

  • Votre espace de travail doit être activé pour le catalogue Unity.
  • 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 Activation automatique de Unity Catalog et (facultatif) Attribuer le rôle d’administrateur de metastore.

Afficher les fournisseurs

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

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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  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: 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

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 du catalogue Databricks Unity 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 ouvert Delta Sharing. 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 ouvert : point de terminaison de votre profil de destinataire, qui est l’emplacement où le serveur de partage Delta Sharing 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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  3. Dans l’onglet Partagé avec moi, recherchez et sélectionnez le fournisseur.

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

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 consulter les partages qu’un fournisseur a effectués avec vous, vous pouvez utiliser Catalog Explorer, l’interface CLI du catalogue Databricks Unity ou la commande SQL SHOW SHARES IN 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.

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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  3. Dans l’onglet Partagé avec moi, recherchez et sélectionnez le fournisseur.

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

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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  3. Dans l’onglet Partagé avec moi, recherchez et sélectionnez le fournisseur.

  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 la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks.

ALTER PROVIDER <provider-name> RENAME TO <new-provider-name>
OWNER TO <new-owner>
COMMENT "<comment>";

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

Interface de ligne de commande

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>

Faire pivoter les 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 à l’aide de Delta Sharing open sharing avec des jetons porteurs.

Un fournisseur utilisant le protocole de partage ouvert 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 nouveaux identifiants. 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())

friser

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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  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 la mise à jour des partages.
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 à Databricks, les informations d’identification se renouvellent automatiquement.
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 Icône d’engrenage. et sélectionnez Delta Sharing.

    Vous pouvez également cliquer sur Partager > Delta Sharing dans le coin supérieur droit.

  3. Dans l’onglet Partagé avec moi, recherchez et sélectionnez le fournisseur.

  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

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