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


Что такое Федерация Lakehouse?

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

Что такое Федерация Lakehouse?

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

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

Зачем использовать федерацию Lakehouse?

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

  • Нерегламентированные отчеты.
  • Доказательство концепции работы.
  • Этап изучения новых конвейеров или отчетов ETL.
  • Поддержка рабочих нагрузок во время добавочной миграции.

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

Федерация Lakehouse предназначена для вариантов использования, когда:

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

Общие сведения о настройке федерации Lakehouse

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

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

Поддерживаемые источники данных

Федерация Lakehouse поддерживает подключения к следующим типам баз данных:

Требования к подключению

Требования к рабочей области:

  • Рабочее пространство активировано для использования с каталогом Unity.

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

  • Сетевое подключение от вашего вычислительного ресурса к целевым системам баз данных. См . рекомендации по сети для Федерации Lakehouse.
  • Вычислительные ресурсы Azure Databricks должны использовать Databricks Runtime версии 13.3 LTS или более поздней, а также режим доступа общий или для одного пользователя.
  • Хранилища SQL должны быть профессиональными или бессерверными и должны использовать 2023.40 или более поздней версии.

Необходимые разрешения:

  • Чтобы создать подключение, необходимо быть администратором хранилища метаданных или пользователем с правами CREATE CONNECTION в хранилище метаданных каталога Unity, подключенном к рабочей области.
  • Чтобы создать внешний каталог, необходимо иметь разрешение CREATE CATALOG в хранилище метаданных и быть владельцем подключения или иметь привилегию CREATE FOREIGN CATALOG на подключение.

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

Создание подключения

Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду CREATE CONNECTION SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.

Примечание.

Для создания подключения можно также использовать REST API Databricks или интерфейс командной строки Databricks. См. POST /api/2.1/unity-catalog/connections и команды каталога Unity .

Необходимые разрешения: администратор хранилища метаданных или пользователь с привилегиями CREATE CONNECTION .

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

  1. В рабочей области Azure Databricks щелкните значок каталога .

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

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

  3. Введите понятное имя подключения.

  4. Выберите тип подключения (поставщик базы данных, например MySQL или PostgreSQL).

  5. (Необязательно) Добавьте комментарий.

  6. Нажмите Далее.

  7. Введите свойства подключения (например, сведения о узле, пути и учетные данные доступа).

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

  8. Щелкните Создать подключение.

  9. Введите имя внешнего каталога.

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

  11. Щелкните Создать каталог.

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

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

  14. Назначьте привилегии для в каталоге. Щелкните Предоставить:

    1. Укажите участников , которые будут иметь доступ к объектам в каталоге. Начните вводить объект в текстовом поле, а затем щелкните на объект в полученных результатах.
    2. Выберите предустановки привилегий , чтобы предоставить каждому субъекту. Все пользователи учетной записи получают BROWSE по умолчанию.
      • Выберите средство чтения данных в раскрывающемся меню, чтобы предоставить read привилегии для объектов в каталоге.
      • Выберите редактор данных в раскрывающемся меню, чтобы предоставить read и modify привилегии для объектов в каталоге.
      • Вручную выберите привилегии для предоставления.
    3. Щелкните Предоставить.
    4. Нажмите Далее.
    5. На странице метаданных укажите ключи и значения тегов. Дополнительные сведения см. в статье Применение тегов к защищаемым объектам каталога Unity.
    6. (Необязательно) Добавьте комментарий.
    7. Нажмите кнопку Сохранить.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов. Этот пример предназначен для подключений к базе данных PostgreSQL. Параметры отличаются по типу подключения. См. статью о типе подключения, указанную в оглавлении слева.

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Мы рекомендуем использовать секреты Azure Databricks вместо строк открытого текста для конфиденциальных значений, таких как учетные данные. Например:

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Сведения о настройке секретов см. в разделе "Управление секретами".

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

Создание внешнего каталога

