Создать общие ресурсы для Delta Sharing

На этой странице описывается, как создавать общие ресурсы для Delta Sharing.

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

Если вы предоставляете всю схему (базу данных), получатель может получить доступ ко всем таблицам, потоковым таблицам, представлениям, материализованным представлениям, моделям и томам в схеме в момент, когда вы ее предоставляете, а также к любым данным и ресурсам ИИ, добавленным в схему в будущем.

Общая папка может содержать ресурсы данных и ИИ только из одного хранилища метаданных каталога Unity. Вы можете добавлять или удалять данные и ресурсы ИИ из общей папки в любое время.

Перед созданием общего ресурса убедитесь, что вы настроили Delta Sharing для своей учетной записи (для поставщиков).

Дополнительные сведения о модели общего доступа см. в статье "Общие папки", "Поставщики" и "Получатели".

Requirements

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

Подсказка

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

Задача Requirements
Создание общей папки
  • Укажите привилегию CREATE SHARE для хранилища метаданных каталога Unity, где зарегистрированы данные, к которым требуется предоставить общий доступ.
  • Создайте объект общего доступа с помощью рабочей области Azure Databricks, к которой подключено это метахранилище Unity Catalog.
Добавьте следующее в общий доступ:
  • Tables
  • Таблицы потоков
  • Управляемые таблицы Айсберга
  • Внешние таблицы
  • Иностранные таблицы Айсберга
  • Views
  • Материализованные представления
  • Будьте владельцем акций.
  • Иметь привилегии USE CATALOG и USE SCHEMA на каталог и схему, содержащие ресурс данных.
  • SELECT У вас есть права доступа к ресурсу данных. Для продолжения общего доступа к ресурсу необходимо сохранить эту привилегию. Если вы потеряете его, получатель не может получить доступ к ресурсу через общую папку.
Предоставить общий доступ ко всей схеме или внешней схеме
  • Быть владельцем общего ресурса и владельцем схемы или иметь USE SCHEMA.
  • Для общего доступа к таблицам SELECT должно присутствовать в схеме.
  • Используйте READ VOLUME, чтобы предоставить общий доступ к томам.
Добавление томов в общую папку
  • Будьте владельцем акций.
  • Иметь привилегии USE CATALOG и USE SCHEMA на каталог и схему, содержащие том, или быть владельцем каталога или схемы.
  • У вас есть привилегии READ VOLUME над томом. Для продолжения общего доступа к диску необходимо сохранить эту привилегию. Если вы его потеряете, получатель не сможет получить доступ к диску через общий доступ.
Добавление определяемых пользователем функций Python в объект совместного доступа
  • Будьте владельцем акций.
  • У вас есть привилегии USE CATALOG и USE SCHEMA в каталоге и схеме, содержащей Python UDF, или владение каталогом или схемой.
  • У вас есть привилегия EXECUTE на Python UDF. Для продолжения совместного использования Python UDF необходимо сохранить эту привилегию. Если вы его потеряете, получатель не сможет получить доступ к Python UDF через общий доступ.
Добавление моделей в общий ресурс
  • Будьте владельцем акций.
  • Обладать привилегиями USE CATALOG и USE SCHEMA на каталог и схему, содержащие модель, или владеть каталогом или схемой.
  • Обладайте привилегиями на модель EXECUTE. Для того чтобы модель продолжала быть доступной, необходимо сохранить эту привилегию. Если вы потеряете его, получатель не может получить доступ к модели через общий доступ.
Добавление файлов записной книжки в общую сеть
  • Будьте владельцем общего ресурса с разрешением CAN READ в записной книжке.

Требования к вычислениям

  • Если вы используете записную книжку Databricks для создания общей записи, вычислительный ресурс должен использовать Databricks Runtime 11.3 LTS или более поздней версии и иметь стандартный или выделенный режим доступа (ранее общий и для одного пользователя).
  • Если вы используете инструкции SQL для добавления схемы в общую папку (или обновления или удаления схемы), необходимо использовать хранилище SQL или вычислительные ресурсы, работающие под управлением Databricks Runtime 13.3 LTS или более поздней версии. Выполнение этого же действия с помощью обозревателя каталогов не имеет требований к вычислениям.

Создайте объект общего доступа

Перед созданием объекта общего ресурса убедитесь, что вы соответствуете требованиям .

Чтобы создать общую папку, используйте обозреватель каталогов, интерфейс командной строки каталога Databricks Unity или команду CREATE SHARE SQL в записной книжке Azure Databricks или редакторе запросов Databricks SQL.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке «Предоставлено мной» нажмите кнопку «Поделиться данными».

  4. На странице Создание общего ресурса введите название общего ресурса и необязательный комментарий.

  5. Нажмите кнопку "Сохранить" и продолжить.

    Вы можете продолжать добавлять ресурсы данных или останавливаться и возвращаться позже.

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

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

  7. Нажмите кнопку "Сохранить" и продолжить.

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

    Подробные инструкции см. в разделе "Добавление файлов записной книжки в общую папку".

  9. Нажмите кнопку "Сохранить" и продолжить.

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

    Подробные инструкции см. в разделе "Управление доступом к общим папкам данных Delta Sharing" (для поставщиков).

  11. Щелкните "Поделиться данными ", чтобы предоставить общий доступ к данным получателям.

    Если вы еще не создали получателей, щелкните "Поделиться данными", создайте получателей и предоставьте им доступ позже.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:

CREATE SHARE [IF NOT EXISTS] <share-name>
[COMMENT "<comment>"];

Теперь вы можете добавлять таблицы, потоковые таблицы, тома, представления, материализованные представления и модели в общую папку.

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

CLI

Выполните следующую команду с помощью Databricks интерфейса командной строки.

databricks shares create <share-name>

Вы можете использовать --comment для добавления комментария или --json для добавления ресурсов в общий доступ. Дополнительные сведения см. в следующих разделах.

Теперь вы можете добавлять таблицы, потоковые таблицы, тома, представления, материализованные представления и модели в общую папку.

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

Добавление таблиц в общую папку

Перед добавлением таблиц в общий ресурс убедитесь, что вы соответствуете требованиям.

Если вы являетесь администратором рабочей области и унаследовали разрешения USE SCHEMA и USE CATALOG на схему и каталог, содержащие таблицу, из группы администраторов рабочей области, то вы не можете добавить таблицу в общий доступ. Сначала необходимо предоставить себе разрешения на схему и каталог: USE SCHEMA и USE CATALOG.

Note

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

