Что такое Федерация 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 поддерживает подключения к следующим типам баз данных:
- MySQL
- PostgreSQL
- Amazon Redshift
- Облако данных Salesforce
- Snowflake
- Microsoft SQL Server
- Azure Synapse (хранилище данных SQL)
- Google BigQuery
- Databricks
Требования к подключению
Требования к рабочей области:
- Рабочая область включена для каталога 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
.
Обозреватель каталогов
В рабочей области Azure Databricks щелкните "Каталог".
В верхней части области каталога щелкните значок "Добавить " и выберите " Добавить подключение " в меню.
Кроме того, на странице быстрого доступа нажмите кнопку "Внешние данные > ", перейдите на вкладку "Подключения " и нажмите кнопку "Создать подключение".
Введите понятное имя подключения.
Выберите тип подключения (поставщик базы данных, например MySQL или PostgreSQL).
Введите свойства подключения (например, сведения о узле, пути и учетные данные доступа).
Для каждого типа подключения требуются разные сведения о подключении. См. статью о типе подключения, указанную в оглавлении слева.
(Необязательно) Нажмите кнопку "Проверить подключение" , чтобы убедиться, что она работает.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Создать.
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
привилегией подключения.
Обозреватель каталогов
В рабочей области Azure Databricks щелкните каталог , чтобы открыть обозреватель каталогов.
В верхней части области каталога щелкните значок "Добавить " и выберите " Добавить каталог " в меню.
Кроме того, на странице быстрого доступа нажмите кнопку "Каталоги" и нажмите кнопку "Создать каталог ".
Следуйте инструкциям по созданию внешних каталогов в каталогах 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".
Дополнительные ресурсы
- Федеративные запросы (Федерация Lakehouse) в справочнике по языку SQL