Partager des données et des ressources IA de façon sécurisée à l’aide de Delta Sharing

Cet article présente le protocole Delta Sharing dans Azure Databricks, la plateforme de partage de données sécurisée qui permet de partager des données et des ressources IA dans Azure Databricks avec des utilisateurs extérieurs à votre organisation (qu’ils utilisent Databricks ou pas).

Important

Les articles sur ce site concernant Delta Sharing se concentrent sur le partage de données, de notebooks et de modèles IA Azure Databricks. Delta Sharing est également disponible en tant que projet open source permettant de partager des tables Delta à partir d’autres plateformes. Delta Sharing fournit également la colonne vertébrale de Databricks Marketplace, un forum ouvert pour l’échange de produits de données.

Remarque

Si vous êtes un destinataire de données qui a obtenu l'accès aux données partagées via Delta Sharing et que vous souhaitez simplement savoir comment accéder à ces données, consultez Accéder aux données partagées avec vous à l'aide de Delta Sharing (pour les destinataires).

Présentation de Delta Sharing

Delta Sharing est un protocole ouvert développé par Databricks pour le partage sécurisé de données avec d’autres organisations, indépendamment des plateformes informatiques utilisées.

Il existe trois façons de partager des données à l’aide de Delta Sharing :

  1. Le protocole de partage Databricks-to-Databricks qui vous permet de partager des données et des ressources IA, à partir de votre espace de travail compatible Unity Catalog avec des utilisateurs ayant également accès à un espace de travail Databricks compatible Unity Catalog.

    Cette approche utilise le serveur Delta Sharing intégré à Azure Databricks. Cela prend en charge certaines fonctionnalités de Delta Sharing qui ne sont pas prises en charge dans les autres protocoles, notamment le partage de notebooks, le partage de volumes Unity Catalog, le partage de modèles IA Unity Catalog, la gouvernance des données Unity Catalog, l’audit, ainsi que le suivi de l’utilisation pour les fournisseurs et les destinataires. L’intégration à Unity Catalog simplifie la configuration et la gouvernance pour les fournisseurs et les destinataires, et améliore les performances.

    Consultez Partager des données à l’aide du protocole Delta Sharing Databricks-to-Databricks (pour les fournisseurs).

  2. Le protocole de partage ouvert Databricks, qui vous permet de partager des données tabulaires que vous gérez dans un espace de travail Databricks compatible Unity Catalog avec des utilisateurs sur n’importe quelle plateforme informatique.

    Cette approche repose sur le serveur Delta Sharing intégré à Azure Databricks. Elle est utile quand vous gérez des données avec Unity Catalog, et que vous souhaitez les partager avec des utilisateurs qui ne se servent pas de Databricks, ou qui n’ont pas accès à un espace de travail Databricks compatible Unity Catalog. L’intégration à Unity Catalog côté fournisseur simplifie la configuration et la gouvernance pour les fournisseurs.

    Consultez Partager des données à l’aide du protocole de partage ouvert Delta Sharing (pour les fournisseurs).

  3. Une implémentation gérée par le client du serveur Delta Sharing open source, qui vous permet de partager à partir de n’importe quelle plateforme vers n’importe quelle plateforme, qu’elle soit Databricks ou non.

    La documentation Azure Databricks ne couvre pas les instructions de configuration de votre propre serveur Delta Sharing. Voir github.com/delta-io/delta-sharing.

Partages, fournisseurs et destinataires

Les principaux concepts sous-jacents au partage Delta dans Azure Databricks sont les partages, les fournisseurs et les destinataires.

Qu’est-ce qu’un partage ?

Dans Delta Sharing, un partage est une collection en lecture seule de tables et de partitions de tables qu'un fournisseur souhaite partager avec un ou plusieurs destinataires. Si votre destinataire utilise un espace de travail Databricks compatible avec Unity Catalog, vous pouvez également inclure des fichiers de notebook, des vues (y compris des vues dynamiques qui limitent l’accès au niveau des lignes et des colonnes), des volumes Unity Catalog et des modèles Unity Catalog dans un partage.

Vous pouvez ajouter ou supprimer des tables, des vues, des volumes, des modèles et des fichiers de notebook à partir d’un partage à tout moment. Vous pouvez également attribuer ou révoquer l’accès du destinataire des données à un partage à tout moment.

Dans un espace de travail Azure Databricks compatible Unity Catalog, un partage est un objet sécurisable inscrit dans Unity Catalog. Si vous supprimez un partage dans votre metastore Unity Catalog, tous les destinataires de ce partage perdent leur accès.

Consultez Créer et gérer des partages pour Delta Sharing.

Qu'est-ce qu'un fournisseur ?

Un fournisseur est une entité qui partage des données avec un destinataire. Si vous êtes un fournisseur et que vous souhaitez profiter du serveur Delta Sharing Databricks intégré et gérer des partages et des destinataires à l’aide de Unity Catalog, au moins un espace de travail Azure Databricks compatible Unity Catalog est requis. Vous n’avez pas besoin de migrer tous vos espaces de travail existants vers Unity Catalog. Vous pouvez simplement créer un espace de travail compatible Unity Catalog pour vos besoins Delta Sharing.

Si un destinataire se trouve sur un espace de travail Databricks compatible Unity Catalog, le fournisseur est également un objet sécurisable Unity Catalog qui représente l’organisation du fournisseur et associe cette organisation à un ensemble de partages.

Qu’est-ce qu’un destinataire ?

Un destinataire est une entité qui reçoit des partages d’un fournisseur. Dans Unity Catalog, un partage est un objet sécurisable qui représente une organisation et l'associe à un identifiant ou à un identifiant de partage sécurisé qui permet à cette organisation d'accéder à un ou plusieurs partages.

En tant que fournisseur de données (« sharer »), vous pouvez définir plusieurs destinataires pour un metastore Unity Catalog donné. Toutefois, si vous souhaitez partager les données de plusieurs metastores avec un utilisateur ou un groupe d’utilisateurs spécifique, vous devez définir le destinataire séparément pour chaque metastore. Un destinataire peut avoir accès à plusieurs partages.

Si un fournisseur supprime un destinataire de son métastore Unity Catalog, ce destinataire perd l'accès à tous les partages auxquels il pouvait accéder auparavant.

Consultez Créer et gérer des destinataires de données pour Delta Sharing.

Comparaison du partage ouvert et du partage Databricks à Databricks

Cette section décrit les deux protocoles de partage à partir d’un espace de travail Databricks compatible Unity Catalog.

Remarque

Cette section suppose que le fournisseur se trouve sur un espace de travail Azure Databricks compatible Unity Catalog. Pour en savoir plus sur la configuration d’un serveur Delta Sharing open source à partager à partir d’une plateforme non Databricks ou d’un espace de travail non Unity Catalog, consultez github.com/delta-io/delta-sharing.

La manière dont un fournisseur utilise Delta Sharing dans Azure Databricks dépend des personnes avec lesquelles il partage des données :

  • Le partage ouvert permet de partager des données avec les utilisateurs de votre choix, qu’ils aient accès ou non à Azure Databricks.
  • Le partage Databricks-to-Databricks vous permet de partager des données avec des utilisateurs Azure Databricks dont l'espace de travail est attaché à un métastore Unity Catalog différent du vôtre. Databricks-to-Databricks prend également en charge le partage de notebooks, de volumes et de modèles, qui n’est pas disponible dans le partage ouvert.

Présentation du protocole ouvert Delta Sharing

Si vous souhaitez partager des données avec des utilisateurs hors de votre espace de travail Azure Databricks, qu’ils utilisent Databricks ou non, vous pouvez utiliser le protocole ouvert Delta Sharing pour partager vos données en toute sécurité. En tant que fournisseur de données, vous générez un jeton que vous partagez de façon sécurisée avec les destinataires. Les destinataires utilisent le jeton pour s’authentifier et obtenir un accès en lecture aux tables que vous avez incluses dans les partages auxquels vous avez accordé l’accès.

