Шпаргалка по ClickHouse
Содержание
Просмотр текущих запросов
Посмотреть текущие выполняемые запросы, отсортировав их по убыванию времени выполнения и количества участвующих в запросе строк, можно при помощи следующего запроса в базе данных system
:
SELECT elapsed,
total_rows_approx,
client_name,
client_hostname,
user,
query
FROM processes
ORDER BY elapsed, total_rows_approx DESC;
Просмотр количества таблиц в базах данных
Для просмотра количества таблиц в каждой из баз данных, имеющихся на сервере, кроме системых, можно воспользоваться таким запросом к базе данных 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
ORDER BY database;
Просмотр объёмов таблиц
Для просмотра объёма в гигабайтах каждой из таблиц в базах данных, имеющихся на сервере, кроме системых, можно воспользоваться таким запросом к базе данных system
:
SELECT database, table, SUM(bytes_on_disk) / (1024 * 1024 * 1024)
FROM parts
GROUP BY database, table
ORDER BY database, table;
Просмотр объёма данных за месяц в периодических таблицах баз данных
Если в базах данных создаются секции с именами вида ГГГГММ
и/или ГГГГММДД
, то оценить объём данных в гигабайтах за прошлый (полный) месяц в таких таблицах каждой из баз данных можно с помощью следующего запроса к базе данных 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;