Что такое разностный общий доступ?
В этой статье описывается разностный общий доступ в Azure Databricks, платформа безопасного доступа к данным и ресурсам ИИ в Azure Databricks с пользователями за пределами вашей организации, независимо от того, используют ли эти пользователи Databricks или нет. Delta Sharing также является основой для Databricks Marketplace, открытый форум для обмена продуктами данных и чистые комнаты, безопасная и защита конфиденциальности среды where нескольких сторон могут работать вместе с конфиденциальными корпоративными данными.
Разностный общий доступ также доступен в качестве проекта с открытым исходным кодом, который можно использовать для совместного использования Delta tables с других платформ.
Примечание.
Чтобы узнать, как получить доступ к данным, которые были с вами поделены с помощью Delta Sharing, см. доступ к данным, которые были с вами поделены с помощью Delta Sharing (для recipients).
Как работает разностный общий доступ?
Delta Sharing — это открытый протокол, разработанный Databricks для безопасного обмена данными с другими организациями независимо от используемых вычислительных платформ.
Существует три способа совместного использования данных с помощью разностного общего доступа:
Протокол обмена данными Databricks-to-Databricks, который позволяет совместно использовать данные и ресурсы ИИ из рабочей области с поддержкой Unity Catalogс пользователями, у которых также есть доступ к рабочей области Databricks с поддержкой Unity Catalog.
Этот подход использует сервер delta Sharing, встроенный в Azure Databricks. Она поддерживает некоторые функции Delta Sharing, которые не поддерживаются в других протоколах, включая обмен записными книжками, обмен томами Unity Catalog, обмен моделями Unity Catalog, управление данными Unity Catalog, аудит и отслеживание использования как для providers, так и для recipients. Интеграция с Unity Catalog упрощает настройку и управление как для providers, так и для recipients и повышает производительность.
Протокол открытого совместного доступа Databricks, который позволяет вам делиться табличными данными, управляемыми в рабочей области Databricks с поддержкой Unity Catalog, с пользователями на любой вычислительной платформе.
Этот подход использует сервер Delta Share, встроенный в Azure Databricks, и полезен при управлении данными с помощью Unity Catalog и хотите поделиться им с пользователями, которые не используют Databricks или не имеют доступа к рабочей области Unity Catalogс поддержкой Databricks. Интеграция с Unity Catalog на стороне поставщика упрощает настройку и управление для providers.
См. передача данных с использованием протокола Delta Sharing (для providers).
Реализация управляемого клиентом сервера Delta Sharing с открытым кодом, которая позволяет предоставлять общий доступ от любой платформы к любой платформе, независимо от того, используется ли Databricks или нет.
Документация по Azure Databricks не содержит инструкции по настройке собственного сервера Delta Sharing. См . github.com/delta-io/delta-sharing.
Shares, providersи recipients
Основными понятиями, лежащими в основе delta Sharing в Azure Databricks, являются shares, providersи recipients.
Что такое общий ресурс?
В Delta Sharing, доля — это коллекция разделов tables и table только для чтения, которые поставщик хочет предоставить одному или нескольким recipients. Если получатель использует рабочую область Databricks с поддержкой Unity Catalog, вы также можете включить файлы записных книжек, views (включая динамические views, ограничивающие доступ на уровне строки и column), Unity Catalogvolumesи модели Unity Catalog в общей папке.
Вы можете в любое время добавлять или removetables, views, volumes, модели и файлы записной книжки из общей папки, а также назначать или revoke доступ получателя данных к общей папке.
В рабочей области Azure Databricks с поддержкой Unity Catalogобщий ресурс является защищаемым объектом, зарегистрированным в Unity Catalog. Если вы remove объект общего доступа из метахранилища Catalog Unity, все recipients этого объекта общего доступа теряют к нему доступ.
См. создание и управление shares для Delta Sharing.
Что такое поставщик?
Поставщик
Если получатель находится в рабочей области Databricks с поддержкой Unity Catalog, поставщик также является защищаемым объектом Unity Catalog, который представляет организацию поставщика и связывает ее с setshares.
Что такое получатель?
Получатель — это сущность, которая получает shares от поставщика. В Unity Catalogобщий ресурс — это защищаемый объект, который представляет организацию и связывает её с учетными данными или безопасной передачей доступа identifier, что позволяет этой организации получить доступ к одной или нескольким единицам shares.
В качестве поставщика данных (sharer) вы можете определить несколько recipients для любого заданного хранилища метаданных Unity Catalog. Однако, если вы хотите предоставить общий доступ к данным из нескольких metastores определенному пользователю или группе пользователей, необходимо отдельно определить получателя для каждого хранилища метаданных. Получатель может иметь доступ к нескольким shares.
Если поставщик удаляет получателя из хранилища метаданных Unity Catalog, этот получатель теряет доступ ко всем shares, к которым он имел доступ ранее.
См. создание и управление данными recipients для Delta Sharing.
Открытие общего доступа и совместное использование Databricks в Databricks
В этом разделе описаны два протокола для совместного использования из рабочей области Databricks, активированной для Unity Catalog.
Примечание.
В этом разделе предполагается, что поставщик находится в рабочей области Azure Databricks с поддержкой Unity Catalog. Сведения о настройке сервера с открытым исходным кодом Delta Sharing для совместного использования из платформы, отличной от Databricks, или рабочей области, отличной от Unity Catalog, см. github.com/delta-io/delta-sharing.
Способ использования разностного общего доступа в Azure Databricks зависит от того, с кем они обмениваются данными:
- Открытый общий доступ позволяет совместно использовать данные с любым пользователем, независимо от того, имеет ли он доступ к Azure Databricks.
- Функция Databricks-to-Databricks позволяет делиться данными с пользователями Azure Databricks, чья рабочая область подключена к хранилищу метаданных Unity Catalog, отличающемуся от вашего. Databricks to Databricks также поддерживает доступ к записным книжкам, томам и моделям, которые недоступны в открытом совместном доступе.
Что такое открытый разностный общий доступ?
Если вы хотите поделиться данными с пользователями за пределами рабочей области Azure Databricks независимо от того, используют ли они Databricks, вы можете использовать разностный общий доступ для безопасного предоставления общего доступа к данным. В качестве поставщика данных вы generate маркер и безопасно поделиться им с получателем. Они используют маркер для проверки подлинности и get доступа на чтение к tables, к shares вы предоставили им доступ.
К общим данным Recipients можно получить доступ с использованием множества вычислительных инструментов и платформ, включая:
- Azure Databricks
- Apache Spark
- Pandas.
- Power BI
Полный список list соединителей Delta Sharing и информацию о том, как ими пользоваться, см. в документации по Delta Sharing.
См. также передачу данных с использованием протокола Delta Sharing (для providers).
Что такое Databricks to Databricks Delta Sharing?
Если вы хотите поделиться данными с пользователями, у которых есть рабочая область Databricks, которая включена для Unity Catalog, можно использовать Databricks to Databricks Delta Sharing. Совместное использование Databricks to Databricks позволяет обмениваться данными с пользователями в других учетных записях Databricks, будь то aws, Azure или GCP. Это также эффективный способ безопасно предоставлять доступ к данным в вашей учетной записи Databricks через различные Catalogmetastores Unity. Обратите внимание, что для совместного использования данных между рабочими областями, подключенными к одному хранилищу метаданных Unity Catalog, не требуется использовать Delta Sharing, так как в этом сценарии можно использовать сам Unity Catalog для управления доступом к данным в разных рабочих областях.
Одним из преимуществ общего доступа Databricks to Databricks является то, что получатель общего ресурса не нуждается в маркере для доступа к общей папке, и поставщику не нужно управлять маркерами получателей. Безопасность подключения общего доступа, включая проверку подлинности, проверку подлинности и аудит, полностью управляется с помощью delta Sharing и платформы Databricks. Еще одним преимуществом является возможность совместного использования файлов записных книжек Databricks, views, Unity Catalogvolumesи моделей Unity Catalog.
Как администраторы поставщиков set настраивают Delta Sharing?
В этом разделе представлен обзор того, как providers может включить Delta Sharing и начать совместное использование из рабочей области Azure Databricks с поддержкой Unity Catalog. Сведения о разностном совместном использовании с открытым исходным кодом см. в github.com/delta-io/delta-sharing.
Совместное использование Databricks между Unity Catalogmetastores в одной учетной записи всегда доступно. Если вы являетесь поставщиком, который хочет предоставить доступ к данным с рабочими областями Databricks в других учетных записях или клиентах, отличных от Databricks, администратор учетной записи Azure Databricks или администратор хранилища метаданных выполняет следующие действия по настройке (на высоком уровне):
Включите Delta Sharing для хранилища метаданных Unity Catalog, которое управляет данными, которыми вы хотите поделиться.
Примечание.
Если вы планируете использовать Delta Sharing только для обмена данными с пользователями в других Unity Catalogmetastores в вашей учетной записи, вам не нужно включать Delta Sharing в своем метахранилище. Общий доступ к хранилищу метаданных в одной учетной записи Azure Databricks между Metastore включен по умолчанию.
См. Включение разностного общего доступа в хранилище метаданных.
Создайте общую папку, содержащую ресурсы данных, зарегистрированные в хранилище метаданных Catalog Unity.
Если вы предоставляете доступ получателю, отличному от Databricks (известному как открытый доступ), вы можете включить tables в формат Delta или Parquet. Если вы планируете использовать Databricks-to-Databricks для обмена,вы также можете добавить views, Unity Catalogvolumes, модели Unity Catalog и файлы блокнотов в общий доступ.
Создайте получателя.
См. создание и управление данными recipients для Delta Sharing.
Если получатель не является пользователем Databricks или не имеет доступа к рабочей области Databricks, включенной для CatalogUnity, необходимо использовать открытый общий доступ. Для этого получателя создается setcredentials на основе токенов.
Если у получателя есть доступ к рабочей области Databricks с поддержкой Unity Catalog, можно использовать функцию Databricks-to-Databricks для совместного использования, и токены на основе credentials не требуются. Вы запрашиваете у получателя для совместного использования identifier и используете его для установления безопасного подключения.
Совет
Используйте себя в качестве тестового получателя, чтобы попробовать процесс установки.
Grant доступ получателя к одной или нескольким shares.
См. Управление доступом к данным Delta Sharing shares (для providers).
Примечание.
Этот шаг также может выполняться пользователем без администратора с
USE SHARE
USE RECIPIENT
правами иSET SHARE PERMISSION
привилегиями. См. привилегииUnity и защищаемые объекты . Отправьте получателю сведения, необходимые для подключения к общей папке (только для открытого общего доступа).
См. статью "Отправить получателю сведения о подключении".
Для открытого обмена используйте защищённый канал, чтобы отправить получателю активационную ссылку, позволяющую им скачать токен credentials.
Для общего доступа Databricks к Databricks данные, включенные в общую папку, становятся доступными в рабочей области Databricks получателя, как только вы grant им доступ к общей папке.
Теперь получатель может получить доступ к общим данным.
Как recipients получают доступ к общим данным?
Recipients осуществляет доступ к общим ресурсам данных в формате только для чтения. Общие файлы записных книжек доступны только для чтения, но их можно клонировать, а затем изменить и запустить в рабочей области получателя так же, как и любую другую записную книжку.
Безопасный доступ зависит от модели общего доступа:
- Открытый общий доступ (получатель не имеет включенной рабочей области Unity Databricks Catalog): получатель предоставляет учетные данные при каждом обращении к данным в выбранном инструменте, таких как Apache Spark, pandas, Power BI, Databricks и многих других. См. раздел о совместном использовании данных с помощью Delta Sharing (для recipients)
- Databricks to Databricks (рабочая область получателей включена для Unity Catalog): получатель обращается к данным с помощью Databricks. Они могут использовать Unity Catalog для получения доступа grant и deny к другим пользователям в учетной записи Databricks. См. чтение данных, переданных с помощью Databricks-to-Databricks Delta Sharing (для recipients).
Всякий раз, когда поставщик данных обновляет данные tables или volumes в собственной учетной записи Databricks, обновления отображаются практически в режиме реального времени в системе получателя.
Как отслеживать, кто предоставляет общий доступ к общим данным и обращается к ним?
Данные providers в рабочих областях Azure Databricks с поддержкой Unity Catalogмогут использовать Azure Databricks для ведения аудита и системы tables для мониторинга создания и изменения shares и recipients, а также для мониторинга активности получателей в shares. См. статью "Аудит и мониторинг общего доступа к данным".
Данные recipients, которые используют общие данные в рабочей области Databricks, могут использовать ведение журнала аудита Databricks и системные tables, чтобы понять, кто обращается к данным. См. статью "Аудит и мониторинг общего доступа к данным".
Общий доступ volumes
Вы можете поделиться volumes с помощью потока общего доступа Databricks to Databricks. См. добавление volumes в совместное использование (для providers) и чтение данных, совместно используемых с помощью Databricks-to-Databricks Delta Sharing (для recipients) (для recipients).
Общий доступ к моделям
Вы можете совместно использовать модели с помощью потока общего доступа Databricks to Databricks. См. раздел Добавление моделей в общий доступ (для providers) и Чтение данных, переданных с использованием Databricks-to-Databricks Delta Sharing (для recipients) (для recipients).
Общий доступ к записным книжкам
Разностный общий доступ можно использовать для совместного использования файлов записных книжек с помощью потока общего доступа Databricks в Databricks. См. раздел Добавление файлов записной книжки в общую папку (для providers) и Чтение общих записных книжек (для recipients).
Ограничение доступа на уровне строки и column
Вы можете совместно использовать динамические views, ограничивающие доступ к определенным данным table на основе свойств получателя. Для общего доступа к динамическому представлению требуется поток общего доступа Databricks в Databricks. См. раздел Добавление динамической views в общую папку для фильтрации строк и columns.
Разностный общий доступ и потоковая передача
Разностный общий доступ поддерживает структурированную потоковую передачу Spark. Поставщик может делиться table с историей данных, чтобы получатель смог использовать его в качестве источника структурированной потоковой передачи, обрабатывая общие данные шаг за шагом с низкой задержкой. Recipients также способны выполнять запросы во времени Delta Lake на tables данных с общим доступом и историей.
См. tablesи поделиться tables с историей. Сведения об использовании общих tables в качестве источников потоковой передачи см. в статье Запрос table с помощью структурированной потоковой передачи Apache Spark (для recipients совместного использования Databricks to Databricks) или Доступ к общей table с помощью структурированной потоковой передачи Spark (для recipients открытых данных общего доступа).
См. также потоковую передачу в Azure Databricks.
Матрица поддержки функций Delta Lake
Delta Sharing поддерживает большинство функций Delta Lake при совместном использовании table. Эти списки матриц поддержки:
- Функции Delta, требующие определенных версий Databricks Runtime, соединителя Spark с открытым исходным кодом или соединителя Python с открытым исходным кодом.
- Частично поддерживаемые функции.
Функция | Provider | Получатель Databricks | Получатель с открытым кодом |
---|---|---|---|
Векторы удаления | Общий доступ tables с этой функцией находится в общедоступной предварительной версии. | — Databricks Runtime 14.1+ для пакетных запросов — Databricks Runtime 14.2+ для запросов CDF и потоковой передачи |
— соединитель Spark для разностного общего доступа 3.1+ — соединитель Python для разностного общего доступа 1.1.0+ — Power BI версии 2.132.908.0+ |
сопоставление Column | Общий доступ tables с этой функцией находится в общедоступной предварительной версии. | — Databricks Runtime 14.1+ для пакетных запросов — Databricks Runtime 14.2+ для запросов CDF и потоковой передачи |
— соединитель Spark для разностного общего доступа 3.1+ — соединитель Python для разностного общего доступа 1.1.0+ — Power BI версии 2.132.908.0+ |
Универсальный формат | Общий доступ tables с этой функцией находится в общедоступной предварительной версии. | — Databricks Runtime 14.1+ для пакетных запросов — Databricks Runtime 14.2+ для запросов CDF и потоковой передачи |
— соединитель Spark для разностного общего доступа 3.1+ — соединитель Python для разностного общего доступа 1.1.0+ — Power BI версии 2.132.908.0+ |
Контрольная точка версии 2 | Поддерживается с ограничениями | Поддерживается с ограничениями | Поддерживается с ограничениями |
Метка времени | Поддерживается | Databricks Runtime 14.1+ | Соединитель Delta Sharing Spark 3.3+ |
Кластеризация Liquid | Поддерживается с ограничениями | Поддерживается с ограничениями | Поддерживается с ограничениями |
Вопросы и ответы о разностном общем доступе
Ниже приведены часто задаваемые вопросы о разностном совместном использовании.
Требуется ли Catalog Unity использовать разностный общий доступ?
Нет, вам не нужно Unity Catalog для совместного использования (в качестве поставщика) или использования общих данных (в качестве получателя). Однако Unity Catalog предоставляет такие преимущества, как поддержка обмена нетабличными и ИИ-ресурсами, встроенное управление, простота и производительность запросов.
Providers могут совместно использовать данные двумя способами:
Поместите ресурсы под управление Unity Catalog и поделитесь ими с помощью встроенного сервера Azure Databricks Delta Sharing.
Вам не нужно перенести все ресурсы в Unity Catalog. Для управления активами, которыми вы хотите поделиться, требуется только одна рабочая область Azure Databricks, поддерживающая Unity Catalog. В некоторых учетных записях новые рабочие области автоматически активируются для Unity Catalog. См. автоматическое включение CatalogUnity.
Реализуйте открытый сервер Delta Sharing для совместного использования данных без использования учетной записи Azure Databricks.
Recipients может использовать данные двумя способами:
Без рабочей области Databricks. Используйте соединители разностного общего доступа с открытым кодом, которые доступны для многих платформ данных, включая Power BI, Pandas и Apache Spark с открытым кодом. См. чтение данных, которыми делятся с помощью Delta Sharing и открытого доступа (для recipients) и проекта Delta Sharing с открытым исходным кодом.
В рабочей области Azure Databricks. Рабочие пространства получателей не обязательно должны быть включены для Unity Catalog, но их включение предоставляет преимущества в управлении, простоте и производительности.
Получающим организациям, которые хотят воспользоваться этими преимуществами, не нужно мигрировать все активы в Unity Catalog. Вам нужна только одна рабочая область Azure Databricks с поддержкой Unity Catalog для управления активами, которые с вами поделены. В некоторых учетных записях новые рабочие области автоматически активируются для Unity Catalog. См. автоматическое включение CatalogUnity.
См. чтение данных, общих с использованием Delta Sharing (для recipients) и чтение данных, общих с использованием Databricks-to-Databricks Delta Sharing (для recipients).
Нужно ли быть клиентом Databricks для использования общего разностного доступа?
Нет, разностный общий доступ — это открытый протокол. Вы можете совместно использовать данные, не относящиеся к Databricks, с recipients на любой платформе данных. Providers может настроить открытый сервер Delta Share для совместного использования с любой вычислительной платформы. Recipients могут использовать общие данные с помощью соединителей Delta Sharing с открытым исходным кодом для множества продуктов данных, включая Power BI, pandas и Spark с открытым исходным кодом.
Однако использование Delta Sharing в Azure Databricks, особенно при совместном использовании из рабочей области с поддержкой Unity Catalog, имеет множество преимуществ.
Дополнительные сведения см. в первом вопросе в этом вопросе.
Есть ли затраты за исходящий трафик при использовании общего разностного доступа?
Разностный общий доступ в регионе не несет затрат на исходящий трафик. В отличие от других платформ общего доступа к данным, разностный общий доступ не требует репликации данных. Эта модель имеет множество преимуществ, но это означает, что поставщик облачных служб может взимать плату за исходящий трафик при отправке данных между облаками или регионами. Azure Databricks поддерживает общий доступ из Cloudflare R2, который не несет платы за исходящий трафик, а также предоставляет другие средства и рекомендации для отслеживания и предотвращения сборов исходящего трафика. Для получения дополнительной информации см. статью Мониторинг и управление затратами Delta Sharing на исходящий трафик (для providers).
Может ли получатель получить доступ к providersrevoke?
Да, доступ получателя можно отменить по требованию и для указанной степени детализации. Вы можете deny доступ получателя к определенным shares и определенным IP-адресам, фильтровать табличные данные для получателя, управлять revoke маркерами получателей и полностью удалять recipients. Ознакомьтесь с Revoke доступом получателей к общего ресурса и созданию recipients данных recipientsдля разностного общего доступа.
Не является ли использование предварительно подписанных URL-адресов небезопасным?
Разностный общий доступ использует предварительно подписанные URL-адреса для предоставления временного доступа к файлу в хранилище объектов. Они предоставляются только тем recipients, у которых уже есть доступ к общим данным. Они безопасны, потому что являются короткоживущими и не расширяют уровень доступа за рамки того, что уже было предоставлено recipients.
Используются ли токены в протоколе открытого разностного общего доступа?
Так как разностный общий доступ обеспечивает кроссплатформенный общий доступ, в отличие от других доступных платформ общего доступа, протокол общего доступа требует открытого токена. Providers может обеспечить безопасность маркеров, настроив время существования маркера, установив сетевые элементы управления и отменив доступ по запросу. Кроме того, токен не расширяет уровень доступа за пределы того, что уже предоставлено recipients. См. раздел Вопросы безопасности при использовании токенов.
Если вы предпочитаете не использовать маркеры для управления доступом к получателю shares, следует использовать совместное использование Databricks в Databricks или связаться с командой учетной записи Databricks для альтернативных вариантов.
Поддерживает ли разностный общий доступ к просмотру?
Да, Delta Sharing поддерживает общий доступ к представлению. См. раздел Добавление views в общую папку.
Чтобы узнать о запланированных улучшениях для просмотра общего доступа, обратитесь к группе учетных записей Databricks.
Ограничения
- Табличные данные должны находиться в формате Delta table. Вы можете легко преобразовать Parquet tables в Delta и обратно. См. CONVERT TO DELTA.
- Delta Sharing поддерживает tables, который использует жидкую кластеризацию и контрольные точки версии 2 со следующими ограничениями.
- Recipients может выполнять только запросы моментальных снимков. Они не могут запускать веб-канал изменений (CDF) или запросы потоковой передачи.
- Providers не может использоваться вместе с table и фильтрацией partition.
- Providers нельзя использовать совместно с R2 tables в условиях кластеризации Liquid и контрольной точки версии 2.
- Table ограничения (ограничения первичного и внешнего ключа) недоступны в общем доступе tables.
- Элемент views, доступный для совместного использования, необходимо определить в Delta tables или иных элементах views, доступных для совместного использования. См. , добавление views в совместное использование (для providers) и прочтение совместного views (для recipients).
- Общий доступ к записной книжке поддерживается только в совместном доступе Databricks к Databricks. См. раздел Добавление файлов записной книжки в общую папку и чтение общих данных с помощью Databricks-to-Databricks Delta Sharing (для recipients).
- Совместное использование тома поддерживается только для общего доступа между Databricks. См. добавление volumes в ресурс (для providers) и чтение данных, общих с помощью Databricks-to-Databricks Delta Sharing (для recipients).
- Общий доступ к моделям поддерживается только для общего доступа между Databricks. См. Добавление моделей в общий доступ (для providers) и Чтение данных, общих через Databricks-to-Databricks Delta Sharing (для recipients).
- Существуют ограничения на количество файлов в метаданных, разрешенных для общего table. Дополнительные сведения см. в статье об ошибках превышения ресурса limit.
- Схемы с именем
information_schema
нельзя импортировать в хранилище метаданных Catalog Unity, так как это имя schema зарезервировано в CatalogUnity. - Общий доступ к
SHALLOW CLONE
tables не поддерживается Delta Sharing. Azure Databricks не поддерживает преписные URL-адреса для журналов Delta, ссылающихся на абсолютные пути.
См. также матрицу поддержки функций Delta Lake.
Квоты ресурсов
Azure Databricks применяет квоты ресурсов ко всем защищаемым объектам Delta Sharing. Эти квоты перечислены в ограничениях ресурсов. Если вы ожидаете превышение этих ограничений ресурсов, обратитесь к группе учетных записей Azure Databricks.
Вы можете отслеживать использование квоты с помощью API-интерфейсов квот ресурсов Unity Catalog. См. : контролируйте использование квот ресурсов Unity Catalog.