Чтобы добавить таблицы в общую папку, используйте обозреватель каталогов, интерфейс командной строки каталога Databricks Unity или команды SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Предоставленные мной" найдите общий ресурс, к которому нужно добавить таблицу, и щелкните его название. Можно добавить таблицы с включенным отслеживанием строк . Получатели могут запрашивать столбцы, используемые для отслеживания строк.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице "Изменение ресурсов " выберите всю схему (базу данных) или отдельные таблицы.

  6. История. Предоставление доступа к истории таблицы, позволяющее получателям выполнять временные запросы, читать таблицу посредством структурированного потокового вещания Spark или выполнять транзакции. Для обмена объектами Databricks-to-Databricks журнал Delta таблицы также передаётся для повышения производительности. См. статью "Улучшение производительности чтения таблиц с помощью общего доступа к журналу". Для общего доступа к журналам требуется Databricks Runtime 12.2 LTS или более поздней версии.

    Note

    Если вы также хотите, чтобы клиенты могли запрашивать поток данных об изменениях таблицы (CDF) с помощью функции table_changes(), перед тем как предоставить общий доступ, необходимо включить CDF для таблицы.

  7. (Необязательно) Щелкните значок плюс в виде речевого облака. в столбцах Псевдоним или Раздел, чтобы добавить псевдоним или раздел. Псевдонимы и разделы недоступны, если выбрать всю схему. Журнал таблиц включается по умолчанию, если выбрать всю схему.

  8. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks, чтобы добавить таблицу:

ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>  [COMMENT "<comment>"]
   [PARTITION(<clause>)] [AS <alias>]
   [WITH HISTORY | WITHOUT HISTORY];

Выполните следующую команду, чтобы добавить всю схему. Для ADD SCHEMA выполнения команды требуется хранилище SQL или вычислительные ресурсы, работающие под управлением Databricks Runtime 13.3 LTS или более поздней версии. Подробные сведения о схемах общего доступа см. в разделе "Добавление схем в общую папку".

ALTER SHARE <share-name> ADD SCHEMA <catalog-name>.<schema-name>
[COMMENT "<comment>"];

Ниже приведены варианты. PARTITION и AS <alias> недоступны, если выбрать всю схему.

  • PARTITION(<clause>): если вы хотите предоставить общий доступ только к части таблицы, можно указать секцию. Например, см. также (column = 'value')укажите разделы таблиц для общего доступаи используйте свойства получателя для фильтрации разделов.

  • AS <alias>: альтернативное имя таблицы или псевдоним , чтобы сделать имя таблицы более читаемым. Псевдоним — это имя таблицы, которое получатель видит и должен использовать в запросах. Получатели не могут использовать фактическое имя таблицы, если указан псевдоним. Используйте формат <schema-name>.<table-name>.

  • WITH HISTORY или WITHOUT HISTORY: если WITH HISTORY указано, поделитесь таблицей с полной историей, позволяя получателям выполнять запросы по временной шкале, потоковую обработку чтения и выполнение транзакций. Для Databricks-to-Databricks совместного использования также осуществляется передача журнала изменений таблицы Delta, чтобы повысить производительность. Поведение по умолчанию для общего доступа к таблицам — WITH HISTORY, если вы используете Databricks Runtime 16.2 или более поздней версии, и WITHOUT HISTORY для более ранних версий Databricks Runtime. Для общего доступа к схеме, значение по умолчанию - WITH HISTORY, независимо от версии Databricks Runtime. WITH HISTORY и WITHOUT HISTORY требуется Databricks Runtime 12.2 LTS или более поздняя версия. См. также повышение производительности чтения таблиц с совместным использованием истории.

    Note

    Если, в дополнение к выполнению запросов с перемещением во времени и потоковых операций чтения, вы хотите, чтобы ваши получатели запрашивали источник данных об изменениях таблицы (CDF), используя функцию table_changes(), необходимо включить CDF в таблице до того, как вы ею поделитесь WITH HISTORY.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Чтобы добавить таблицу, выполните следующую команду с помощью интерфейса командной строки Databricks.

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "ADD",
        "data_object": {
          "name": "<table-full-name>",
          "data_object_type": "TABLE",
          "shared_as": "<table-alias>"
        }
      }
    ]
  }'

Чтобы добавить схему, выполните следующую команду Databricks CLI:

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "ADD",
        "data_object": {
          "name": "<schema-full-name>",
          "data_object_type": "SCHEMA"
        }
      }
    ]
  }'

Note

Для таблиц и только таблиц можно опустить "data_object_type".

Чтобы узнать о параметрах, перечисленных в этом примере, просмотрите инструкции на вкладке SQL.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Сведения об удалении таблиц из общей папки см. в разделе "Обновление общих папок".

Соответствие облачным токенам

Azure Databricks использует облачные токены (временные облачные токены, ограниченные областью пути), чтобы предоставить получателям прямой доступ для чтения к общим файлам таблицы Delta. В открытом протоколе общего доступа это также называется режимом доступа на основе каталогов. Представления, материализованные представления, внешние таблицы, потоковые таблицы, объемы, блокноты, пользовательские функции Python и модели ИИ не поддерживаются. Каким условиям соответствуют таблицы, зависит от протокола совместного доступа.

Совместное использование Databricks to Databricks: маркеры облака используются, когда все следующие значения имеют значение true:

  • Таблица предоставляется для общего доступа WITH HISTORY (полная история с самого начала).
  • Таблица используется без фильтра секционирования.

Открытый общий доступ: облачные маркеры (режим доступа на основе каталогов) используются, когда все следующие значения имеют значение true:

  • Совместно используемый объект — это управляемая или внешняя таблица Delta.
  • Таблица предоставляется для общего доступа WITH HISTORY (полная история с самого начала).
  • Таблица используется без фильтра секционирования.
  • Таблица не является таблицей CCv2.
  • Таблица не использует хранилище по умолчанию.

Для сценариев совместного использования Databricks-to-Databricks облачные токены обмениваются непосредственно между метахранилищами Unity Catalog без использования длительных токенов держателя, обеспечивая производительность, сопоставимую с прямым доступом к исходной таблице. Для открытого общего доступа сервер Delta Sharing включает расположение облачного хранилища таблицы и accessModes: ["url", "dir"] в ответы списка и метаданных. Открытые получатели могут вызывать конечную точку "Создать временные учетные данные таблицы" , чтобы получить учетные данные и прочитать непосредственно из облачного хранилища.

Important

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

Указание разделов таблиц для общего доступа

Чтобы предоставить общий доступ только к части таблицы при добавлении таблицы в общую папку, укажите спецификацию секции. Укажите секции при добавлении таблицы в общую папку или обновлении общей папки с помощью обозревателя каталогов, интерфейса командной строки каталога Databricks Unity или команд SQL в записной книжке Azure Databricks или редакторе запросов Databricks SQL. См. статью "Добавление таблиц в общую папку и обновление общих папок".

Example

В следующем примере SQL делится частью данных в таблице inventory, распределённой по столбцам year, month и date.

  • Данные за 2021 г.
  • Данные за декабрь 2020 г.
  • Данные за 25 декабря 2019 г.
ALTER SHARE share_name
ADD TABLE inventory
PARTITION (year = "2021"),
          (year = "2020", month = "Dec"),
          (year = "2019", month = "Dec", date = "2019-12-25");

Использование свойств получателя для фильтрации секций

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

К свойствам по умолчанию относятся:

  • databricks.accountId: учетная запись Azure Databricks, к которой принадлежит получатель данных (обмен данными только между Databricks и Databricks).
  • databricks.metastoreId: Метахранилище Unity Catalog, к которому принадлежит получатель данных (только для передачи между Databricks).
  • databricks.name: имя получателя данных.

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

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

