Подключение к каталогу данных
В предыдущем разделе вы выполняли запросы к открытым форматам таблиц, передавая пути к хранилищу напрямую. На практике большинство организаций управляют метаданными таблиц через каталог данных — центральный реестр, который отслеживает расположение таблиц, их схемы и партиции. Когда вы подключаете ClickHouse к каталогу с помощью движка базы данных DataLakeCatalog, весь каталог становится доступен как база данных ClickHouse. Каждая таблица в каталоге автоматически появляется и её можно запрашивать с использованием полного SQL ClickHouse — нет необходимости знать пути к отдельным таблицам или управлять учётными данными для каждой таблицы.
В этом руководстве рассматривается подключение к Databricks Unity Catalog. ClickHouse также поддерживает следующие каталоги — полные инструкции по настройке приведены в соответствующих руководствах:
| Каталог | Руководство по настройке |
|---|---|
| AWS Glue | каталог AWS Glue |
| Iceberg REST Catalog | REST-каталог |
| Lakekeeper | каталог Lakekeeper |
| Project Nessie | каталог Nessie |
| Microsoft OneLake | Fabric OneLake |
Подключение к Unity Catalog
В качестве примера мы будем использовать Unity Catalog.
Databricks Unity Catalog обеспечивает централизованное управление данными в lakehouse-платформе Databricks.
Databricks поддерживает несколько форматов данных для своей lakehouse-платформы. С ClickHouse вы можете выполнять запросы к таблицам Unity Catalog как в формате Delta, так и в формате Iceberg.
Интеграция с Unity Catalog работает как для управляемых, так и для внешних таблиц. В настоящее время эта интеграция поддерживается только на AWS.
Настройка Unity в Databricks
Чтобы разрешить ClickHouse взаимодействовать с Unity Catalog, необходимо убедиться, что ваш Unity Catalog настроен для взаимодействия с внешним клиентом. Это можно сделать, следуя руководству "Enable external data access to Unity Catalog".
Помимо включения внешнего доступа, убедитесь, что субъект (principal), выполняющий настройку интеграции, имеет привилегию EXTERNAL USE SCHEMA (privilege) для схемы, содержащей таблицы.
После настройки каталога необходимо сгенерировать учетные данные для ClickHouse. Можно использовать два разных подхода в зависимости от режима взаимодействия с Unity:
-
Для клиентов Iceberg аутентифицируйтесь с помощью service principal.
-
Для клиентов Delta используйте Personal Access Token (PAT).
Подключение к каталогу
С указанными учетными данными вы можете подключиться к соответствующему endpoint, чтобы выполнять запросы к таблицам Iceberg или Delta.
- Delta
- Iceberg
Unity catalog следует использовать для доступа к данным в формате Delta.
Список таблиц
После установления подключения к каталогу вы можете просмотреть список таблиц.
Изучение схем таблиц
Мы можем воспользоваться стандартной командой SHOW CREATE TABLE, чтобы увидеть, как были созданы таблицы.
Обратите внимание на необходимость указать Пространство имен и имя таблицы, заключённые в обратные кавычки — ClickHouse не поддерживает более одного Пространства имен.
Далее предполагается, что запрос выполняется к REST-каталогу Iceberg:
Выполнение запроса к таблице
Поддерживаются все функции ClickHouse. Как и ранее, пространство имён и имя таблицы должны быть заключены в обратные кавычки.
Полные инструкции по настройке см. в справочном руководстве по Unity Catalog.