Команда ATTACH
Прикрепляет таблицу или словарь, например, при переносе базы данных на другой сервер.
Синтаксис
Запрос не создает данные на диске, а предполагает, что данные уже находятся в соответствующих местах, и просто добавляет информацию о заданной таблице, словаре или базе данных на сервер. После выполнения запроса ATTACH
сервер будет знать о существовании таблицы, словаря или базы данных.
Если таблица была ранее отключена (запрос DETACH), что означает, что ее структура известна, можно использовать короткую запись без определения структуры.
Прикрепление существующей таблицы
Синтаксис
Этот запрос используется при запуске сервера. Сервер хранит метаданные таблиц как файлы с запросами ATTACH
, которые он просто выполняет при запуске (за исключением некоторых системных таблиц, которые явно создаются на сервере).
Если таблица была отключена навсегда, она не будет повторно подключена при запуске сервера, поэтому нужно явно использовать запрос ATTACH
.
Создание новой таблицы и прикрепление данных
С указанным путем к данным таблицы
Запрос создает новую таблицу с указанной структурой и прикрепляет данные таблицы из указанного каталога в user_files
.
Синтаксис
Пример
Запрос:
Результат:
С указанным UUID таблицы
Этот запрос создает новую таблицу с указанной структурой и прикрепляет данные из таблицы с заданным UUID. Поддерживается движком базы данных Atomic.
Синтаксис
Прикрепление таблицы MergeTree как ReplicatedMergeTree
Позволяет прикрепить не реплицированную таблицу MergeTree как ReplicatedMergeTree. Таблица ReplicatedMergeTree будет создана со значениями настроек default_replica_path
и default_replica_name
. Также можно прикрепить реплицированную таблицу как обычную таблицу MergeTree.
Обратите внимание, что данные таблицы в ZooKeeper не затрагиваются в этом запросе. Это означает, что вам нужно добавить метаданные в ZooKeeper с помощью SYSTEM RESTORE REPLICA
или очистить их с помощью SYSTEM DROP REPLICA ... FROM ZKPATH ...
после прикрепления.
Если вы пытаетесь добавить реплику к существующей таблице ReplicatedMergeTree, имейте в виду, что все локальные данные в конвертированной таблице MergeTree будут отключены.
Синтаксис
Преобразовать таблицу в реплицированную
Преобразовать таблицу в не реплицированную
Получите путь к ZooKeeper и имя реплики для таблицы:
Результат:
Прикрепите таблицу как не реплицированную и удалите данные реплики из ZooKeeper:
Прикрепление существующего словаря
Прикрепляет ранее отключенный словарь.
Синтаксис
Прикрепление существующей базы данных
Прикрепляет ранее отключенную базу данных.
Синтаксис