Например, если таблицы включают столбец идентификатора учетной записи Azure Databricks, можно создать одну общую папку с секциями таблиц, определенными Azure Databricks идентификатором учетной записи. При совместном использовании Delta Sharing динамически предоставляет каждому получателю только данные, связанные с их учетной записью Azure Databricks.

Схема параметризованного динамического разделения в Delta Sharing

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

Чтобы указать секцию, которая фильтруется по свойствам получателя при создании или обновлении общей папки, можно использовать обозреватель каталогов или функцию CURRENT_RECIPIENT SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks:

Note

Свойства получателя доступны в Databricks Runtime 12.2 или более поздней версии.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

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

  4. Нажмите кнопку "Управление ресурсами > " "Добавить ресурсы данных".

  5. На странице "Добавление таблиц " выберите каталог и базу данных, содержащую таблицу, а затем выберите таблицу.

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

  6. (Необязательно) Щелкните значок с изображением плюса в речевом пузыре в столбце раздел, чтобы добавить раздел.

    В диалоговом окне "Добавление секции в таблицу " добавьте спецификацию секции на основе свойств, используя следующий синтаксис:

    (<column-name> = CURRENT_RECIPIENT().<property-key>)
    

    Например

    (country = CURRENT_RECIPIENT().country)
    
  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:

ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>
   PARTITION (<column-name> = CURRENT_RECIPIENT().<property-key>);

Например

ALTER SHARE acme ADD TABLE acme.default.some_table
  PARTITION (country = CURRENT_RECIPIENT().country);

Добавить таблицы с векторами удаления или сопоставлением столбцов в общий доступ

Important

Эта функция доступна в общедоступной предварительной версии.

Векторы удаления — это функция оптимизации хранилища, которую можно включить в таблицах Delta. См. векторы удаления в Databricks.

Azure Databricks также поддерживает сопоставление столбцов для таблиц Delta. См. раздел «Переименование и удаление столбцов с помощью сопоставления столбцов Delta Lake».

Чтобы поделиться таблицей с векторами удаления или сопоставлением столбцов, требуется также предоставить доступ к ее истории. См. раздел "Добавление таблиц в общую папку".

При совместном использовании таблицы с векторами удаления или сопоставлением столбцов получатели могут запрашивать таблицу с помощью SQL-хранилища, вычислительных мощностей с Databricks Runtime 14.1 или более поздней версии, или вычислительных ресурсов, работающих на открытый код delta-sharing-spark 3.1 или более поздней версии. См. "Чтение таблиц с включенными векторами удаления или сопоставлением столбцов" и "Чтение таблиц с включенными векторами удаления или сопоставлением столбцов".

Добавление схем в общую папку

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

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

Поделиться схемами с получателем

Чтобы добавить схему в общую папку, следуйте инструкциям в статье "Добавление таблиц в общую папку", обратите внимание на содержимое, указывающее, как добавить схему.

Для добавления, обновления или удаления схемы с помощью SQL требуется хранилище SQL или вычислительные ресурсы под управлением Databricks Runtime 13.3 LTS или более поздней версии. Выполнение этого же действия с помощью обозревателя каталогов не имеет требований к вычислениям.

Ограничения

  • Вы можете предоставлять общий доступ к схемам, даже если они включают неподдерживаемые ресурсы данных. Эти ресурсы отфильтровываются и не предоставляются получателям. Неподдерживаемые ресурсы данных включают следующее:

    • Таблицы, использующие кластеризацию жидкости с фильтрацией секций
    • Таблицы R2 с контрольной точкой V2
    • Таблицы с включенными коллациями
    • Таблицы с фильтрами строк или масками столбцов
    • SHALLOW CLONE Таблицы
    • Ограничения внешнего ключа в общих таблицах
  • Псевдонимы таблиц, секции и псевдонимы томов недоступны, если вы используете всю схему. Если вы создали псевдонимы или разделы для любых ресурсов в схеме, они удаляются при добавлении всей схемы в общий доступ.

  • Если вы хотите указать дополнительные параметры таблицы или тома в схеме, необходимо предоставить общий доступ к таблице или тому с помощью SQL и предоставить псевдоним таблицы или тома с другим именем схемы.

  • Схемное именование не поддерживается. Схемы с одинаковым именем из разных каталогов нельзя добавлять в одну общую папку. Вместо этого расшарьте отдельные таблицы с именами схем под псевдонимами.

Добавление таблиц и схем, защищенных политиками ABAC в общую папку

Important

Эта функция доступна в общедоступной предварительной версии.

Контроль доступа на основе атрибутов (ABAC) — это модель управления данными, которая обеспечивает гибкий, масштабируемый и централизованный контроль доступа в Azure Databricks.

Вы можете предоставить общий доступ к таблице или схеме, защищенной политиками ABAC, такими как стандартные таблицы. Сведения о применении политик ABAC к ресурсам данных см. в статье "Создание политик ABAC и управление ими".

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

Добавление потоковых таблиц в общий доступ

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

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

Дополнительные требования

  • Если в рабочей области включены привязки каталога рабочих областей, убедитесь, что рабочая область имеет доступ на чтение и запись к каталогу, в которую входит потоковая таблица. Дополнительные сведения см. в привязке рабочего пространства к каталогу.
  • Общие таблицы потоковой передачи должны быть определены на основе таблиц Delta или других общих таблиц потоковой передачи или представлений.
  • При добавлении таблицы потоковой передачи в общую папку необходимо использовать хранилище SQL или вычисление в Databricks Runtime 13.3 LTS или более поздней версии.

Ограничения

  • В таблице потоковой передачи не могут быть фильтры строк и маски столбцов.
    • Базовая таблица таблицы потоковой передачи может содержать фильтры строк и маски столбцов.
  • В таблице потоковой передачи не могут быть фильтры секций. Вместо этого создайте представление в верхней части таблицы потоковой передачи.
  • Получатели открытого доступа могут считывать только текущий моментальный снимок потоковой таблицы. Путешествие во времени, история запросов, потоковое чтение и CDF не поддерживаются для открытых участников. Если вашим получателям требуется CDF, предоставьте стандартную таблицу Delta с включенной функцией CDF.
  • Если получатель не имеет прямого доступа к базовым данным, предложения LIMIT и пушдаун предиката не поддерживаются. Система полностью материализует все результаты запроса, прежде чем возвращать их получателю независимо от фильтров запросов. См. сведения о том, имеют ли получатели прямой доступ к базовым данным в общих представлениях, материализованных представлениях и таблицах потоковой передачи?
  • Также применяются общие ограничения для таблиц потоковой передачи. См. ограничения потоковой таблицы.

Делитесь потоковыми таблицами с получателем

Чтобы добавить потоковые таблицы в совместное использование, выполните приведенные ниже действия.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Расшарено мною" найдите запись, к которой нужно добавить потоковую таблицу, и щелкните её имя.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице "Редактирование ресурсов" найдите или просмотрите таблицу потоковой передачи, которую вы хотите поделиться, и выберите её.

  6. (Необязательно) В столбце "Псевдоним" щелкните значок с плюсом в виде облачка, чтобы указать псевдоним или альтернативное название потоковой таблицы, чтобы облегчить восприятие имени потоковой таблицы. Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать фактическое имя потоковой таблицы, если указан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks.