Примечание.

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

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

Чтобы создать внешний каталог, можно использовать обозреватель каталогов или команду SQL CREATE FOREIGN CATALOG в записной книжке Azure Databricks или редакторе запросов SQL. Вы также можете использовать API каталога Unity. Справочная документация по Azure Databricks.

Метаданные внешнего каталога синхронизируются с каталогом Unity при каждом взаимодействии с каталогом. Для сопоставления типов данных между Unity Catalog и источником данных проверьте в разделе сопоставления типов данных в документации по каждому источнику данных.

Необходимые разрешения:CREATE CATALOG разрешение на хранилище метаданных и право владения подключением или CREATE FOREIGN CATALOG привилегией подключения.

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

  1. В рабочей области Azure Databricks щелкните значок каталога каталога, чтобы открыть обозреватель каталогов.

  2. В верхней части области каталога щелкните значок Добавить или плюсзначок "Добавить" и выберите Добавить каталог в меню.

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

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

SQL

Выполните следующую команду SQL в записной книжке или редакторе sql-запросов. Элементы в квадратных скобках являются необязательными. Замените значения заполнителей:

  • <catalog-name>: имя каталога в Azure Databricks.
  • <connection-name>: объект подключения , указывающий источник данных, путь и учетные данные доступа.
  • <database-name>. Имя базы данных, которую вы хотите зеркально отражать в качестве каталога в Azure Databricks. Не требуется для MySQL, использующего двухуровневое пространство имен.
  • <external-catalog-name>: Databricks-to-Databricks только: Имя каталога во внешней рабочей области Databricks, который вы зеркалируете. См. Создатьвнешний каталог.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Сведения об управлении и работе с иностранными каталогами см. в статье Управление и работа с иностранными каталогами.

Федерация Lakehouse и материализованные представления

Databricks рекомендует загружать внешние данные с помощью Федерации Lakehouse при создании материализованных представлений. См. Использование материализованных представлений в Databricks SQL.

При использовании Федерации Lakehouse пользователи могут ссылаться на федеративные данные следующим образом:

CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;

Просмотр системных федеративных запросов

Федерация Lakehouse преобразует инструкции Databricks SQL в инструкции, которые можно отправить в федеративный источник данных. Чтобы просмотреть сформированный оператор SQL, щелкните узел сканирования источника внешних данных в графовом представлении профиля запросовили запустите оператор EXPLAIN FORMATTED SQL. Дополнительные сведения см. в разделе "Поддерживаемые pushdown " документации по каждому источнику данных.

Ограничения

  • Запросы доступны только для чтения.
  • Определение регулирования подключений осуществляется с помощью ограничения на одновременные запросы в Databricks SQL. Для каждого подключения не существует ограничений между складами. См . статью "Очереди и автомасштабирование" для хранилищ pro и классических хранилищ SQL.
  • Таблицы и схемы с именами, недопустимыми в каталоге Unity, не поддерживаются и игнорируются каталогом Unity при создании внешнего каталога. См. список правил именования и ограничений в разделе Ограничения.
  • Имена таблиц и имена схем преобразуются в нижний регистр в каталоге Unity. Подстановки также должны использовать строчные имена. Если имеются таблицы или схемы с повторяющимися строчными именами, импортируется только одна из таблиц или схем в внешний каталог.
  • Для каждой внешней таблицы, на которую ссылается, Azure Databricks запускает подзапрос на удаленной системе для возврата подмножества данных этой таблицы, а затем передает результат одной задаче исполнителя Azure Databricks по одному потоку. Если результирующий набор слишком большой, исполнитель может закончиться нехваткой памяти.
  • Режим доступа к одному пользователю доступен только для пользователей, которым принадлежит подключение.
  • Федерация Lakehouse не может федеративно работать с внешними таблицами с регистрозависимыми идентификаторами для подключений к Azure Synapse или Redshift.

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

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

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

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

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