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


Что такое Delta Sharing?

В этой статье представлена платформа Delta Sharing в Azure Databricks — безопасная система обмена данными, которая позволяет делиться данными и ресурсами ИИ в Azure Databricks с пользователями вне вашей организации, независимо от того, используют ли они Databricks или нет. Delta Sharing также является основой для Databricks Marketplace, открытого форума для обмена продуктами данных, и защищенных рабочих пространств, безопасной и конфиденциальной среды, в которой несколько сторон могут работать вместе над конфиденциальными корпоративными данными.

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

Примечание.

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

Как работает Delta Sharing?

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

Существует три способа обмена данными, используя Delta Sharing:

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

    Этот подход использует сервер delta Sharing, встроенный в Azure Databricks. Она поддерживает некоторые функции Delta Sharing, которые не поддерживаются в других протоколах, включая общий доступ к записным книжкам, общий доступ к хранилищам Unity Catalog, общий доступ к моделям искусственного интеллекта Unity Catalog, управление данными в Unity Catalog, аудит и отслеживание использования как для поставщиков, так и для получателей. Интеграция с каталогом Unity упрощает настройку и управление для поставщиков и получателей и повышает производительность.

    См. общий доступ к данным с использованием протокола Delta Sharing Databricks-to-Databricks (для поставщиков).

  2. Протокол открытого общего доступа Databricks, который позволяет совместно использовать табличные данные, управляемые в рабочей области Databricks с поддержкой Unity Catalog, с пользователями на любой вычислительной платформе.

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

    См. раздел "Использование открытого протокола Delta Sharing для совместного доступа к данным (для поставщиков)".

  3. Реализация управляемого клиентом сервера Delta Sharing с открытым кодом, которая позволяет предоставлять общий доступ от любой платформы к любой платформе, независимо от того, используется ли Databricks или нет.

    Документация по Azure Databricks не содержит инструкции по настройке собственного сервера Delta Sharing. См . github.com/delta-io/delta-sharing.

архитектура доступа к данным Delta Sharing.

Акции, поставщики и получатели

Основными концепциями Delta Sharing в Azure Databricks являются доли, поставщикии получатели.

Что такое акция?

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

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

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

См. раздел "Создание и управление общими доступами для Delta Sharing".

Что такое поставщик?

Поставщик — это сущность, которая предоставляет доступ к данным получателю. Если вы являетесь поставщиком и хотите воспользоваться встроенным сервером Databricks Delta Sharing и управлять долями и получателями с помощью каталога Unity, вам потребуется по крайней мере одна рабочая область Azure Databricks, которая включена для каталога Unity. Вам не нужно перенести все существующие рабочие области в каталог Unity. Вы можете легко создать новую рабочую область с поддержкой Unity Catalog для ваших нужд в Delta Sharing.

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

Что такое получатель?

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

В качестве поставщика данных (sharer) можно определить нескольких получателей для любого хранилища метаданных каталога Unity, однако если требуется предоставить общий доступ к данным из нескольких хранилищ метаданных с определенным пользователем или группой пользователей, необходимо задать получателя отдельно для каждого хранилища метаданных. У получателя может быть доступ к нескольким общим ресурсам.

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

См. статью "Создание и управление получателями данных для Delta Sharing".

Открытие общего доступа и совместное использование Databricks в Databricks

В этом разделе описаны два протокола для совместного использования из рабочей области Databricks с включённым Unity Catalog.

Примечание.

В этом разделе предполагается, что поставщик находится в рабочей области Azure Databricks с поддержкой каталога Unity. Дополнительные сведения о настройке сервера Delta Sharing с открытым исходным кодом для общего доступа из платформы, не являющейся Databricks, или рабочей области, не являющейся Unity Catalog, см. в github.com/delta-io/delta-sharing.

Способ использования Delta Sharing в Azure Databricks зависит от того, с кем они обмениваются данными:

  • Открытый общий доступ позволяет совместно использовать данные с любым пользователем, независимо от того, имеет ли он доступ к Azure Databricks.
  • обмен между платформами Databricks позволяет обмениваться данными с пользователями Azure Databricks, рабочие области которых подключены к хранилищу метаданных Unity Catalog, отличному от вашего. Databricks to Databricks также поддерживает доступ к записным книжкам, томам и моделям, которые недоступны в открытом совместном доступе.