Les destinataires peuvent accéder aux données partagées à l’aide de nombreux outils et plateformes informatiques, notamment :

  • Azure Databricks
  • Apache Spark
  • Pandas
  • Power BI

Pour obtenir la liste complète des connecteurs Delta Sharing et les informations sur leur utilisation, consultez la documentation sur Delta Sharing.

Voir également Partager des données à l'aide du protocole de partage ouvert Delta Sharing (pour les fournisseurs).

Présentation du protocole Delta Sharing Databricks à Databricks

Si vous souhaitez partager des données avec des utilisateurs disposant d'un espace de travail Databricks activé pour Unity Catalog, vous pouvez utiliser le partage Delta Databricks-to-Databricks. Le partage Databricks à Databricks vous permet de partager des données avec des utilisateurs dans d’autres comptes Databricks, qu’ils soient sur AWS, Azure ou GCP. C’est également un excellent moyen de partager en toute sécurité des données entre différents metastores Unity Catalog dans votre propre compte Databricks. Notez qu'il n'est pas nécessaire d'utiliser le partage Delta pour partager des données entre des espaces de travail attachés au même métastore Unity Catalog, car dans ce scénario, vous pouvez utiliser Unity Catalog lui-même pour gérer l'accès aux données entre les espaces de travail.

L’un des avantages du partage Databricks-to-Databricks est que le destinataire du partage n’a pas besoin de jeton pour accéder au partage et que le fournisseur n’a pas besoin de gérer les jetons du destinataire. La sécurité de la connexion de partage, notamment l’ensemble des vérifications d’identité, l’authentification et l’audit, est entièrement managée via Delta Sharing et la plateforme Databricks. Un autre avantage est la possibilité de partager des fichiers de notebook Databricks, des vues, des volumes Unity Catalog et des modèles Unity Catalog.

Voir également Partager des données à l'aide du protocole Delta Sharing Databricks-to-Databricks (pour les fournisseurs).

Comment les administrateurs du fournisseur configurent-ils le partage Delta ?

Cette section fournit une vue d’ensemble de la façon dont les fournisseurs peuvent activer Delta Sharing et initier le partage à partir d’un espace de travail Azure Databricks compatible Unity Catalog. Pour Delta Sharing open source, rendez-vous sur github.com/delta-io/delta-sharing.

