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