Unity Catalog
Интеграция с Unity Catalog работает для управляемых и внешних таблиц. На данный момент эта интеграция поддерживается только в AWS.
ClickHouse поддерживает интеграцию с несколькими каталогами (Unity, Glue, Polaris и т.д.). Это руководство проведёт вас через шаги выполнения запросов к вашим данным, управляемым Databricks, с использованием ClickHouse и Unity Catalog.
Databricks поддерживает несколько форматов данных для своего lakehouse. С ClickHouse вы можете выполнять запросы к таблицам Unity Catalog как к Delta, так и к Iceberg.
Конфигурация Unity в Databricks
Чтобы ClickHouse мог взаимодействовать с Unity Catalog, необходимо убедиться, что Unity Catalog настроен для разрешения взаимодействия с внешним читателем. Это можно сделать, следуя руководству "Enable external data access to Unity Catalog".
В дополнение к разрешению внешнего доступа убедитесь, что принципал, настраивающий интеграцию, имеет привилегию EXTERNAL USE SCHEMA
привилегия на схему, содержащую таблицы.
После настройки вашего каталога вам необходимо сгенерировать учетные данные для ClickHouse. Можно использовать два различных метода в зависимости от вашего режима взаимодействия с Unity:
-
Для клиентов Iceberg используйте аутентификацию в качестве сервисного принципала.
-
Для клиентов Delta используйте токен персонального доступа (PAT).
Создание соединения между Unity Catalog и ClickHouse
С настроенным Unity Catalog и установленной аутентификацией установите соединение между ClickHouse и Unity Catalog.
Чтение Delta
Чтение Iceberg
Запрос таблиц Unity Catalog с помощью ClickHouse
Теперь, когда соединение установлено, вы можете начать выполнять запросы через Unity Catalog. Например:
Если вы используете клиента Iceberg, будут показаны только таблицы Delta с включенной функцией Uniform:
Чтобы выполнить запрос к таблице:
Обратные кавычки требуются, поскольку ClickHouse не поддерживает более одного пространства имен.
Чтобы просмотреть DDL таблицы:
Загрузка данных из вашего Data Lake в ClickHouse
Если вам нужно загрузить данные из Databricks в ClickHouse, начните с создания локальной таблицы ClickHouse:
Затем загрузите данные из вашей таблицы Unity Catalog с помощью INSERT INTO SELECT
: