Skip to main content
Присоединяет таблицу или словарь, например при переносе базы данных на другой сервер. Синтаксис
Этот запрос не создает данные на диске, а предполагает, что данные уже находятся в соответствующих местах, и лишь добавляет на сервер информацию об указанной таблице, словаре или базе данных. После выполнения запроса ATTACH сервер будет знать о существовании таблицы, словаря или базы данных. Если таблица ранее была отсоединена (запрос DETACH), то есть ее структура известна, вы можете использовать сокращенную форму без определения структуры.

Присоединение существующей таблицы

Синтаксис
Этот запрос используется при запуске сервера. Сервер хранит метаданные таблиц в виде файлов с запросами ATTACH, которые он просто выполняет при запуске (за исключением некоторых системных таблиц, которые явно создаются на сервере). Если таблица была отсоединена навсегда, при запуске сервера она не будет присоединена снова, поэтому нужно явно выполнить запрос ATTACH.

Создать новую таблицу и присоединить данные

С указанием пути к данным таблицы

Этот запрос создает новую таблицу с указанной структурой и присоединяет данные таблицы из указанного каталога в user_files. Для выполнения этого запроса пользователю необходимы привилегии READ ON FILE и WRITE ON FILE: запрос читает каталог и перемещает его в путь к данным новой таблицы. Синтаксис
Пример
Query
Response

С указанием UUID таблицы

Этот запрос создаёт новую таблицу с указанной структурой и присоединяет данные из таблицы с указанным UUID. Поддерживается движком базы данных Atomic. Синтаксис

Подключение таблицы MergeTree как ReplicatedMergeTree

Позволяет подключить нереплицируемую таблицу MergeTree как ReplicatedMergeTree. Таблица ReplicatedMergeTree будет создана со значениями настроек default_replica_path и default_replica_name. Также можно подключить реплицируемую таблицу как обычную MergeTree. Преобразование поддерживается для таблиц в базах данных Atomic и Ordinary. У таблицы в базе данных Ordinary нет UUID, поэтому при преобразовании генерируется UUID, который однократно подставляется в default_replica_path, а полученный путь явно сохраняется в аргументах движка преобразованной таблицы. Чтобы добавить другие реплики такой таблицы, явно укажите этот путь в первом аргументе движка ReplicatedMergeTree; его можно найти в столбце zookeeper_path таблицы system.replicas. Поскольку сохранённый путь больше не содержит макрос {uuid}, znode, принадлежащий такой таблице, при каждой загрузке определяется путём повторного сопоставления пути с default_replica_path; если обратное сопоставление с этим шаблоном невозможно (например, когда {uuid} раскрывается в нём более одного раза), преобразование отклоняется. Использование {uuid} в default_replica_name не поддерживается ни при каком преобразовании. Обратите внимание, что данные таблицы в ZooKeeper этим запросом не затрагиваются. Это означает, что после подключения вам нужно добавить метаданные в ZooKeeper с помощью SYSTEM RESTORE REPLICA или удалить их с помощью SYSTEM DROP REPLICA ... FROM ZKPATH .... Если вы пытаетесь добавить реплику в существующую таблицу ReplicatedMergeTree, имейте в виду, что все локальные данные в преобразованной таблице MergeTree будут переведены в отсоединённое состояние. Синтаксис
Преобразовать таблицу в реплицируемую
Преобразовать таблицу в нереплицируемую Получите путь в ZooKeeper и имя реплики таблицы:
Query
Response
Подключите таблицу как нереплицируемую и удалите данные реплики из ZooKeeper:
Query

Присоединить существующий словарь

Присоединяет ранее отключённый словарь. Синтаксис

Присоединение существующей базы данных

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