Что такое Open Delta Sharing?

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

Получатели могут получить доступ к общим данным с помощью множества вычислительных средств и платформ, включая:

  • Azure Databricks
  • Apache Spark
  • Pandas.
  • Power BI

Полный список соединителей Delta Sharing и сведения об их использовании см. в документации по Delta Sharing.

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

Что такое Databricks to Databricks Delta Sharing?

Если вы хотите поделиться данными с пользователями, у которых есть рабочая область Databricks, которая включена для каталога Unity, можно использовать Databricks to Databricks Delta Sharing. Совместное использование Databricks to Databricks позволяет обмениваться данными с пользователями в других учетных записях Databricks, будь то aws, Azure или GCP. Это также отличный способ безопасно предоставлять общий доступ к данным в разных хранилищах метаданных каталога Unity в собственной учетной записи Databricks. Обратите внимание, что для обмена данными между рабочими областями, подключенными к одному хранилищу метаданных Unity Catalog, не требуется использовать Delta Sharing, поскольку в этом сценарии можно использовать сам Unity Catalog для управления доступом к данным в разных рабочих областях.

Одним из преимуществ общего доступа Databricks-на-Databricks является то, что получателю общего доступа не нужен токен для доступа к общему ресурсу, и поставщику не требуется управлять токенами получателей. Безопасность подключения общего доступа, включая проверку удостоверения личности, аутентификацию и аудит, полностью осуществляется через Delta Sharing и платформу Databricks. Еще одним преимуществом является возможность совместного использования файлов записных книжек Databricks, представлений, томов каталога Unity и моделей каталога Unity.

См. также предоставление доступа к данным с помощью протокола Delta Sharing Databricks-to-Databricks (для поставщиков).

Как администраторы поставщиков настраивают Delta Sharing?

В этом разделе представлен обзор того, как поставщики могут включить Delta Sharing и начать процесс обмена из рабочей области Azure Databricks с поддержкой Unity Catalog. Сведения о проекте Delta Sharing с открытым исходным кодом см. на github.com/delta-io/delta-sharing.

Обмен данными между хранилищами метаданных в Unity Catalog в пределах одной учетной записи в Databricks всегда активирован. Если вы являетесь поставщиком, который хочет включить Delta Sharing для совместного использования данных с рабочими областями Databricks в других учетных записях или клиентами, не являющимися Databricks, администратор учетной записи Azure Databricks или администратор хранилища метаданных выполняет следующие действия по настройке на высоком уровне:

  1. Включите Delta Sharing для хранилища метаданных каталога Unity, которое управляет данными, которые вы хотите сделать доступными для общего доступа.

    Примечание.

    Если вы планируете использовать Delta Sharing для совместного использования данных только с пользователями в других хранилищах метаданных Unity Catalog в вашей учетной записи, вам не нужно включать Delta Sharing в вашем хранилище метаданных. В одной учетной записи Azure Databricks общий доступ к хранилищам метаданных включен по умолчанию.

    См. Включение Delta Sharing в хранилище данных.

  2. Создайте общий доступ, содержащий ресурсы данных, зарегистрированные в метахранилище Unity Catalog.

    Если вы публикуете информацию для получателя вне Databricks (известно как открытая публикация), вы можете включить таблицы в формате Delta или Parquet. Если вы планируете использовать databricks-to-Databricks,вы также можете добавлять представления, тома каталога Unity, модели каталога Unity и файлы записных книжек в общую папку.

    См. раздел "Создание и управление общими доступами для Delta Sharing".

  3. Создайте получателя.

    См. "Создание и управление получателями данных для Delta Sharing".

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

    Если у получателя есть доступ к рабочей области Databricks, которая включена для каталога Unity, можно использовать Databricks-to-Databricks совместного использования, и учетные данные на основе маркеров не требуются. Вы запрашиваете идентификатор общего доступа от получателя и используете его для установления безопасного подключения.

    Совет

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

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

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

    Примечание.

    Этот шаг также может выполняться пользователем без администратора с USE SHAREUSE RECIPIENT правами и SET SHARE PERMISSION привилегиями. См. привилегии каталога Unity и защищаемые объекты.

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

    См. статью "Отправить получателю сведения о подключении".

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

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

