REST Catalog
Интеграция с REST Catalog работает только с таблицами Iceberg. Эта интеграция поддерживает как AWS S3, так и другие облачные хранилища.
ClickHouse поддерживает интеграцию с несколькими каталогами (Unity, Glue, REST, Polaris и др.). Этот гид проведет вас через шаги запроса ваших данных, используя ClickHouse и спецификацию REST Catalog.
REST Catalog — это стандартизированная API спецификация для каталогов Iceberg, поддерживаемая различными платформами, включая:
- Локальные среды разработки (с использованием docker-compose)
- Управляемые сервисы, такие как Tabular.io
- Самостоятельно размещенные реализации REST каталога
Поскольку эта функция экспериментальная, вам нужно будет активировать её с помощью:
SET allow_experimental_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. Убедитесь, что среда Spark создала и наполнила таблицы перед тем, как пытаться запрашивать их через ClickHouse. Доступность таблиц зависит от конкретной настройки docker-compose и скриптов загрузки примерных данных.
Подключение к локальному REST каталогу
Подключитесь к вашему контейнеру ClickHouse:
Затем создайте соединение с базой данных для REST каталога:
Запрос таблиц REST каталога с использованием ClickHouse
Теперь, когда соединение установлено, вы можете начать делать запросы через REST каталог. Например:
Если ваша настройка включает примерные данные (такие как набор данных такси), вы должны увидеть такие таблицы:
Если вы не видите никаких таблиц, это обычно означает:
- Среда Spark ещё не создала примерные таблицы
- Сервис REST каталога не полностью инициализирован
- Процесс загрузки примерных данных не завершён
Вы можете проверить логи Spark, чтобы увидеть прогресс создания таблиц:
Чтобы сделать запрос к таблице (если она доступна):
Обратные кавычки требуются, потому что ClickHouse не поддерживает более одного пространства имён.
Чтобы просмотреть DDL таблицы:
Загрузка данных из вашего Data Lake в ClickHouse
Если вам нужно загрузить данные из REST каталога в ClickHouse, начните с создания локальной таблицы ClickHouse:
Затем загрузите данные из вашей таблицы REST каталога через INSERT INTO SELECT
: