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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Рабочая область включена для каталога Unity.

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

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

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

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

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

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

Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду SQL в записной книжке Azure Databricks или CREATE CONNECTION редакторе 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. Нажмите кнопку Создать.

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. Чтобы создать внешний каталог, вы используете подключение к источнику данных, который уже определен.

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

Примечание.

Вы также можете использовать API каталога Unity. Справочная документация по Azure Databricks.

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

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

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

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

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

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

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

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".

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