Теперь получатель может получить доступ к общим данным.

Как получатели получают доступ к общим данным?

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

Безопасный доступ зависит от модели общего доступа:

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

Как отслеживать, кто предоставляет общий доступ к общим данным и обращается к ним?

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

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

Общий доступ к томам

Вы можете делиться томами с помощью механизма общего доступа «Databricks-to-Databricks». См. раздел Добавление томов в общий ресурс (для поставщиков) и Чтение данных, предоставленных с помощью Databricks-to-Databricks Delta Sharing (для получателей).

Обмен моделями

Вы можете совместно использовать модели с помощью потока общего доступа Databricks to Databricks. См. раздел Добавление моделей в общее использование (для поставщиков) и Чтение данных, предоставленных с помощью Databricks-to-Databricks Delta Sharing (для получателей).

Общий доступ к записным книжкам

Вы можете использовать Delta Sharing, чтобы делиться файлами записных книжек с помощью схемы общего доступа между Databricks. См. Добавление файлов записной книжки в общую папку (для поставщиков) и Чтение общих записных книжек (для получателей).

Ограничение доступа на уровне строки и столбца

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

Delta обмен данными и потоковая передача

Delta Sharing поддерживает Spark Structured Streaming. Поставщик может делиться таблицей с историей, чтобы получатель смог использовать её в качестве источника структурированной потоковой обработки, обрабатывая общие данные пошагово и с низкой задержкой. Получатели также могут выполнять запросы время перемещения Delta Lake в таблицах, общих с журналом.

Сведения о совместном использовании таблиц с историей см. в статье Добавление таблиц в пул совместного использования. Сведения о том, как использовать совместно используемые таблицы в качестве источников потоковой передачи, см. в статье Запрос таблицы с помощью структурированной потоковой передачи Apache Spark (для получателей доступа между Databricks) или Доступ к совместно используемой таблице с помощью структурированной потоковой передачи Spark (для получателей открытого доступа к данным).

См. также стриминг в Azure Databricks.

Матрица поддержки функций Delta Lake

Delta Sharing поддерживает большинство функций Delta Lake при совместном использовании таблицы. В этой матрице поддержки перечислены:

  • Возможности Delta, требующие определенных версий Databricks Runtime, или соединителей с открытым исходным кодом для Spark или Python.
  • Частично поддерживаемые функции.
Функция Поставщик Получатель Databricks Получатель с открытым кодом
Векторы удаления Общедоступные таблицы с этой функцией доступны в предварительной версии.
  • Databricks Runtime 14.1+ для пакетных запросов
  • Databricks Runtime 14.2+ для запросов CDF и потоковой передачи
  • Соединитель Delta Sharing Spark 3.1+
  • Разъём Delta Sharing для Python 1.1.0+
  • Power BI версии 2.132.908.0+
Сопоставление столбцов Совместное использование таблиц с этой функцией находится в общедоступной предварительной версии.
  • Databricks Runtime 14.1+ для пакетных запросов
  • Databricks Runtime 14.2+ для запросов CDF и потоковой передачи
  • Соединитель Delta Sharing Spark 3.1+
  • Соединитель Delta Sharing Python 1.1.0+
  • Power BI версии 2.132.908.0+
Универсальный формат Общие таблицы с этой функцией доступны в общедоступной предварительной версии.
  • Databricks Runtime 14.1+ для пакетных запросов
  • Databricks Runtime 14.2+ для запросов CDF и потоковой передачи
  • Соединитель Delta Sharing Spark 3.1+
  • Соединитель Delta Sharing для Python 1.1.0+
  • Power BI версии 2.132.908.0+
Контрольная точка V2 Поддерживается с ограничениями Поддерживается с ограничениями Поддерживается с ограничениями
Метка времени Поддерживается Databricks Runtime 14.1+ Соединитель Delta Sharing Spark 3.3+
Кластеризация жидкости Поддерживается с ограничениями Поддерживается с ограничениями Поддерживается с ограничениями

