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


Что такое Федерация 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 должны быть профессиональными или бессерверными.

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

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

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

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

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

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

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

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

  2. В левой области разверните меню "Внешние данные" и выберите "Подключения".

  3. Нажмите Create connection (Создать подключение).

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

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

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

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

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

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

  9. Нажмите кнопку Создать.

SQL

Выполните следующую команду в записной книжке или редакторе sql-запросов Databricks. Этот пример предназначен для подключений к базе данных 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-запросов Databricks.

Примечание.

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

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

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

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

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

  2. Нажмите кнопку Создать каталог.

  3. В диалоговом окне "Создание нового каталога" введите имя каталога и выберите типвнешнего пользователя.

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

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

    Требования различаются в зависимости от источника данных:

    • MySQL использует двухуровневое пространство имен и поэтому не требует имени базы данных.
    • Для подключений к каталогу в другой рабочей области Databricks введите имя каталога Databricks вместо имени базы данных.
  6. Нажмите кнопку Создать.

SQL

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

    • <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.
  • Имена таблиц и имена схем преобразуются в нижний регистр в каталоге Unity. Подстановки также должны использовать строчные имена. Если имеются таблицы или схемы с повторяющимися строчными именами, импортируется только одна из таблиц или схем в внешний каталог.
  • поддержка Приватный канал и статического диапазона IP-адресов в бессерверных хранилищах SQL недоступна.
  • Для каждой внешней таблицы, на которую ссылается ссылка, Azure Databricks планирует вложенный запрос в удаленной системе для возврата подмножества данных из этой таблицы, а затем возвращает результат одной задаче исполнителя Azure Databricks через один поток.
  • Режим доступа с одним пользователем доступен только для пользователей, которым принадлежит подключение.
  • Федерация Lakehouse не может федеративные внешние таблицы с идентификаторами с учетом регистра для подключений Azure Synapse или Redshift.