Что такое Федерация 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 привилегии для подключения.

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

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

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

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

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

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

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

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

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

  5. Выберите тип Подключение ion (поставщик базы данных, например 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.

Необходимые разрешения: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;

Ограничения

  • Запросы доступны только для чтения.

  • Регулирование подключений определяется с помощью ограничения параллельного запроса Databricks SQL. Для каждого подключения не существует ограничений на склады. См . статью "Очереди и автомасштабирование" для хранилищ pro и классических хранилищ SQL.

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

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

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

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

  • Федерация Lakehouse не может федеративные внешние таблицы с идентификаторами с учетом регистра для подключений Azure Synapse или Redshift.