Delta Sharing

se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 10.4 LTS y versiones posteriores solo casilla marcada como Sí Unity Catalog

Delta Sharing es un protocolo abierto para el uso compartido seguro de datos con otras organizaciones, independientemente de las plataformas informáticas que usen. Puede compartir colecciones de tablas en un metastore del catálogo de Unity en tiempo real sin copiarlas, de modo que los destinatarios de datos puedan empezar a trabajar inmediatamente con la versión más reciente de los datos compartidos.

Hay tres componentes para Delta Sharing:

  • Proveedores

    Un proveedor es una entidad que ha ofrecido los datos para compartirlos.

  • Recursos compartidos

    Un recurso compartido define una agrupación lógica para las tablas que pretende compartir.

  • Destinatarios

    Un destinatario identifica una organización con la que desea compartir cualquier número de recursos compartidos.

Para obtener una guía detallada sobre cómo usar el uso compartido de Delta, consulta Uso compartido de datos y recursos de inteligencia artificial de forma segura mediante delta Sharing.

Proveedores

se aplica a:casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Un proveedor de datos es un objeto que representa a la organización del mundo real que comparte los datos. Un proveedor contiene recursos compartidos que, a su vez, contienen los datos compartidos. Una vez que un proveedor le haya agregado como Destinatarios, puede

Ejemplos

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

Recursos compartidos

Un recurso compartido es un contenedor del que se crean instancias con el comando CREATE SHARE. Una vez creado, puede registrar de forma iterativa una colección de tablas existentes definidas en el metastore mediante el comando ALTER SHARE. Puede registrar tablas con su nombre original, calificadas por su esquema original, o proporcionar nombres expuestos alternativos.

Para crear, modificar y quitar recursos compartidos, es preciso ser administrador de metastore o de la cuenta.

Ejemplos

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

Recipients

Un destinatario es un objeto que se crea mediante CREATE RECIPIENT para representar una organización a la que desea permitir el acceso a recursos compartidos. Cuando crea un destinatario, Databricks SQL genera un vínculo de activación que puede enviar a la organización. Para recuperar el vínculo de activación después de la creación, use DESCRIBE RECIPIENT.

Una vez creado un destinatario, puede concederle privilegios de SELECT en los recursos compartidos de su elección mediante GRANT ON SHARE.

Tiene que ser administrador de metastore para crear y quitar destinatarios, así como para concederles acceso a recursos compartidos.

Ejemplos

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