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

Заявление 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:

Прикрепить существующий словарь

Прикрепляет ранее отсоединенный словарь.

Синтаксис

Прикрепить существующую базу данных

Прикрепляет ранее отсоединенную базу данных.

Синтаксис