Перейти к основному содержимому
Перейти к основному содержимому

Atomic

Движок Atomic поддерживает неблокирующие DROP TABLE и RENAME TABLE запросы, а также атомарные EXCHANGE TABLES запросы. Движок базы данных Atomic используется по умолчанию.

примечание

В ClickHouse Cloud по умолчанию используется движок базы данных Replicated.

Создание базы данных

Особенности и рекомендации

UUID таблицы

Каждая таблица в базе данных Atomic имеет постоянный UUID и хранит свои данные в следующем каталоге:

Где xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy - это UUID таблицы.

По умолчанию UUID генерируется автоматически. Тем не менее, пользователи могут явно указать UUID при создании таблицы, хотя это не рекомендуется.

Например:

примечание

Вы можете использовать настройку show_table_uuid_in_table_create_query_if_not_nil, чтобы отображать UUID с помощью запроса SHOW CREATE.

RENAME TABLE

Запросы RENAME не изменяют UUID и не перемещают данные таблицы. Эти запросы выполняются немедленно и не ждут завершения других запросов, которые используют таблицу.

DROP/DETACH TABLE

При использовании DROP TABLE данные не удаляются. Движок Atomic просто помечает таблицу как удалённую, перемещая её метаданные в /clickhouse_path/metadata_dropped/ и уведомляя фоновый поток. Задержка перед окончательным удалением данных таблицы задаётся настройкой database_atomic_delay_before_drop_table_sec. Вы можете указать синхронный режим, используя модификатор SYNC. Используйте настройку database_atomic_wait_for_drop_and_detach_synchronously для этого. В этом случае DROP ожидает завершения выполняющихся SELECT, INSERT и других запросов, которые используют таблицу. Таблица будет удалена, когда она не будет использоваться.

EXCHANGE TABLES/DICTIONARIES

Запрос EXCHANGE атомарно меняет местами таблицы или словари. Например, вместо этой неатомарной операции:

вы можете использовать атомарную:

ReplicatedMergeTree в Atomic базе данных

Для таблиц ReplicatedMergeTree рекомендуется не указывать параметры движка для пути в ZooKeeper и имени реплики. В этом случае будут использованы параметры конфигурации default_replica_path и default_replica_name. Если вы хотите явно указать параметры движка, рекомендуется использовать макрос {uuid}. Это гарантирует, что уникальные пути автоматически создаются для каждой таблицы в ZooKeeper.

См. также