Поделиться через


Разностный общий доступ

применимо:отмечено Databricks SQL отмечено Databricks Runtime 10.4 LTS и выше отмечено Unity Catalog только

Разностный общий доступ — это открытый протокол для безопасного обмена данными с другими организациями независимо от того, какие вычислительные платформы они используют. Он может делиться коллекциями tables в хранилище метаданных Unity Catalog в реальном времени без копирования, чтобы пользователи данных recipients могли сразу начать работу с последней версией общих данных.

Существуют три компонента для функции разностного общего доступа:

  • Providers

    Поставщик — это организация, которая сделала данные общедоступными.

  • Shares

    Логическая группа определяет набор tables, который вы собираетесь расшарить.

  • Recipients

    Получатель определяет, с какой организацией он хочет предоставить общий доступ к сколь угодно количеству shares.

Подробное руководство по использованию разностного общего доступа см. в разделе "Что такое разностный общий доступ?".

Providers

Область применения:флажок Databricks SQL флажок Databricks Runtime 11.3 LTS и выше

Поставщик данных — это объект, представляющий организацию в реальном мире, shares данных. Поставщик содержит shares, который содержит общие данные. Как только поставщик добавит вас в качестве Recipients, вы сможете

  • Настройте локальное имя поставщика с помощью ALTER PROVIDER.
  • List наборы данных, которыми с вами поделились с SHOW SHARES IN PROVIDER.
  • Создайте catalog, используя shares, которые вас интересуют, с CREATE CATALOG.

Примеры

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

Shares

Общая папка представляет собой контейнер, созданный с помощью команды CREATE SHARE. После создания можно итеративно зарегистрировать коллекцию существующих tables, определенных в хранилище метаданных с помощью команды ALTER SHARE. Вы можете зарегистрировать tables под их исходным именем, указать их исходные schemaили указать альтернативные предоставленные имена.

Для создания, изменения и удаления sharesнеобходимо быть администратором хранилища метаданных или администратором учетной записи.

Примеры

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

Получатель — это объект, который вы создаете с помощью CREATE RECIPIENT для представления организации, которой требуется разрешить доступ shares. При создании получателя генерируется ссылка активации, которую можно предоставить организации. Чтобы получить ссылку активации после создания, вы используете DESCRIBE RECIPIENT.

После создания получателя вы можете предоставить ему привилегии SELECT на shares по вашему выбору, используя GRANT ON SHARE.

Для создания recipients, удаления recipientsи grant доступа к sharesнеобходимо быть администратором хранилища метаданных.

Примеры

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