ALTER SHARE <share_name> ADD TABLE <st_name> [COMMENT <comment>] [AS <shared_st_name>];

CLI

Выполните следующую команду Databricks CLI.

databricks shares update <share-name> \
  --json '{
    “updates”: [
      {
        “action”: “ADD”,
        “data_object”: {
          “name”: “<st-full-name>",
          “data_object_type”: “TABLE”,
          “comment”: “<comment>”
        }
      }
    ]
  }'

Сведения об удалении потоковых таблиц из общей папки см. в разделе "Обновление общих папок".

Добавление управляемых таблиц Iceberg в общую папку

Important

Эта функция доступна в общедоступной предварительной версии.

Apache Iceberg — это формат таблицы открытый код для рабочих нагрузок аналитики. В Azure Databricks можно создавать таблицы Iceberg в каталоге Unity, известные как таблицы управляемые таблицы Айсберга.

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

Note

Azure Databricks не поддерживает совместное использование управляемых таблиц Iceberg с внешними клиентами Iceberg.

Чтобы добавить управляемые таблицы Iceberg в общий доступ, выполните приведенные ниже действия.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Мои общие объекты" найдите общий объект, к которому нужно добавить управляемую таблицу Iceberg, и щелкните его имя.

  4. Нажмите кнопку "Управление ресурсами">.

  5. На странице "Изменение ресурсов" найдите или просмотрите управляемую таблицу Iceberg, которой вы хотите поделиться и выберите её.

  6. (Необязательно) В столбце "Псевдоним" щелкните значок чтобы указать псевдоним или альтернативное управляемое имя таблицы Айсберга, чтобы сделать имя более удобочитаемым. Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать реальное имя управляемой таблицы Iceberg, если задан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks. При необходимости укажите <shared_iceberg_table_name>, чтобы отобразить управляемую таблицу Iceberg под другим именем.

ALTER SHARE <share_name> ADD TABLE <managed_iceberg_name> [COMMENT <comment>] [AS <shared_iceberg_table_name>];

CLI

Выполните следующую команду Databricks CLI.

databricks shares update <share-name> \
  --json '{
    “updates”: [
      {
        “action”: “ADD”,
        “data_object”: {
          “name”: “<managed-iceberg-full-name>",
          “data_object_type”: “TABLE”,
          “comment”: “<comment>”
        }
      }
    ]
  }'

Добавление внешних схем или таблиц в общую папку

Important

Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. Управление предварительными версиями Azure Databricks.

Федерация Lakehouse позволяет использовать Azure Databricks для выполнения запросов к внешним источникам данных. Вы можете создавать внешние схемы и таблицы, содержащие данные и метаданные, управляемые внешними системами, с помощью каталога Unity, добавляющего управление данными для запроса этих таблиц. Дополнительные сведения о подключении к внешним источникам см. в статье "Что такое Федерация Lakehouse?".

Delta Sharing позволяет безопасно совместно использовать данные из их исходного расположения, без копирования данных в Azure Databricks, сложных сетевых настроек или передачи учетных данных.

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

Дополнительные требования

  • Для предварительных версий на уровне учетной записи необходимо включить обмен данными федерации Lakehouse. См. Управление предварительными версиями Azure Databricks.

  • Необходимо включить бессерверные вычисления для рабочих процессов, записных книжек и декларативных конвейеров Spark Lakeflow в учетной записи, в которой настроена внешняя схема или внешний общий доступ к таблицам. См. раздел "Подключение к бессерверным вычислениям".

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

    Дополнительные сведения о региональной доступности хранилища по умолчанию см. в разделе "Бессерверная доступность".

    Чтобы отказаться от использования по умолчанию хранилища Azure Databricks и использовать собственное хранилище для временной материализации, обратитесь в службу поддержки.

    Important

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

  • Если вы решите использовать хранилище по умолчанию, необходимо включить Delta Sharing для хранилища по умолчанию — расширенный доступ на уровне учетной записи. См. Управление предварительными версиями Azure Databricks.

Ограничения

  • Общие внешние таблицы не поддерживают LIMIT условия или предикатное выталкивание. Система полностью материализует все результаты запроса, прежде чем возвращать их получателю независимо от фильтров запросов.

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

  • Сохраните размер типичных результатов запроса менее 10 ГБИТ/с.
  • Используйте нерегламентированные поисковые запросы вместо частых дампов данных.
  • При использовании совместного доступа к облачным токенам рекомендуется использовать материализованные представления, созданные на основе внешних таблиц, для повышения экономической эффективности и улучшения производительности.

Предоставьте доступ к внешней схеме или таблице получателю

Чтобы добавить внешние схемы или таблицы в общую папку, используйте обозреватель каталогов, интерфейс командной строки каталога Databricks Unity или команды SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Поделено мной" найдите ресурс, к которому нужно добавить внешнюю таблицу или схему, и щелкните его имя.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

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

  6. (Необязательно) В столбце "Псевдоним" нажмите значок чтобы задать псевдоним или альтернативное имя внешней схемы или таблицы, чтобы сделать имя внешней схемы или таблицы более читаемым. Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать реальную внешнюю схему или имя таблицы, если указан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

ALTER SHARE <share-name>
  ADD {TABLE | SCHEMA} {federated_catalog.federated_schema.federated_table | federated_catalog.federated_schema}
  [COMMENT "<comment>"]
  [AS <alias>];

Возможные варианты:

  • AS <alias>: альтернативное имя или псевдоним, чтобы сделать имя ресурса данных более удобочитаемым. Псевдоним — это имя ресурса данных, которое получатель видит и должен использовать в запросах. Получатели не могут использовать фактическое имя, если указан псевдоним. Используйте формат <catalog-name>.<schema-name>.<view-name>.
  • COMMENT "<comment>": примечания отображаются в пользовательском интерфейсе обозревателя каталогов, а также при отображении сведений о ресурсе данных с помощью инструкций SQL.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

databricks shares update <share-name> \
  --json '{
    “updates”: [
      {
        “action”: “ADD”,
        “data_object”: {
          “name”: “<federated-data-asset-full-name>",
          “data_object_type”: “{TABLE | SCHEMA}”,
          "shared_as": "<foreign-data-asset-alias>",
          “comment”: “<comment>”
        }
      }
    ]
  }'

Добавление внешних таблиц Iceberg в общую папку

Important

Эта функция доступна в общедоступной предварительной версии.

Внешние таблицы Iceberg — это таблицы, федерализованные из удалённых каталогов Iceberg с использованием Lakehouse Federation. Дополнительные сведения о таблицах Apache Iceberg в Azure Databricks см. в статье Что такое Apache Iceberg в Azure Databricks?.

Убедитесь, что вы соответствуете общим требованиям и создайте общий ресурс перед началом работы. Вы также можете поделиться иностранными таблицами Айсберга получателям с помощью внешних клиентов Айсберга. Дополнительные сведения см. в разделе "Включение общего доступа к внешним клиентам Iceberg".

Note

Чтобы убедиться, что получатели получают самые свежие данные, периодически обновляйте свои запросы к таблицам внешней базы "Iceberg". Любой SELECT запрос или REFRESH TABLE команда обновляет метаданные таблицы.

