Partager via


Delta Sharing

S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 10.4 LTS et versions ultérieures oui coché Unity Catalog uniquement

Delta Sharing est un protocole ouvert pour le partage de données sécurisé avec d’autres organisations, quelle que soit la plateforme de calcul utilisée. Il permet de partager des collections de tables dans un metastore Unity Catalog en temps réel et sans les copier, de sorte que les destinataires des données peuvent immédiatement commencer à utiliser la dernière version des données partagées.

Delta Sharing contient trois composants :

  • Fournisseurs

    Un fournisseur est une entité qui met à disposition des données à des fins de partage.

  • Partages

    Un partage définit un regroupement logique pour les tables que vous souhaitez partager.

  • Destinataires

    Un destinataire identifie une organisation avec laquelle vous souhaitez partager un nombre quelconque de partages.

Pour un guide détaillé sur l’utilisation de Delta Sharing, consultez l’article Qu’est-ce que Delta Sharing ?.

Fournisseurs

S’applique à : coche marquée oui Databricks SQL oui coché Databricks Runtime 11.3 LTS et versions ultérieures

Un fournisseur de données est un objet représentant l'organisation dans le monde réel qui partage les données. Un fournisseur contient des partages qui contiennent eux aussi les données partagées. Lorsqu’un fournisseur vous ajoute en tant que Destinataire, vous pouvez :

  • Personnaliser le nom local du fournisseur à l’aide de ALTER PROVIDER.
  • Répertorier les jeux de données partagées avec vous à l’aide de SHOW SHARE IN PROVIDER.
  • Créez un catalogue à l’aide de partages qui vous intéressent avec CREATE CATALOG.

Exemples

-- Change the data provider name locally.
> ALTER PROVIDER `Center for Disease Control` RENAME TO cdc;

-- List the shares the provider has granted you access too.
> SHOW SHARES IN PROVIDER cdc;
 vaccinedata

-- Make the share accessible locally as a catalog.
> CREATE CATALOG cdcdata USING SHARE cdc.vaccinedata;

-- Use the data.
> USE CATALOG cdcdata;
> SELECT COUNT(*) FROM information_schema.tables;
  10

Partages

Un partage est un conteneur instancié avec la commande CREATE SHARE. Une fois le partage créé, vous pouvez enregistrer itérativement une collection de tables existantes définies dans le metastore à l’aide de la commande ALTER SHARE. Vous pouvez inscrire des tables sous leur nom d’origine, qualifiées par leur schéma d’origine, ou fournir d’autres noms exposés.

Vous devez être un administrateur de metastore ou un administrateur de compte pour créer, modifier et annuler des partages.

Exemples

-- Create share `customer_share` only if share with same name doesn't exist, with a comment.
> CREATE SHARE IF NOT EXISTS customer_share COMMENT 'This is customer share';

-- Add 2 tables to the share.
-- Expose my_schema.tab1 a different name.
-- Expose only two partitions of other_schema.tab2
> ALTER SHARE customer_share ADD TABLE my_schema.tab1 AS their_schema.tab1;
> ALTER SHARE customer_share ADD TABLE other_schema.tab2 PARTITION (c1 = 5), (c1 = 7);

-- List the content of the share
> SHOW ALL IN SHARE customer_share;
  name              type  shared_object           added_at                     added_by                   comment partitions
  ----------------- ----  ---------------------- ---------------------------- -------------------------- ------- -----------------
  other_schema.tab2 TABLE main.other_schema.tab2 2022-01-01T00:00:01.000+0000 alwaysworks@databricks.com NULL
  their_schema.tab1 TABLE main.myschema.tab2     2022-01-01T00:00:00.000+0000 alwaysworks@databricks.com NULL   (c1 = 5), (c1 = 7)

Destinataires

Un destinataire est un objet que vous créez à l'aide de la commande CREATE RECIPIENT pour représenter une organisation dont vous voulez autoriser les partages d'accès. Lorsque vous créez un destinataire, Databricks SQL génère un lien d’activation que vous pouvez envoyer à l’organisation. Pour récupérer le lien d'activation après la création, vous utilisez la commande DESCRIBE RECIPIENT.

Lorsqu’un destinataire est créé, vous pouvez lui accorder des privilèges SELECT sur les actions de votre choix en utilisant la commande GRANT ON SHARE.

Vous devez être un administrateur de metastore pour créer des destinataires, supprimer des destinataires et accorder l'accès à des partages.

Exemples

-- Create a recipient.
> CREATE RECIPIENT IF NOT EXISTS other_org COMMENT 'other.org';

-- Retrieve the activation link to send to other.org
> DESCRIBE RECIPIENT other_org;
  name      created_at                   created_by                 comment   activation_link active_token_id                      active_token_expiration_time rotated_token_id rotated_token_expiration_time
  --------- ---------------------------- -------------------------- --------- --------------- ------------------------------------ ---------------------------- ---------------- -----------------------------
  other_org 2022-01-01T00:00:00.000+0000 alwaysworks@databricks.com other.org https://....    0160c81f-5262-40bb-9b03-3ee12e6d98d7 9999-12-31T23:59:59.999+0000 NULL              NULL

-- Choose shares that other.org has access to
> GRANT SELECT ON SHARE customer_share TO RECIPIENT other_org;