Часто задаваемые вопросы о Delta Sharing

Ниже приведены часто задаваемые вопросы о Delta Sharing.

Нужен ли каталог Unity для использования Delta Sharing?

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

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

  • Разместите ресурсы для совместного использования под управление Unity Catalog и делитесь ими с помощью встроенного сервера Delta Sharing Azure Databricks.

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

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

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

  • Без рабочей области Databricks. Используйте открытые коннекторы Delta Sharing, которые доступны для многих платформ данных, включая Power BI, pandas и Apache Spark. См. Чтение данных, предоставленных с помощью Delta Sharing (для получателей) и проект Delta Sharing с открытым исходным кодом.

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

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

См. раздел Чтение данных, совместно используемых с помощью открытого общего доступа Delta Sharing (для получателей) и Чтение данных, совместно используемых через Databricks-to-Databricks Delta Sharing (для получателей).

Нужно ли быть клиентом Databricks для использования Delta Sharing?

Нет, Delta Sharing — это открытый протокол. Вы можете предоставлять общий доступ к данным, не относящимся к Databricks, для получателей на любой платформе данных. Поставщики могут настроить сервер Delta Sharing с открытым доступом, делясь данными с любой вычислительной платформой. Получатели могут использовать общие данные с помощью соединителей Delta Sharing с открытым кодом для многих продуктов данных, включая Power BI, pandas и Spark.

Однако использование Delta Sharing в Azure Databricks, особенно совместное использование из рабочей области с поддержкой Unity Catalog, имеет множество преимуществ.

Дополнительные сведения см. в первом вопросе этого FAQ.

Есть ли затраты на выход при использовании Delta Sharing?

Дельта-обмен внутри региона не требует затрат на исходящий трафик. В отличие от других платформ для обмена данными, Delta Sharing не требует репликации данных. Эта модель имеет множество преимуществ, но это означает, что поставщик облачных служб может взимать плату за исходящий трафик при отправке данных между облаками или регионами. Azure Databricks поддерживает общий доступ из Cloudflare R2, который не несет платы за исходящий трафик, а также предоставляет другие средства и рекомендации для отслеживания и предотвращения сборов исходящего трафика. См. раздел Мониторинг и управление затратами на исходящий трафик в Delta Sharing (для поставщиков).

Могут ли поставщики отозвать доступ получателя?

Да, доступ получателя можно отменить по требованию и для указанной степени детализации. Вы можете запретить получателю доступ к определенным общим папкам и определенным IP-адресам, фильтровать табличные данные для получателя, отменять маркеры получателя и полностью удалять получателей. См. раздел Отмена доступа получателей к общему ресурсу и Создание и управление получателями данных для Delta Sharing.

Не является ли использование предварительно подписанных URL-адресов небезопасным?

Delta Sharing использует предварительно подписанные URL-адреса для предоставления временного доступа к файлу в объектном хранилище. Они предоставляются только получателям, у которых уже есть доступ к общим данным. Они безопасны, так как они являются краткосрочными и не расширяют уровень доступа за рамки разрешений, которые получатели уже получили.

Надежны ли токены, используемые в протоколе открытого доступа Delta Sharing?

Так как Дельта-шаринг обеспечивает кроссплатформенный обмен данными, в отличие от других доступных платформ обмена, протокол требует использования открытого токена доступа. Поставщики могут обеспечить безопасность токенов, настроив время существования токена и сетевые элементы управления и отменив доступ по запросу. Кроме того, токен не расширяет уровень доступа за рамки разрешений, которые получатели уже получили. См. раздел Вопросы безопасности при использовании токенов.

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

Поддерживает ли Delta Sharing совместное использование представлений?

Да, Delta Sharing поддерживает общий доступ к представлению. См. Как добавить представления в общий доступ.

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

Ограничения

См. также матрицу поддержки функций Delta Lake.

Квоты ресурсов

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

Вы можете отслеживать использование квоты с помощью API квот ресурсов Unity Catalog. См. Мониторинг использования квот ресурсов каталога Unity.

Следующие шаги