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


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

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

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

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

  • поставщиков

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

  • акции

    Доля определяет логическую группировку для таблиц, которыми вы планируете делиться.

  • получателей

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

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

Поставщики

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

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

  • Настройте локальное имя поставщика с помощью ALTER PROVIDER.
  • Перечислите наборы данных, которыми с вами поделились с SHOW SHARES IN PROVIDER.
  • Создайте каталог, используя акции, представляющие для вас интерес, с 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

Акции

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

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

Примеры

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

Получатели

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

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

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

Примеры

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