Condividi tramite


Condivisione differenziale

Si applica a:segno di spunta sì Solo databricks SQL segno di spunta sì Databricks Runtime 10.4 LTS e versioni successive segno di spunta sì al catalogo Unity

La condivisione differenziale è un protocollo aperto per la condivisione sicura dei dati con altre organizzazioni indipendentemente dalle piattaforme di elaborazione usate. Può condividere raccolte di tabelle in un metastore del catalogo Unity in tempo reale senza copiarle, in modo che i destinatari dei dati possano iniziare immediatamente a lavorare con la versione più recente dei dati condivisi.

Esistono tre componenti per la condivisione differenziale:

  • Provider

    Un provider è un'entità che ha reso disponibili i dati per la condivisione.

  • Azioni

    Una condivisione definisce un raggruppamento logico per le tabelle che si intende condividere.

  • Destinatari

    Un destinatario identifica un'organizzazione con cui si desidera condividere un numero qualsiasi di condivisioni.

Per una guida dettagliata su come usare la condivisione Delta, vedere Condividere i dati e gli asset di intelligenza artificiale in modo sicuro usando la condivisione delta.

Provider

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 11.3 LTS e versioni successive

Un provider di dati è un oggetto che rappresenta l'organizzazione nel mondo reale che condivide i dati. Un provider contiene condivisioni che contengono ulteriormente i dati condivisi. Dopo aver aggiunto un provider come destinatari , è possibile

Esempi

-- 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 cdc.vaccinedata;

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

Condivisioni

Una condivisione è un contenitore di cui viene creata un'istanza con il comando CREATE SHARE . Dopo aver creato è possibile registrare in modo iterativo una raccolta di tabelle esistenti definite all'interno del metastore usando il comando ALTER SHARE . È possibile registrare le tabelle con il nome originale, qualificate in base allo schema originale o specificare nomi esposti alternativi.

È necessario essere un amministratore del metastore o un amministratore dell'account per creare, modificare ed eliminare condivisioni.

Esempi

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

Destinatari

Un destinatario è un oggetto creato usando CREATE RECIPIENT per rappresentare un'organizzazione che si vuole consentire le condivisioni di accesso. Quando si crea un destinatario Databricks SQL genera un collegamento di attivazione che è possibile inviare all'organizzazione. Per recuperare il collegamento di attivazione dopo la creazione, usare DESCRIBE RECIPIENT.

Dopo aver creato un destinatario, è possibile concedere SELECT i privilegi per le condivisioni di propria scelta usando GRANT ON SHARE.

È necessario essere un amministratore del metastore per creare destinatari, eliminare i destinatari e concedere l'accesso alle condivisioni.

Esempi

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