Le partage Databricks à Databricks entre différents metastores Unity Catalog du même compte est toujours activé. Si vous êtes un fournisseur qui souhaite activer le partage Delta pour partager des données avec des espaces de travail Databricks dans d'autres comptes ou des clients non Databricks, un administrateur de compte Azure Databricks ou un administrateur de métastore effectue les étapes de configuration suivantes (à un niveau élevé) :

  1. Activez Delta Sharing pour le metastore Unity Catalog qui gère les données que vous souhaitez partager.

    Remarque

    Vous n'avez pas besoin d'activer le partage Delta sur votre métastore si vous avez l'intention d'utiliser le partage Delta pour partager des données uniquement avec des utilisateurs d'autres métastores Unity Catalog de votre compte. Le partage de metastore à metastore au sein d’un seul compte Azure Databricks est activé par défaut.

    Consultez Activer Delta Sharing sur un metastore.

  2. Créez un partage qui inclut des ressources de données inscrites dans le metastore Unity Catalog.

    Si vous partagez des données avec un destinataire non-Databricks (ce que l’on appelle un partage ouvert), vous pouvez inclure des tables au format Delta ou Parquet. Si vous envisagez d’utiliser le partage Databricks-to-Databricks, vous pouvez également ajouter des vues, des volumes Unity Catalog, des modèles Unity Catalog et des fichiers de notebook à un partage.

    Consultez Créer et gérer des partages pour Delta Sharing.

  3. Créez un destinataire.

    Consultez Créer et gérer des destinataires de données pour Delta Sharing.

    Si votre destinataire n’est pas un utilisateur Databricks ou qu’il n’a pas accès à un espace de travail Databricks activé pour Unity Catalog, vous devez utiliser le partage ouvert. Un ensemble d’informations d’identification basées sur un jeton est généré pour ce destinataire.

    Si votre destinataire a accès à un espace de travail Databricks activé pour Unity Catalog, vous pouvez utiliser le partage Databricks à Databricks et des informations d’identification basées sur un jeton ne sont pas nécessaires. Vous demandez un identificateur de partage au destinataire et vous l’utilisez pour établir la connexion sécurisée.

    Conseil

    Testez le processus d’installation en vous désignant vous-même comme destinataire de test.

  4. Permettre l’accès à un ou plusieurs partages au destinataire.

    Voir Accorder et gérer l'accès aux partages de données Delta Sharing (pour les fournisseurs).

    Remarque

    Cette étape peut également être effectuée par un utilisateur non-administrateur avec les privilèges USE SHARE et USE RECIPIENTSET SHARE PERMISSION. Consultez Privilèges Unity Catalog et objets sécurisables.

  5. Envoyez au destinataire les informations dont il a besoin pour se connecter au partage (partage ouvert uniquement).

    Consultez Envoyer les informations de connexion au destinataire.

    Pour le partage ouvert, envoyez un lien d’activation au destinataire lui permettant de télécharger ses informations d’identification basées sur un jeton.

    Pour le partage Databricks à Databricks, les données comprises dans le partage deviennent disponibles dans l’espace de travail Databricks du destinataire dès que vous lui accordez l’accès au partage.

Le destinataire a désormais accès aux données partagées.

Comment les destinataires accèdent-ils aux données partagées ?

Les destinataires accèdent aux ressources de données partagées en lecture seule. Les fichiers de notebook partagés sont en lecture seule, mais ils peuvent être clonés, puis modifiés et exécutés dans l’espace de travail du destinataire comme n’importe quel autre notebook.

L’accès sécurisé dépend du modèle de partage :

Chaque fois que le fournisseur de données met à jour des tables de données ou des volumes dans son propre compte Databricks, les mises à jour s’affichent en quasi-temps réel dans le système du destinataire.

Comment effectuer le suivi des personnes qui partagent les données partagées et y accèdent ?

Les fournisseurs de données sur des espaces de travail Azure Databricks compatibles Unity Catalog peuvent utiliser la journalisation d’audit et les tables système Azure Databricks pour surveiller la création et la modification des partages et des destinataires, ainsi que l’activité des destinataires sur les partages. Consultez Auditer et surveiller le partage de données.

Les destinataires de données qui utilisent des données partagées sur un espace de travail Databricks peuvent utiliser la journalisation d'audit et les tables système Databricks pour comprendre qui accède à quelles données. Consultez Auditer et surveiller le partage de données.

Partage de volumes

Vous pouvez partager des volumes à l’aide du flux de partage Databricks-to-Databricks. Consultez Ajouter des volumes à un partage (pour les fournisseurs) et Lire les données partagées à l’aide du partage Delta Databricks-to-Databricks (pour les destinataires).

Partage de modèles

Vous pouvez partager des modèles à l’aide du flux de partage Databricks-to-Databricks. Consultez Ajouter des modèles à un partage (pour les fournisseurs) et Lire les données partagées à l’aide du partage Delta Databricks-to-Databricks (pour les destinataires).

Partage de notebooks

Vous pouvez utiliser Delta Sharing pour partager des fichiers de notebook à l’aide du flux de partage Databricks à Databricks. Consultez les articles Ajouter des fichiers de notebook à un partage (pour les fournisseurs) et Lire des notebooks partagés (pour les destinataires).