Databricks рекомендует настроить запланированное задание, чтобы внешняя таблица Iceberg на Azure Databricks оставалась в синхронизации с удалённым источником Iceberg. Дополнительные сведения о планировании обновлений см. в разделе "Планирование запроса".

Дополнительные требования

Ограничения

  • Разделы не поддерживаются.
  • При совместном использовании с открытыми получателями, не использующими клиент Iceberg, LIMIT предложения и предикатный pushdown не поддерживаются. Система полностью материализует все результаты запроса, прежде чем возвращать их получателю независимо от фильтров запросов.

Добавление внешней таблицы Айсберга в общую папку

Внешние таблицы Айсберга автоматически делятся с полной историей.

Чтобы добавить иностранную таблицу Айсберга в общую папку:

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Мне предоставлен общий доступ", найдите общую папку, к которой вы хотите добавить иностранную таблицу Iceberg, и щелкните ее имя.

  4. Нажмите кнопку "Управление ресурсами">.

  5. На странице "Изменение активов" найдите или просмотрите иностранную таблицу Iceberg, которой вы хотите поделиться, и выберите её.

  6. (Необязательно) В столбце Псевдоним щелкните значок , чтобы указать псевдоним. Псевдоним — это имя, которое видит получатель и должен использовать в запросах.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks. При необходимости укажите <shared_table_name>, чтобы сделать иностранную таблицу Iceberg доступной под другим именем.

ALTER SHARE <share_name> ADD TABLE <foreign_iceberg_table_name> [COMMENT <comment>] [AS <shared_table_name>];

CLI

Выполните следующую команду Databricks CLI.

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "ADD",
        "data_object": {
          "name": "<foreign-iceberg-table-full-name>",
          "data_object_type": "TABLE",
          "comment": "<comment>"
        }
      }
    ]
  }'

Добавьте просмотры к общему доступу

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

При обмене представлениями данные запрашиваются и временно материализуются. Материализованные данные хранятся в расположении хранилища родительской схемы или каталога представления или в корневом расположении хранилища метаданных.

Перед добавлением представлений в общий доступ убедитесь в соответствии с требованиями.

Дополнительные требования

Ограничения

Делитесь представлениями с получателем

В этом разделе описывается добавление представлений в общую папку с помощью обозревателя каталогов, интерфейса командной строки Databricks или команд SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks. Если вы предпочитаете использовать REST API каталога Unity, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

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

  4. Нажмите кнопку "Управление ресурсами > " "Добавить ресурсы данных".

  5. На странице Добавление таблиц найдите или просмотрите представление, которое вы хотите предоставить, и выберите его.

  6. (Необязательно) Щелкните значок с пузырем для речи и плюсом. в столбце Псевдоним, чтобы указать другое имя представления или псевдоним, чтобы сделать имя представления более удобочитаемым. Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать реальное имя представления, если указан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:

ALTER SHARE <share-name> ADD VIEW <catalog-name>.<schema-name>.<view-name>
   [COMMENT "<comment>"]
   [AS <alias>];

Возможные варианты:

  • AS <alias>: альтернативное имя представления или псевдоним, чтобы сделать его более читаемым. Псевдоним — это имя представления, которое видит получатель и которое он должен использовать в запросах. Получатели не могут использовать реальное имя представления, если указан псевдоним. Используйте формат <schema-name>.<view-name>.
  • COMMENT "<comment>": Комментарии отображаются в пользовательском интерфейсе обозревателя каталогов и при перечислении и просмотре сведений с помощью инструкций SQL.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Выполните следующую команду Databricks CLI:

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "ADD",
        "data_object": {
          "name": "<view-full-name>",
          "data_object_type": "VIEW",
          "shared_as": "<view-alias>"
        }
      }
    ]
  }'

"shared_as": "<view-alias>" является необязательным и предоставляет альтернативное имя вида или псевдоним для улучшения читаемости. Псевдоним — это имя представления, которое видит получатель и которое он должен использовать в запросах. Получатели не могут использовать реальное имя представления, если указан псевдоним. Используйте формат <schema-name>.<view-name>.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Сведения об удалении представлений из общей папки см. в разделе "Обновление общих папок".

Добавьте динамические представления в общий ресурс для фильтрации строк и столбцов

Динамические представления можно использовать для настройки точного контроля доступа к табличным данным, в том числе:

  • Безопасность на уровне столбцов или строк.
  • Маскирование данных.

При создании динамического представления, использующего функцию CURRENT_RECIPIENT(), можно ограничить доступ получателя в соответствии с свойствами, указанными в определении получателя.

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

Requirements

  • Убедитесь, что вы соответствуете требованиям для добавления вида в общий доступ.
  • Версия Databricks Runtime: Функция CURRENT_RECIPIENT поддерживается в Databricks Runtime 14.2 и выше.

Ограничения

  • На совместное использование представления распространяются все ограничения.
  • Если поставщик предоставляет общий доступ к представлению, использующее CURRENT_RECIPIENT функцию, поставщик не может напрямую запрашивать представление из-за контекста совместного использования. Чтобы протестировать такое динамическое представление, поставщик должен поделиться представлением с собой и запросить представление в качестве получателя.
  • Поставщики не могут создать представление, которое ссылается на динамическое представление.

Задайте свойство получателя

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

Свойства получателя можно задать с помощью обозревателя каталогов или команд SQL в записной книжке Azure Databricks или редакторе запросов SQL.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Получатели" найдите получателя, к которому нужно добавить свойства, и щелкните его имя.

  4. В правой нижней части страницы в разделе свойств Recipient Щелкните значок Pencil icon. карандаш рядом с databricks.metastoreID для получателя Azure Databricks или рядом с databricks.name для открытого получателя.

  5. В диалоговом окне "Изменить свойства получателя " введите имя столбца в качестве ключа (в данном случае country) и значение, которое необходимо отфильтровать в качестве значения (например, CA).

  6. Нажмите кнопку Сохранить.

SQL

Чтобы задать свойство получателя, используйте ALTER RECIPIENT. В этом примере свойство country установлено в CA.

ALTER RECIPIENT recipient1 SET PROPERTIES ('country' = 'CA');

Создайте динамическое представление с правами доступа на уровне строк для получателей

В этом примере только получатели с соответствующим country свойством могут просматривать определенные строки.

CREATE VIEW my_catalog.default.view1 AS
  SELECT * FROM my_catalog.default.my_table
  WHERE country = CURRENT_RECIPIENT('country');

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

Создание динамического представления с разрешением на уровне столбца для получателей

В этом примере только получатели, соответствующие свойству country , могут просматривать определенные столбцы. Другие пользователи видят возвращаемые данные следующим REDACTEDобразом:

CREATE VIEW my_catalog.default.view2 AS
  SELECT
  CASE
    WHEN CURRENT_RECIPIENT('country') = 'US' THEN pii
    ELSE 'REDACTED'
  END AS pii
  FROM my_catalog.default.my_table;

Предоставление общего доступа к динамическому представлению получателю

Чтобы предоставить общий доступ к динамическому представлению получателю, используйте те же команды SQL или процедуру пользовательского интерфейса, что и для стандартного представления. См. раздел "Добавление представлений в общую папку".

