REST-каталог
Интеграция с REST Catalog работает только с таблицами Iceberg. Эта интеграция поддерживает как AWS S3, так и других провайдеров облачного хранилища.
ClickHouse поддерживает интеграцию с несколькими каталогами (Unity, Glue, REST, Polaris и т. д.). В этом руководстве пошагово описывается, как выполнять запросы к вашим данным с помощью ClickHouse и спецификации REST Catalog.
REST Catalog — это стандартизированная спецификация API для каталогов Iceberg, поддерживаемая различными платформами, включая:
- Локальные среды разработки (с конфигурациями docker-compose)
- Управляемые сервисы, такие как Tabular.io
- Самостоятельно развёрнутые реализации REST Catalog
Поскольку эта функция находится в статусе бета-версии, вам необходимо включить её с помощью:
SET allow_database_iceberg = 1;
Локальная среда разработки
Для локальной разработки и тестирования вы можете использовать контейнеризованный REST-каталог. Такой подход оптимален для обучения, прототипирования и окружений разработки.
Предварительные требования
- Docker и Docker Compose: Убедитесь, что Docker установлен и запущен.
- Пример окружения: Вы можете использовать различные конфигурации docker-compose (см. раздел об альтернативных образах Docker ниже).
Настройка локального REST-каталога
Вы можете использовать различные контейнеризованные реализации REST-каталога, такие как Databricks docker-spark-iceberg, которая предоставляет полноценную среду Spark + Iceberg + REST-каталог с помощью docker-compose, что делает её идеальной для тестирования интеграций с Iceberg.
Шаг 1. Создайте новую папку для запуска примера, затем создайте файл docker-compose.yml с конфигурацией из Databricks docker-spark-iceberg.
Шаг 2. Затем создайте файл docker-compose.override.yml и поместите в него следующую конфигурацию контейнера ClickHouse:
Шаг 3: Выполните следующую команду, чтобы запустить сервисы:
Шаг 4: Дождитесь, пока все сервисы не будут готовы. Можно проверить логи:
Для настройки REST-каталога необходимо, чтобы в таблицы Iceberg предварительно были загружены примерные данные. Перед тем как пытаться выполнять по ним запросы из ClickHouse, убедитесь, что среда Spark создала и заполнила таблицы. Доступность таблиц зависит от конкретной конфигурации docker-compose и скриптов загрузки примерных данных.
Подключение к локальному REST-каталогу
Подключитесь к своему контейнеру ClickHouse:
Затем создайте подключение к базе данных REST-каталога:
Выполнение запросов к таблицам REST-каталога в ClickHouse
Теперь, когда соединение установлено, вы можете начинать выполнять запросы через REST-каталог. Например:
Если ваша конфигурация включает демонстрационные данные (например, датасет такси), вы должны увидеть следующие таблицы:
Если вы не видите никаких таблиц, это обычно означает, что:
- Среда Spark ещё не создала таблицы-примеры
- Служба REST-каталога ещё не полностью инициализирована
- Процесс загрузки демонстрационных данных ещё не завершён
Вы можете проверить логи Spark, чтобы отслеживать ход создания таблиц:
Чтобы выполнить запрос к таблице (если она доступна):
Обратные кавычки требуются, потому что ClickHouse поддерживает только одно пространство имен.
Чтобы просмотреть DDL таблицы:
Загрузка данных из вашего озера данных в ClickHouse
Если вам нужно загрузить данные из REST-каталога в ClickHouse, начните с создания локальной таблицы ClickHouse:
Затем загрузите данные из таблицы каталога REST с помощью оператора INSERT INTO SELECT: