Шпаргалка по ClickHouse
Просмотр текущих запросов
Посмотреть текущие выполняемые запросы, отсортировав их по убыванию времени выполнения и количества участвующих в запросе строк, можно при помощи следующего запроса в базе данных system
:
SELECT elapsed,
total_rows_approx,
client_name,
client_hostname,
user,
query
FROM processes
ORDER BY elapsed, total_rows_approx DESC;
Настройка времени хранения секций таблицы
Для задания максимального времени хранения данных в таблице с последующим удалением устаревших секций таблицы можно воспользоваться запросом следующего вида:
ALTER TABLE api_ufanet.api_fcm_notice MODIFY TTL date_create + INTERVAL 3 MONTH DELETE;
Чтобы заставить Clickhouse немедленно приступить к удалению устаревших секций, можно выполнить запрос следующего вида:
OPTIMIZE TABLE api_ufanet.api_fcm_notice FINAL;
Стоит, однако, отметить, что устаревшие данные не будут удалены сразу по завершении выполнения этого запроса. Удаление данных выполняется в фоновом режиме. Для того, чтобы проверить, какие ещё секции остались в таблице, можно воспользоваться запросом следующего вида:
SELECT DISTINCT partition
FROM system.parts
WHERE database = 'api_ufanet'
AND table = 'api_fcm_notice';
Просмотр количества таблиц в базах данных
Для просмотра количества таблиц в каждой из баз данных, имеющихся на сервере, кроме системых, можно воспользоваться таким запросом к базе данных information_schema
:
SELECT table_schema, COUNT(*)
FROM tables
WHERE table_schema NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
GROUP BY table_schema;
Просмотр количества колонок в таблицах баз данных
Для просмотра количества колонок в таблицах в каждой из баз данных, имеющихся на сервере, кроме системых, можно воспользоваться таким запросом к базе данных information_schema
:
SELECT table_schema, COUNT(*)
FROM columns
WHERE table_schema NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
GROUP BY table_schema;
Просмотр объёмов баз данных
Для просмотра объёма в гигабайтах каждой из баз данных, имеющихся на сервере, кроме системых, можно воспользоваться таким запросом к базе данных system
:
SELECT database, SUM(bytes_on_disk) / (1024 * 1024 * 1024)
FROM parts
GROUP BY database;
Просмотр объёма данных за месяц в периодических таблицах баз данных
Если в базах данных создаются секции с именами вида ГГГГММ
и/или ГГГГММДД
, то оценить объём данных в гигабайтах за прошлый (полный) месяц в таких таблицах каждой из баз данных можно с помощью следующего запроса к базе данных system
:
SELECT database, SUM(bytes_on_disk) / (1024 * 1024 * 1024)
FROM parts
WHERE partition = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m')
OR partition LIKE CONCAT(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y%m'), '__')
GROUP BY database;