Общий каталог и общий движок базы данных
Доступно исключительно в ClickHouse Cloud (и в облачных сервисах партнёров первого уровня)
Shared Catalog — это облачный компонент, отвечающий за репликацию метаданных и DDL-операций баз данных и таблиц, использующих движки без сохранения состояния (stateless), между репликами в ClickHouse Cloud. Он обеспечивает согласованное и централизованное управление состоянием этих объектов, гарантируя согласованность метаданных даже в динамичных или частично недоступных средах.
Shared Catalog не реплицирует сами таблицы, но обеспечивает единое и согласованное представление определений баз данных и таблиц на всех репликах за счёт репликации DDL-запросов и метаданных.
Поддерживается репликация следующих движков баз данных:
- Shared
- PostgreSQL
- MySQL
- DataLakeCatalog
Архитектура и хранение метаданных
Все метаданные и история DDL‑запросов в Shared Catalog хранятся централизованно в ZooKeeper. Ничего не сохраняется на локальные диски. Такая архитектура обеспечивает:
- Согласованное состояние всех реплик
- Отсутствие состояния у вычислительных узлов (stateless)
- Быстрый и надёжный запуск реплик
Shared database engine
Shared database engine работает совместно с Shared Catalog для управления базами данных, таблицы которых используют stateless‑движки таблиц, такие как SharedMergeTree. Эти движки таблиц не записывают постоянное состояние на диск и совместимы с динамическими вычислительными средами.
Shared database engine развивает и улучшает поведение Replicated database engine, предоставляя дополнительные гарантии и операционные преимущества.
Ключевые преимущества
-
Atomic CREATE TABLE ... AS SELECT
Создание таблицы и вставка данных выполняются атомарно — либо вся операция завершается полностью, либо таблица не создаётся вовсе. -
RENAME TABLE между базами данных
Обеспечивает атомарное перемещение таблиц между базами данных: -
Автоматическое восстановление таблиц с помощью UNDROP TABLE
Удалённые таблицы по умолчанию сохраняются в течение 8 часов и могут быть восстановлены:Окно хранения настраивается в параметрах сервера.
-
Улучшенное разделение вычислительных ресурсов (compute-compute separation)
В отличие от Replicated database engine, который требует, чтобы все реплики были в сети для обработки запроса DROP, Shared Catalog выполняет централизованное удаление метаданных. Это позволяет успешно выполнять операции даже при недоступности части реплик. -
Автоматическая репликация метаданных
Shared Catalog гарантирует, что определения баз данных автоматически реплицируются на все серверы при старте. Операторам не нужно вручную настраивать или синхронизировать метаданные на новых экземплярах. -
Централизованное, версионируемое состояние метаданных
Shared Catalog хранит единый источник истины в ZooKeeper. Когда реплика запускается, она получает последнее состояние и применяет разницу (diff), чтобы достичь согласованности. Во время выполнения запроса система может дождаться, пока другие реплики достигнут как минимум требуемой версии метаданных для обеспечения корректности.
Использование в ClickHouse Cloud
Для конечных пользователей использование Shared Catalog и движка базы данных Shared не требует какой-либо дополнительной настройки. Создание базы данных осуществляется как обычно:
ClickHouse Cloud автоматически назначает базам данных движок базы данных Shared. Любые таблицы, созданные в такой базе данных с использованием stateless-движков, автоматически получают все преимущества репликации и координации, обеспечиваемых Shared Catalog.
Краткое содержание
Shared Catalog и движок базы данных Shared обеспечивают:
- Надёжную и автоматическую репликацию метаданных для stateless-движков
- Stateless-вычисления без локального хранения метаданных
- Атомарные операции для сложных DDL
- Улучшенную поддержку эластичных, эфемерных или частично недоступных вычислительных сред
- Бесшовное использование для пользователей ClickHouse Cloud
Эти возможности делают Shared Catalog основой масштабируемого cloud-native управления метаданными в ClickHouse Cloud.