Добавление материализованных представлений в общую папку

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

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

Дополнительные требования

  • Если в рабочей области включены привязки каталога рабочей области, убедитесь, что рабочая область имеет доступ на чтение и запись к каталогу, содержащему материализованное представление. Дополнительные сведения см. в привязке рабочего пространства к каталогу.
  • Разделяемые материализованные представления должны быть определены на Delta-таблицах или других разделяемых потоковых таблицах, представлениях или материализованных представлениях.
  • При добавлении материализованного представления в объект общего доступа необходимо использовать хранилище SQL или платформу вычислений в Databricks Runtime 13.3 LTS или более поздней версии.

Ограничения

  • Материализованное представление не может иметь фильтры строк, но базовая таблица материализованного представления может иметь фильтры строк и маски столбцов.
  • Материализованное представление не может иметь фильтры разделов. Вместо этого создайте представление поверх материализованного представления.
  • Открытый получатель общего доступа может считывать только текущий моментальный снимок материализованного представления. Потоковые операции чтения не поддерживаются для открытых получателей.
  • Если получатель не имеет прямого доступа к базовым данным, предложения LIMIT и пушдаун предиката не поддерживаются. Система полностью материализует все результаты запроса, прежде чем возвращать их получателю независимо от фильтров запросов. См. сведения о том, имеют ли получатели прямой доступ к базовым данным в общих представлениях, материализованных представлениях и таблицах потоковой передачи?
  • Общие ограничения для материализованных представлений также применяются. См. ограничения материализованных представлений.

Поделитесь материализованными представлениями с получателем

В этом разделе описывается добавление материализованных представлений в общую папку с помощью обозревателя каталогов, интерфейса командной строки Databricks или команд SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks. Если вы предпочитаете использовать REST API, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Отправлено мной" найдите общий ресурс, к которому нужно добавить материализованное представление, и щелкните его название.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице "Изменение ресурсов" найдите или просмотрите материализованное представление, которым вы хотите поделиться, и выберите его.

  6. (Необязательно) В столбце "Псевдоним" нажмите значок с плюсом на всплывающей подсказке, чтобы указать псевдоним или альтернативное имя материализованного представления, и сделать его название более читабельным. Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать фактическое материализованное имя представления, если указан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks.

ALTER SHARE <share_name> ADD MATERIALIZED VIEW <mv_name> [COMMENT <comment>] [AS <shared_mv_name>];

CLI

databricks shares update <share-name> \
  --json '{
    “updates”: [
      {
        “action”: “ADD”,
        “data_object”: {
          “name”: “<mat-view-full-name>”,
          “data_object_type”: “MATERIALIZED_VIEW”,
          “comment”: “<comment>”
        }
      }
    ]
  }'

Сведения об удалении материализованных представлений из общей папки см. в разделе "Обновление общих папок".

Добавление томов в объект общего доступа

В каталоге Unity объекты тома представляют логический объем хранилища в расположении облачного хранилища объектов. Они предназначены в первую очередь для управления ресурсами не табличных данных. См. раздел "Что такое тома каталога Unity?".

Перед добавлением томов в общую папку убедитесь в соответствии с требованиями .

Дополнительные требования

  • Обмен томами поддерживается только при обмене между Databricks и Databricks.
  • При добавлении тома в общую папку необходимо использовать хранилище SQL версии 2023.50 или более поздней версии или вычислительный ресурс в Databricks Runtime 14.1 или более поздней.
  • Если хранилище томов на стороне поставщика имеет пользовательские конфигурации сети (например, брандмауэр или приватный канал), поставщик должен убедиться, что адреса передающей плоскости получателя правильно включены в разрешённый список, чтобы обеспечить возможность подключения к месту хранения томов. Обозреватель каталогов может неправильно отображать тома на стороне получателя.

Note

Комментарии томов включаются в совместный доступ, который предоставляется получателю с использованием обмена Databricks-на-Databricks начиная с 25 июля 2024 года. Если вы хотите начать общий доступ к комментариям через общую папку, которая была предоставлена получателю до даты выпуска, необходимо отозвать и повторно предоставить получателю доступ для активации общего доступа к комментариям.

Предоставьте доступ к томам получателю

В этом разделе описывается добавление томов в общую папку с помощью обозревателя каталогов, командной строки Databricks или команд SQL в Azure Databricks записной книжке или редакторе SQL-запросов. Если вы предпочитаете использовать REST API каталога Unity, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Общий доступ ко мне" найдите общую папку, к которой нужно добавить том, и щелкните ее имя.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице "Изменение ресурсов" найдите или просмотрите том, который вы хотите предоставить, и выберите его.

    Кроме того, можно выбрать всю схему, содержащую том. См. раздел "Добавление схем в общую папку".

  6. (Необязательно) Щелкните значок плюса на значке с речевым облачком. в столбце Псевдоним, чтобы указать альтернативное имя тома или псевдоним, чтобы сделать имя тома более удобочитаемым.

    Псевдонимы недоступны, если выбрать всю схему.

    Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Если указан псевдоним, получатели не могут использовать фактическое имя тома.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:

ALTER SHARE <share-name> ADD VOLUME <catalog-name>.<schema-name>.<volume-name>
   [COMMENT "<comment>"]
   [AS <alias>];

Возможные варианты:

  • AS <alias>: альтернативное имя тома или псевдоним, чтобы сделать имя тома более читаемым. Псевдоним — это имя тома данных, которое видит получатель и должен использовать в запросах. Получатели не могут использовать фактическое имя тома, если указан псевдоним. Используйте формат <schema-name>.<volume-name>.
  • COMMENT "<comment>": Примечания отображаются в пользовательском интерфейсе обозревателя каталогов, а также при перечислении и отображении сведений о томе с помощью инструкций SQL.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Выполните следующую команду с помощью Databricks CLI 0.210 или более поздней версии:

 databricks shares update <share-name> \
   --json '{
     "updates": [
       {
         "action": "ADD",
         "data_object": {
           "name": "<volume-full-name>",
           "data_object_type": "VOLUME",
           "string_shared_as": "<volume-alias>"
         }
       }
     ]
   }'

"string_shared_as": "<volume-alias>" является необязательным и предоставляет альтернативное имя тома или псевдоним, чтобы сделать имя тома более читаемым. Псевдоним — это имя тома данных, которое видит получатель и должен использовать в запросах. Получатели не могут использовать фактическое имя тома, если указан псевдоним. Используйте формат <schema-name>.<volume-name>.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Сведения об удалении томов из общей папки см. в разделе "Обновление общих папок".

Добавьте Python UDF в объект общего доступа

Определяемые пользователем функции (UDFS) позволяют повторно использовать и совместно использовать код, расширяющий встроенные функции на Azure Databricks. Чтобы узнать, как создавать пользовательские функции Python, см. статью Пользовательские скалярные функции — Python.

Убедитесь, что вы соответствуете requirements перед добавлением Python пользовательских файлов в общую папку.

Дополнительные ограничения

  • Вы не можете поделиться пользовательскими Python-функциями с открытым получателем.

Предоставление доступа к UDF Python получателю

В этом разделе описывается, как добавить определяемые пользователем функции Python в общий доступ с помощью обозревателя каталогов, интерфейса командной строки Databricks или команд SQL в записной книжке Azure Databricks или редакторе запросов SQL. Если вы предпочитаете использовать REST API каталога Unity, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке Моё общее найдите элемент, к которому нужно добавить Python UDF, и нажмите на его имя.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице Редактировать ресурсы ищите или просмотрите Python UDF, к которому вы хотите предоставить общий доступ, и выберите его.

    Кроме того, можно выбрать всю схему, содержащую Python UDF. См. раздел "Добавление схем в общую папку".

  6. (Необязательно) Щелкните значок Speech plus icon. в столбце Alias, чтобы указать альтернативное имя Python UDF, или Alias, чтобы сделать Python имя UDF более читаемым.

    Псевдонимы недоступны, если выбрать всю схему.

    Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Если указан псевдоним, получатели не могут использовать фактическое Python имя UDF.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду ADD MODEL, в блокноте или в редакторе SQL-запросов Databricks.

ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<python-udf-name>
   [AS <alias>];

Возможные варианты:

  • AS <alias>: альтернативное имя Python UDF или псевдоним, чтобы сделать имя UDF более читаемым. Псевдоним — это Python имя UDF, которое получатель видит и должен использовать в запросах. Получатели не могут использовать оригинальное имя UDF на языке Python, если им указан псевдоним. Используйте формат <schema-name>.<python-udf-name>.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Выполните следующую команду, которая указывает тип объекта в качестве модели, используя Интерфейс командной строки Databricks 0.210 или более поздней версии:

 databricks shares update <share-name> \
   --json '{
     "updates": [
       {
         "action": "ADD",
         "data_object": {
           "name": "<python-udf-full-name>",
           "data_object_type": "MODEL",
           "string_shared_as": "<python-udf-alias>"
         }
       }
     ]
   }'

"string_shared_as": "<python-udf-alias>" является необязательным и предоставляет альтернативное Python имя UDF или псевдоним, чтобы сделать Python имя UDF более читаемым. Псевдоним — это Python имя UDF, которое получатель видит и должен использовать в запросах. Получатели не могут использовать оригинальное имя UDF на языке Python, если им указан псевдоним. Используйте формат <schema-name>.<python-udf-name>.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Добавьте FeatureSpecs в общий доступ

A FeatureSpec — это определяемый пользователем набор характеристик и функций. Получатели могут создать конечную точку предоставления функций из общего FeatureSpec. Чтобы узнать, как создать FeatureSpecs, см. в разделе "Создание FeatureSpec".

Проверьте, что вы соответствуете требованиям перед добавлением FeatureSpecs в общий ресурс.

Дополнительные требования

  • Все зависимости должны быть добавлены в общий ресурс. При использовании пользовательского интерфейса для добавления FeatureSpec в общую папку все зависимости должны автоматически добавляться в общую папку.
  • Если зависимость добавляется в модель, она также должна быть добавлена в общий доступ.

Дополнительные ограничения

  • Если этот ресурс является зависимостью другой модели, нельзя указать псевдоним.
  • Вы не можете поделиться FeatureSpecs с открытым получателем.

Предоставление общего доступа FeatureSpecs получателю

В этом разделе описывается, как добавить FeatureSpecs в общий ресурс с помощью Catalog Explorer, интерфейса командной строки Databricks или SQL-команд в записной книжке Azure Databricks или редакторе SQL-запросов. Если вы предпочитаете использовать REST API каталога Unity, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Общий доступ ко мне" найдите общую папку, к которой вы хотите добавить FeatureSpec и щелкните ее имя.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

  5. На странице "Изменение ресурсов" найдите или просматривайте нужный FeatureSpec ресурс и выберите его.

    Кроме того, можно выбрать всю схему, содержащую FeatureSpec. См. раздел "Добавление схем в общую папку".

  6. (Необязательно) Щелкните значок в столбце "Псевдоним", чтобы указать альтернативное FeatureSpec имя или псевдоним, чтобы сделать FeatureSpec имя более удобочитаемым.

    Псевдонимы недоступны, если выбрать всю схему.

    Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Если указан псевдоним, получатели не могут использовать фактическое FeatureSpec имя.

  7. Если есть какие-либо зависимости, в диалоговом окне "Добавить все зависимости " сообщается, что все они добавляются автоматически. Нажмите кнопку "Добавить все зависимости".

  8. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду ADD MODEL, в блокноте или в редакторе SQL-запросов Databricks.

ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<featurespec-name>
   [AS <alias>];

--Параметры включают:

  • AS <alias>: альтернативное FeatureSpec имя или псевдоним, чтобы сделать FeatureSpec имя более читаемым. Псевдоним — это FeatureSpec имя, которое видит получатель и которое он должен использовать в запросах. Получатели не могут использовать фактическое FeatureSpec имя, если указан псевдоним. Используйте формат <schema-name>.<featurespec-name>.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Выполните следующую команду, которая указывает тип объекта в качестве модели, используя Интерфейс командной строки Databricks 0.210 или более поздней версии:

 databricks shares update <share-name> \
   --json '{
     "updates": [
       {
         "action": "ADD",
         "data_object": {
           "name": "<featurespec-full-name>",
           "data_object_type": "MODEL",
           "string_shared_as": "<featurespec-alias>"
         }
       }
     ]
   }'

"string_shared_as": "<volume-alias>" является необязательным и предоставляет альтернативное FeatureSpec имя или псевдоним, чтобы сделать FeatureSpec имя более читаемым. Псевдоним — это FeatureSpec имя, которое видит получатель и которое он должен использовать в запросах. Получатели не могут использовать фактическое FeatureSpec имя, если указан псевдоним. Используйте формат <schema-name>.<featurespec-name>.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Добавление моделей в общий доступ

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

Note

Комментарии модели и комментарии к версии модели включаются в объекты общего доступа, которые передаются через Databricks-to-Databricks обмен.

Дополнительные требования

  • Поддержка общего доступа к моделям осуществляется только для обмена между Databricks и Databricks.
  • При добавлении модели в общий доступ необходимо использовать склад данных SQL версии 2023.50 и выше или вычислительный ресурс Databricks Runtime 14.0 и выше.

Совместное использование моделей с получателем

В этом разделе описывается, как добавлять модели в общую папку с помощью обозревателя каталогов, интерфейса командной строки Databricks или команды SQL в Azure Databricks записной книжке или редакторе запросов SQL. Если вы предпочитаете использовать REST API каталога Unity, ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Чтобы добавить модели в общий доступ:

Обозреватель каталогов

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Доступ, предоставленный мной" найдите общий доступ, к которому нужно добавить модель, и щелкните его название.

  4. Нажмите кнопку "Управление ресурсами", чтобы изменить ресурсы>.

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

    Кроме того, можно выбрать всю схему, содержащую модель. См. раздел "Добавление схем в общую папку".

  6. (Необязательно) Щелкните значок со значком плюса в облачке в столбце «Псевдоним», чтобы указать альтернативное имя модели или псевдоним, чтобы сделать имя модели более легко читаемым.

    Псевдонимы недоступны, если выбрать всю схему.

    Псевдоним — это имя, которое видит получатель и должен использовать в запросах. Получатели не могут использовать фактическое имя модели, если указан псевдоним.

  7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks:

ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<model-name>
   [COMMENT "<comment>"]
   [AS <alias>];

Возможные варианты:

  • AS <alias>: альтернативное имя модели или псевдоним, чтобы сделать имя модели более читаемым. Псевдоним — это имя модели, которое получатель видит и должен использовать в запросах. Получатели не могут использовать фактическое имя модели, если указан псевдоним. Используйте формат <schema-name>.<model-name>.
  • COMMENT "<comment>": примечания отображаются в пользовательском интерфейсе обозревателя каталогов, а также при отображении сведений о модели с помощью инструкций SQL.

Для получения дополнительной информации о параметрах ALTER SHARE см. ALTER SHARE.

CLI

Выполните следующую команду с помощью Databricks CLI 0.210 или более поздней версии:

 databricks shares update <share-name> \
   --json '{
     "updates": [
       {
         "action": "ADD",
         "data_object": {
           "name": "<model-full-name>",
           "data_object_type": "MODEL",
           "string_shared_as": "<model-alias>"
         }
       }
     ]
   }'

"string_shared_as": "<model-alias>" является необязательным и предоставляет альтернативное имя модели или псевдоним, чтобы сделать имя модели более читаемым. Псевдоним — это имя модели, которое получатель видит и должен использовать в запросах. Получатели не могут использовать фактическое имя модели, если указан псевдоним. Используйте формат <schema-name>.<model-name>.

Чтобы узнать о дополнительных параметрах, запустите databricks shares update --help или ознакомьтесь со статьей PATCH /api/2.1/unity-catalog/shares/ в справочнике по REST API.

Сведения об удалении моделей из общей папки см. в разделе "Обновление общих папок".

Добавить файлы записной книжки в общий доступ

Перед добавлением файлов записной книжки в общую папку убедитесь в соответствии с требованиями .

Используйте обозреватель каталогов для добавления файла записной книжки в общую папку.

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.
  2. Нажмите кнопку Delta Sharing >.
  3. На вкладке "Общий доступ" найдите общую папку, в которую вы хотите добавить записную книжку, и щелкните ее имя.
  4. Щелкните "Управление ресурсами " и выберите "Добавить файл записной книжки".
  5. На странице "Добавить файл записной книжки " щелкните значок файла, чтобы найти записную книжку, которую вы хотите предоставить.
    • Щелкните файл, к которому нужно предоставить общий доступ, и нажмите кнопку "Выбрать".
    • (Необязательно) укажите понятный псевдоним для файла в поле Поделитесь как. Это идентификатор, который видят получатели.
    • В разделе "Расположение хранилища" введите внешнее расположение в облачном хранилище, где вы хотите сохранить записную книжку. Можно указать подпуть в рамках заданного внешнего расположения. Если не указано внешнее местоположение, записная книжка сохраняется в местоположении хранилища уровня метахранилища (или в корневом местоположении метахранилища). Если корневое расположение для хранилища метаданных не определено, необходимо ввести здесь внешнее расположение. См. статью "Добавление управляемого хранилища в существующее хранилище метаданных".
  6. Нажмите кнопку Сохранить.

Файл общей записной книжки теперь отображается в списке файлов записной книжки на вкладке "Ресурсы ".

Удаление файлов записной книжки из общих папок

Чтобы удалить файл записной книжки из общего доступа:

  1. В рабочей области Azure Databricks щелкните Data icon.Catalog.

  2. В верхней части области каталога щелкните значок Шестеренки. Значок шестеренки и выберите Delta Sharing.

    Кроме того, в правом верхнем углу щелкните Поделиться Delta Sharing>.

  3. На вкладке "Предоставлено мной" найдите объект доступа, который включает записную книжку, и щелкните его название.

  4. На вкладке "Ресурсы" найдите файл записной книжки, который нужно удалить из общей папки.

  5. Щелкните значок меню кебаб справа от строки и выберите Удалить файл записной книжки.

  6. В диалоговом окне подтверждения нажмите кнопку "Удалить".

Обновление файлов записной книжки в общих папках

Чтобы обновить записную книжку, к которой вы уже предоставили общий доступ, необходимо повторно добавить ее, предоставив ей новый псевдоним в поле "Общий доступ". Databricks рекомендует использовать имя, указывающее измененное состояние записной книжки, например <old-name>-update-1. Возможно, вам потребуется уведомить получателя об изменении. Получатель должен выбрать и клонировать новую записную книжку, чтобы воспользоваться преимуществами обновления.

Предоставление общего доступа внешним клиентам Iceberg

Вы можете делиться таблицами Delta, внешними таблицами Iceberg, представлениями, материализованными представлениями и потоковыми таблицами с внешними клиентами Iceberg, которые используют REST API в каталоге Apache Iceberg.

Прежде чем предоставлять общий доступ, убедитесь, что вы отвечаете требованиям Delta Sharing, необходимым для добавления вашего ресурса данных в общий доступ.

Note

Эта функция отличается от общего доступа к управляемым таблицам Iceberg.

Дополнительные ограничения

  • Таблицы с включенными векторами удаления не поддерживаются.
  • Управляемые таблицы Айсберга не поддерживаются.
  • Ресурсы, использующие хранилище по умолчанию, не могут быть общими для внешних клиентов Iceberg. См. сведения о хранилище по умолчанию в Databricks.

Совместное использование с внешними клиентами Iceberg

Для совместного использования ресурсов данных с внешними клиентами Iceberg:

  1. Если вы предоставляете общий доступ к таблице Delta, настройте каждую таблицу Delta с IcebergCompatV3, чтобы представить ее как таблицу, совместимую с Айсбергом. Это позволяет асинхронную генерацию метаданных Iceberg наряду со стандартными операциями Delta. Убедитесь, что вы соответствуете требованиям для совместного использования таблиц Delta с клиентами Айсберга и соблюдайте ограничения. Чтобы узнать, как включить чтение Iceberg, см. Enable Iceberg reads (UniForm).

    Если вы предоставляете общий доступ к Snowflake, для получателя отображаются только однородные таблицы. Другие таблицы фильтруются.

    Note

    • Используйте DESCRIBE HISTORY для подтверждения того, что создание метаданных Айсберга завершено до того, как таблица может быть запрошена клиентами Iceberg.
    • Тип проверки подлинности OIDC не поддерживается.
  2. Добавьте ресурс данных в общий доступ. Подробные инструкции см. в следующих разделах:

    Important

    Материализация данных на стороне поставщика активируется при обмене представлениями, материализованными представлениями или потоковыми таблицами, что может вызвать накопление вычислительных затрат. Дополнительные сведения см. в статье «Как контролировать и проверять затраты на Delta Sharing?».

  3. Поделиться с доступным получателем. Инструкции по созданию получателя и предоставлению ему доступа к общему ресурсу см. в статье "Создание объекта получателя для пользователей, не являющихся Databricks, с использованием токенов доступа (открытый общий доступ).

Дополнительные ресурсы