* CLICKHOUSE-4063: less manual html @ index.md * CLICKHOUSE-4063: recommend markdown="1" in README.md * CLICKHOUSE-4003: manually purge custom.css for now * CLICKHOUSE-4064: expand <details> before any print (including to pdf) * CLICKHOUSE-3927: rearrange interfaces/formats.md a bit * CLICKHOUSE-3306: add few http headers * Remove copy-paste introduced in #3392 * Hopefully better chinese fonts #3392 * get rid of tabs @ custom.css * Apply comments and patch from #3384 * Add jdbc.md to ToC and some translation, though it still looks badly incomplete * minor punctuation * Add some backlinks to official website from mirrors that just blindly take markdown sources * Do not make fonts extra light * find . -name '*.md' -type f | xargs -I{} perl -pi -e 's//g' {} * find . -name '*.md' -type f | xargs -I{} perl -pi -e 's/ sql/g' {} * Remove outdated stuff from roadmap.md * Not so light font on front page too * Refactor Chinese formats.md to match recent changes in other languages * Update some links on front page * Remove some outdated comment * Add twitter link to front page * More front page links tuning * Add Amsterdam meetup link * Smaller font to avoid second line * Add Amsterdam link to README.md * Proper docs nav translation * Back to 300 font-weight except Chinese * fix docs build * Update Amsterdam link * remove symlinks * more zh punctuation * apply lost comment by @zhang2014 * Apply comments by @zhang2014 from #3417 * Remove Beijing link * rm incorrect symlink * restore content of docs/zh/operations/table_engines/index.md * CLICKHOUSE-3751: stem terms while searching docs * CLICKHOUSE-3751: use English stemmer in non-English docs too * CLICKHOUSE-4135 fix * Remove past meetup link * Add blog link to top nav * Add ContentSquare article link * Add form link to front page + refactor some texts * couple markup fixes * minor * Introduce basic ODBC driver page in docs * More verbose 3rd party libs disclaimer * Put third-party stuff into a separate folder * Separate third-party stuff in ToC too * Update links * Move stuff that is not really (only) a client library into a separate page * Add clickhouse-hdfs-loader link * Some introduction for "interfaces" section * Rewrite tcp.md * http_interface.md -> http.md * fix link * Remove unconvenient error for now * try to guess anchor instead of failing * remove symlink * Remove outdated info from introduction * remove ru roadmap.md * replace ru roadmap.md with symlink * Update roadmap.md * lost file * Title case in toc_en.yml * Sync "Functions" ToC section with en * Remove reference to pretty old ClickHouse release from docs * couple lost symlinks in fa * Close quote in proper place * Rewrite en/getting_started/index.md * Sync en<>ru getting_started/index.md * minor changes * Some gui.md refactoring * Translate DataGrip section to ru * Translate DataGrip section to zh * Translate DataGrip section to fa * Translate DBeaver section to fa * Translate DBeaver section to zh * Split third-party GUI to open-source and commercial * Mention some RDBMS integrations + ad-hoc translation fixes * Add rel="external nofollow" to outgoing links from docs * Lost blank lines * Fix class name * More rel="external nofollow" * Apply suggestions by @sundy-li * Mobile version of front page improvements * test * test 2 * test 3 * Update LICENSE * minor docs fix * Highlight current article as suggested by @sundy-li * fix link destination * Introduce backup.md (only "en" for now) * Mention INSERT+SELECT in backup.md * Some improvements for replication.md * Add backup.md to toc * Mention clickhouse-backup tool * Mention LightHouse in third-party GUI list * Introduce interfaces/third-party/proxy.md * Add clickhouse-bulk to proxy.md * Major extension of integrations.md contents * fix link target * remove unneeded file * better toc item name * fix markdown * better ru punctuation * Add yet another possible backup approach * Simplify copying permalinks to headers * Support non-eng link anchors in docs + update some deps * Generate anchors for single-page mode automatically * Remove anchors to top of pages * Remove anchors that nobody links to * build fixes * fix few links * restore css * fix some links * restore gifs * fix lost words * more docs fixes * docs fixes * NULL anchor * update urllib3 dependency * more fixes
13 KiB
ATTACH
Запрос полностью аналогичен запросу CREATE
, но:
- вместо слова
CREATE
используется словоATTACH
; - запрос не создаёт данные на диске, а предполагает, что данные уже лежат в соответствующих местах, и всего лишь добавляет информацию о таблице в сервер.
После выполнения ATTACH
, сервер будет знать о существовании таблицы.
Если таблица перед этим была отсоединена (DETACH
), т.е. её структура известна, то можно использовать сокращенную форму записи без определения структуры.
ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster]
Этот запрос используется при старте сервера. Сервер хранит метаданные таблиц в виде файлов с запросами ATTACH
, которые он просто исполняет при запуске (за исключением системных таблиц, создание которых явно вписано в сервер).
DROP
Запрос имеет два вида: DROP DATABASE
и DROP TABLE
.
DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
Удаляет все таблицы внутри базы данных db, а затем саму базу данных db.
Если указано IF EXISTS
- не выдавать ошибку, если база данных не существует.
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
Удаляет таблицу.
Если указано IF EXISTS
- не выдавать ошибку, если таблица не существует или база данных не существует.
DETACH
Удаляет из сервера информацию о таблице name. Сервер перестаёт знать о существовании таблицы.
DETACH TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
Но ни данные, ни метаданные таблицы не удаляются. При следующем запуске сервера, сервер прочитает метаданные и снова узнает о таблице.
Также, "отцепленную" таблицу можно прицепить заново запросом ATTACH
(за исключением системных таблиц, для которых метаданные не хранятся).
Запроса DETACH DATABASE
нет.
RENAME
Переименовывает одну или несколько таблиц.
RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster]
Все таблицы переименовываются под глобальной блокировкой. Переименовывание таблицы является лёгкой операцией. Если вы указали после TO другую базу данных, то таблица будет перенесена в эту базу данных. При этом, директории с базами данных должны быть расположены в одной файловой системе (иначе возвращается ошибка).
SHOW DATABASES
SHOW DATABASES [INTO OUTFILE filename] [FORMAT format]
Выводит список всех баз данных.
Запрос полностью аналогичен запросу SELECT name FROM system.databases [INTO OUTFILE filename] [FORMAT format]
.
Смотрите также раздел "Форматы".
SHOW TABLES
SHOW [TEMPORARY] TABLES [FROM db] [LIKE 'pattern'] [INTO OUTFILE filename] [FORMAT format]
Выводит список таблиц
- из текущей БД или из БД db, если указано FROM db;
- всех, или имя которых соответствует шаблону pattern, если указано LIKE 'pattern';
Запрос полностью аналогичен запросу: SELECT name FROM system.tables WHERE database = 'db' [AND name LIKE 'pattern'] [INTO OUTFILE filename] [FORMAT format]
.
Смотрите также раздел "Оператор LIKE".
SHOW PROCESSLIST
SHOW PROCESSLIST [INTO OUTFILE filename] [FORMAT format]
Выводит список запросов, выполняющихся в данный момент времени, кроме запросов SHOW PROCESSLIST
.
Выдаёт таблицу, содержащую столбцы:
user - пользователь, под которым был задан запрос. Следует иметь ввиду, что при распределённой обработке запроса на удалённые серверы запросы отправляются под пользователем default. И SHOW PROCESSLIST показывает имя пользователя для конкретного запроса, а не для запроса, который данный запрос инициировал.
address - имя хоста, с которого был отправлен запрос. При распределённой обработке запроса на удалённых серверах — это имя хоста-инициатора запроса. Чтобы проследить, откуда был задан распределённый запрос изначально, следует смотреть SHOW PROCESSLIST на сервере-инициаторе запроса.
elapsed - время выполнения запроса, в секундах. Запросы выводятся упорядоченными по убыванию времени выполнения.
rows_read, bytes_read - сколько было прочитано строк, байт несжатых данных при обработке запроса. При распределённой обработке запроса суммируются данные со всех удалённых серверов. Именно эти данные используются для ограничений и квот.
memory_usage - текущее потребление оперативки в байтах. Смотрите настройку max_memory_usage.
query - сам запрос. В запросах INSERT данные для вставки не выводятся.
query_id - идентификатор запроса. Непустой, только если был явно задан пользователем. При распределённой обработке запроса идентификатор запроса не передаётся на удалённые серверы.
Запрос полностью аналогичен запросу: SELECT * FROM system.processes [INTO OUTFILE filename] [FORMAT format]
.
Полезный совет (выполните в консоли):
watch -n1 "clickhouse-client --query='SHOW PROCESSLIST'"
SHOW CREATE TABLE
SHOW CREATE [TEMPORARY] TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
Возвращает один столбец statement типа String
, содержащий одно значение - запрос CREATE
, с помощью которого создана указанная таблица.
DESCRIBE TABLE
DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]
Возвращает два столбца: name
, type
типа String
, в которых описаны имена и типы столбцов указанной таблицы.
Вложенные структуры данных выводятся в "развёрнутом" виде. То есть, каждый столбец - по отдельности, с именем через точку.
EXISTS
EXISTS [TEMPORARY] TABLE [db.]name [INTO OUTFILE filename] [FORMAT format]
Возвращает один столбец типа UInt8
, содержащий одно значение - 0
, если таблицы или БД не существует и 1
, если таблица в указанной БД существует.
USE
USE db
Позволяет установить текущую базу данных для сессии. Текущая база данных используется для поиска таблиц, если база данных не указана в запросе явно через точку перед именем таблицы. При использовании HTTP протокола, запрос не может быть выполнен, так как понятия сессии не существует.
SET
SET param = value
Позволяет установить настройку param
в значение value
. Также можно одним запросом установить все настройки из заданного профиля настроек - для этого, укажите в качестве имени настройки profile. Подробнее смотри раздел "Настройки".
Настройка устанавливается на сессию, или на сервер (глобально), если указано GLOBAL
.
При установке глобальной настройки, настройка на все уже запущенные сессии, включая текущую сессию, не устанавливается, а будет использована только для новых сессий.
При перезапуске сервера, теряются настройки, установленные с помощью SET
.
Установить настройки, которые переживут перезапуск сервера, можно только с помощью конфигурационного файла сервера.
OPTIMIZE
OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition] [FINAL]
Просит движок таблицы сделать что-нибудь, что может привести к более оптимальной работе.
Поддерживается только движками *MergeTree
, в котором выполнение этого запроса инициирует внеочередное слияние кусков данных.
Если указан PARTITION
, то оптимизация будет производиться только для указаной партиции.
Если указан FINAL
, то оптимизация будет производиться даже когда все данные уже лежат в одном куске.
!!! warning "Внимание" Запрос OPTIMIZE не может устранить причину появления ошибки "Too many parts".
KILL QUERY
KILL QUERY [ON CLUSTER cluster]
WHERE <where expression to SELECT FROM system.processes query>
[SYNC|ASYNC|TEST]
[FORMAT format]
Пытается принудительно остановить исполняющиеся в данный момент запросы.
Запросы для принудительной остановки выбираются из таблицы system.processes с помощью условия, указанного в секции WHERE
запроса KILL
.
Примеры:
-- Принудительно останавливает все запросы с указанным query_id:
KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'
-- Синхронно останавливает все запросы пользователя 'username':
KILL QUERY WHERE user='username' SYNC
Readonly-пользователи могут останавливать только свои запросы.
По умолчанию используется асинхронный вариант запроса (ASYNC
), который не дожидается подтверждения остановки запросов.
Синхронный вариант (SYNC
) ожидает остановки всех запросов и построчно выводит информацию о процессах по ходу их остановки.
Ответ содержит колонку kill_status
, которая может принимать следующие значения:
- 'finished' - запрос был успешно остановлен;
- 'waiting' - запросу отправлен сигнал завершения, ожидается его остановка;
- остальные значения описывают причину невозможности остановки запроса.
Тестовый вариант запроса (TEST
) только проверяет права пользователя и выводит список запросов для остановки.