Limitation de l’accès au niveau des lignes et des colonnes

Vous pouvez partager des vues dynamiques qui limitent l’accès à certaines données de table en fonction des propriétés du destinataire. Le partage d’affichage dynamique nécessite le flux de partage Databricks-vers-Databricks. Consultez Partager des affichages dynamiques à un partage pour filtrer des lignes et des colonnes.

Delta Sharing et diffusion en continu

Delta Sharing prend en charge Spark Structured Streaming. Un fournisseur peut partager une table avec l’historique afin qu’un destinataire puisse l’utiliser comme source Structured Streaming, en traitant les données partagées de manière incrémentielle avec une faible latence. Les destinataires peuvent également effectuer des requêtes de voyage dans le temps Delta Lake sur des tables partagées avec l’historique.

Pour savoir comment partager des tables avec l’historique, consultez l’article Ajouter des tables à un partage. Pour savoir comment utiliser des tables partagées comme sources de diffusion en continu, consultez l’article Interroger une table à l’aide d’Apache Spark Structured Streaming (pour les destinataires du partage Databricks à Databricks) ou Accéder à une table partagée à l’aide de Spark Structured Streaming (pour les destinataires de données de partage ouvert).

Consultez aussi l’article Streaming sur Azure Databricks.

FAQ Delta Sharing

Voici une liste de questions fréquentes concernant Delta Sharing.

Ai-je besoin d’Unity Catalog pour utiliser Delta Sharing ?

Non, vous n’avez pas besoin de Unity Catalog pour partager (en tant que fournisseur) ou consommer des données partagées (en tant que destinataire). Toutefois, Unity Catalog offre des avantages comme la compatibilité du partage de ressources non tabulaires et AI, la gouvernance prête à l’emploi, la simplicité et les performances des requêtes.

Les fournisseurs peuvent partager des données de deux façons :

  • Placez les ressources à partager dans le gestionnaire Unity Catalog et partagez-les à l’aide du serveur Delta Sharing Azure Databricks intégré.

    Il n’est pas nécessaire de migrer toutes vos ressources vers Unity Catalog. Il vous suffit d’un seul espace de travail Azure Databricks compatible Unity Catalog pour gérer les ressources que vous souhaitez partager. Dans certains comptes, les nouveaux espaces de travail sont activés automatiquement pour Unity Catalog. Consultez Activation automatique de Unity Catalog.

  • Implémentez le serveur Delta Sharing ouvert pour partager des données, sans nécessairement utiliser votre compte Azure Databricks.

Les destinataires peuvent consommer des données de deux façons :

  • Sans espace de travail Databricks. Utilisez les connecteurs Delta Sharing open source disponibles pour de nombreuses plateformes de données, comme Power BI, pandas et Apache Spark open source. Voir Lire les données partagées à l'aide du partage ouvert Delta Sharing (pour les destinataires) et le projet Delta Sharing open source.

  • Dans un espace de travail Databricks. Les espaces de travail des destinataires n’ont pas besoin d’être compatibles Unity Catalog, mais vous bénéficierez d’avantages de gouvernance, de simplicité et de performances s’ils le sont.

    Les organisations des destinataires qui souhaitent profiter de ces avantages n’ont pas besoin de migrer toutes les ressources vers Unity Catalog. Il vous suffit d’un seul espace de travail Azure Databricks compatible Unity Catalog pour gérer les ressources partagées avec vous. Dans certains comptes, les nouveaux espaces de travail sont activés automatiquement pour Unity Catalog. Consultez Activation automatique de Unity Catalog.

Consultez Lire les données partagées à l’aide du partage ouvert Delta Sharing (pour les destinataires) et Lire les données partagées à l’aide de Delta Sharing Databricks-to-Databricks (pour les destinataires).

Dois-je être un client Databricks pour utiliser Delta Sharing ?

