Каталог 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_experimental_database_iceberg = 1;
Локальная среда разработки
Для локальной разработки и тестирования вы можете использовать контейнеризованную установку REST-каталога. Такой подход подходит для обучения, прототипирования и использования в средах разработки.
Предварительные требования
- Docker и Docker Compose: Убедитесь, что Docker установлен и запущен.
- Пример окружения: Вы можете использовать различные варианты конфигураций docker-compose (см. раздел «Alternative Docker Images» ниже).
Настройка локального 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. Убедитесь, что в среде Spark таблицы созданы и заполнены, прежде чем пытаться выполнять к ним запросы из ClickHouse. Доступность таблиц зависит от конкретной конфигурации docker-compose и скриптов загрузки демонстрационных данных.
Подключение к локальному REST-каталогу
Подключитесь к своему контейнеру с ClickHouse:
Затем создайте подключение базы данных к каталогу REST:
Выполнение запросов к таблицам REST‑каталога с помощью ClickHouse
Теперь, когда соединение установлено, вы можете начинать выполнять запросы через REST‑каталог. Например:
Если в вашей установке есть демонстрационные данные (например, набор данных taxi), вы должны увидеть следующие таблицы:
Если вы не видите таблиц, это обычно означает:
- Среда Spark ещё не создала тестовые таблицы
- Служба REST-каталога ещё не полностью инициализирована
- Процесс загрузки тестовых данных ещё не завершён
Вы можете проверить логи Spark, чтобы узнать, как продвигается создание таблиц:
Чтобы выполнить запрос к таблице (если она существует):
Обратные кавычки требуются, потому что ClickHouse не поддерживает более одного пространства имён.
Чтобы просмотреть DDL таблицы:
Загрузка данных из вашего озера данных (Data Lake) в ClickHouse
Если вам нужно загрузить данные из каталога REST в ClickHouse, сначала создайте локальную таблицу ClickHouse:
Затем загрузите данные из таблицы каталога REST с помощью оператора INSERT INTO SELECT: