Команда 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:
Прикрепить Существующий Словарь
Прикрепляет ранее отсоединенный словарь.
Синтаксис
Прикрепить Существующую Базу Данных
Прикрепляет ранее отсоединенную базу данных.
Синтаксис