Non, Delta Sharing est un protocole ouvert. Vous pouvez partager des données non Databricks avec des destinataires sur n’importe quelle plateforme de données. Les fournisseurs peuvent configurer un serveur Delta Sharing ouvert pour partager à partir de n’importe quelle plateforme informatique. Les destinataires peuvent consommer des données partagées à l’aide de connecteurs Delta Sharing open source pour de nombreux produits de données, notamment Power BI, pandas et Spark open source.

Cependant, l’utilisation de Delta Sharing sur Azure Databricks, et notamment le partage à partir d’un espace de travail compatible Unity Catalog, offre de nombreux avantages.

Consultez la première question de cette FAQ pour en savoir plus.

Est-ce que Delta Sharing entraîne des coûts de sortie ?

Delta Sharing au sein d’une région n’entraîne aucun coût de sortie. Contrairement à d’autres plateformes de partage de données, Delta Sharing ne nécessite pas de réplication des données. Ce modèle présente de nombreux avantages, mais il signifie que votre fournisseur de cloud peut facturer des frais de sortie de données lorsque vous partagez des données entre des clouds ou des régions. Azure Databricks prend en charge le partage à partir de Cloudflare R2 (préversion publique), qui n’entraîne aucuns frais de sortie, et fournit d’autres outils et suggestions pour surveiller et éviter les frais de sortie. Consultez Surveiller et gérer les coûts de sortie Delta Sharing (pour les fournisseurs).

Les fournisseurs peuvent-ils révoquer l’accès d’un destinataire ?

Oui, l’accès du destinataire peut être révoqué à la demande et selon des niveaux de granularité spécifiques. Vous pouvez refuser l’accès du destinataire à des partages et à des adresses IP spécifiques, filtrer ses données tabulaires, révoquer ses jetons et le supprimer complètement. Voir Révoquer l’accès des destinataires à un partage et Créer et gérer des destinataires de données pour Delta Sharing.

N’est-il pas non sécurisé d’utiliser des URL pré-signées ?

Delta Sharing utilise des URL pré-signées pour fournir un accès temporaire à un fichier dans le stockage d’objets. Elles sont uniquement attribuées aux destinataires qui ont déjà accès aux données partagées. Elles sont sécurisées car de courte durée et n’étendent pas le niveau d’accès au-delà des autorisations existantes des destinataires.

Les jetons utilisés dans le protocole de partage Delta Sharing ouvert sont-ils sécurisés ?

Comme Delta Sharing active le partage multiplateforme, contrairement à d’autres plateformes de partage de données disponibles, le protocole de partage nécessite un jeton ouvert. Les fournisseurs peuvent garantir la sécurité des jetons en configurant leur durée de vie, en définissant des contrôles réseau et en révoquant l’accès à la demande. De plus, le jeton n’étend pas le niveau d’accès au-delà des autorisations existantes des destinataires. Voir Considérations relatives à la sécurité pour les jetons.

Si vous préférez ne pas utiliser de jetons pour gérer l’accès aux partages des destinataires, vous devez utiliser le partage Databricks-to-Databricks ou contacter l’équipe de votre compte Databricks pour d’autres solutions.

Delta Sharing est-il compatible avec le partage de vues ?

Oui, Delta Sharing est compatible avec le partage de vues. Consultez Ajouter des vues à un partage.

Pour en savoir plus sur les améliorations à venir pour le partage de vues, contactez l’équipe de votre compte Databricks.

Limites

Quotas de ressources

Les valeurs ci-dessous indiquent les quotas pour les ressources Delta Sharing. Les valeurs de quota ci-dessous sont exprimées par rapport à l’objet parent dans Unity Catalog.

Object Parent Valeur
provider metastore 1 000
recipients metastore 5 000
partages metastore 1 000
tables partage 1 000
volumes partager 1 000
modèles partager 1000
schémas partage 500
notebooks partage 100

Si vous prévoyez de dépasser ces limites de ressources, contactez l’équipe de votre compte Azure Databricks.

Étapes suivantes