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