Системные таблицы
Обзор
Системные таблицы ADQM — это таблицы в базе данных system, предоставляющие системную информацию, которая может быть полезна администраторам и разработчикам для управления базами данных, оптимизации запросов, мониторинга производительности системы, анализа и устранения ошибок. Например, из системных таблиц можно получить:
-
данные о состоянии сервера и его внутренних процессах;
-
информацию о сконфигурированных кластерах, существующих базах данных, таблицах, столбцах и кусках данных;
-
собираемые в режиме реального времени метрики сервера ClickHouse и данные о событиях, произошедших в системе;
-
текущие значения конфигурационных параметров;
-
справочную информацию о доступных опциях для построения запросов.
Данные большинства системных таблиц хранятся в оперативной памяти. Эти таблицы автоматически создаются при старте сервера ClickHouse и доступны только для чтения. Их нельзя удалять или изменять, но можно отсоединять.
К системным таблицам ADQM также относятся таблицы для хранения различных типов логов (лог-таблицы с именем *_log), которые начинают заполняться и становятся доступны из базы данных system, если соответствующее логирование активировано. В отличие от других системных таблиц, лог-таблицы основаны на табличном движке MergeTree. Данные этих таблиц хранятся в файловой системе и не удаляются автоматически, что гарантирует доступ к логам для анализа после перезапуска сервера. В статье how-to:logging.adoc#log_tables можно получить подробную информацию о том, какие типы логов можно записывать в системные таблицы, как включить ведение логов и настроить соответствующие лог-таблицы.
Список системных таблиц
Полный список доступных системных таблиц можно посмотреть через запрос:
SHOW TABLES FROM system;
Пример результата выполнения запроса SHOW TABLES FROM system (в списке отсутствуют таблицы *_log, так как логирование в ADQM не было включено):
┌─name───────────────────────────┐
1. │ aggregate_function_combinators │
2. │ asynchronous_inserts │
3. │ asynchronous_loader │
4. │ asynchronous_metrics │
5. │ backups │
6. │ build_options │
7. │ certificates │
8. │ clusters │
9. │ collations │
10. │ columns │
11. │ contributors │
12. │ current_roles │
13. │ dashboards │
14. │ data_skipping_indices │
15. │ data_type_families │
16. │ database_engines │
17. │ databases │
18. │ detached_parts │
19. │ dictionaries │
20. │ disks │
21. │ distributed_ddl_queue │
22. │ distribution_queue │
23. │ dns_cache │
24. │ dropped_tables │
25. │ dropped_tables_parts │
26. │ enabled_roles │
27. │ errors │
28. │ events │
29. │ filesystem_cache │
30. │ formats │
31. │ functions │
32. │ generateSeries │
33. │ generate_series │
34. │ grants │
35. │ graphite_retentions │
36. │ jemalloc_bins │
37. │ kafka_consumers │
38. │ keywords │
39. │ licenses │
40. │ macros │
41. │ merge_tree_settings │
42. │ merges │
43. │ metrics │
44. │ models │
45. │ moves │
46. │ mutations │
47. │ mysql_binlogs │
48. │ named_collections │
49. │ numbers │
50. │ numbers_mt │
51. │ one │
52. │ part_moves_between_shards │
53. │ parts │
54. │ parts_columns │
55. │ privileges │
56. │ processes │
57. │ projection_parts │
58. │ projection_parts_columns │
59. │ query_cache │
60. │ quota_limits │
61. │ quota_usage │
62. │ quotas │
63. │ quotas_usage │
64. │ remote_data_paths │
65. │ replicas │
66. │ replicated_fetches │
67. │ replicated_merge_tree_settings │
68. │ replication_queue │
69. │ rocksdb │
70. │ role_grants │
71. │ roles │
72. │ row_policies │
73. │ s3queue │
74. │ scheduler │
75. │ schema_inference_cache │
76. │ server_settings │
77. │ settings │
78. │ settings_changes │
79. │ settings_profile_elements │
80. │ settings_profiles │
81. │ stack_trace │
82. │ storage_policies │
83. │ symbols │
84. │ table_engines │
85. │ table_functions │
86. │ tables │
87. │ time_zones │
88. │ user_directories │
89. │ user_processes │
90. │ users │
91. │ view_refreshes │
92. │ warnings │
93. │ zeros │
94. │ zeros_mt │
95. │ zookeeper │
96. │ zookeeper_connection │
└────────────────────────────────┘
Ниже системные таблицы ADQM сгруппированы по типу информации, которую они предоставляют.
| Системная таблица | Данные в таблице |
|---|---|
merges |
Информация о слияниях и мутациях кусков данных, которые выполняются в настоящее время для таблиц семейства MergeTree |
mutations |
Информация о ходе выполнения мутаций таблиц семейства MergeTree |
processes |
Информация обо всех запросах, выполняемых в данный момент |
moves |
Информация о текущих перемещениях кусков данных таблиц MergeTree на другие диски или тома хранилища (инициированных, например, условием TTL или запросом |
replicated_fetches |
Информация о выполняемых в данный момент фоновых операциях скачивания кусков данных с реплик |
stack_trace |
Трассировки стека всех серверных потоков (можно использовать для анализа состояния сервера) |
asynchronous_inserts |
Информация об ожидающих асинхронных вставках в очереди |
asynchronous_loader |
Информация и статус по последним асинхронным заданиям (например, для загрузки таблиц) |
query_cache |
Содержимое кеша запросов |
dns_cache |
Содержимое DNS-кеша |
filesystem_cache |
Информация о записях в кеше файловой системы для удаленных объектов |
| Системная таблица | Данные в таблице |
|---|---|
clusters |
Информация о кластерах, описанных в конфигурационном файле |
macros |
Макросы, которые будут использоваться для автоматической подстановки идентификаторов шарда и реплики, соответствующих хосту, при создании реплицируемых таблиц в кластерах (параметры из секции |
replicas |
Информация о реплицируемых таблицах, расположенных на сервере |
replication_queue |
Информация о задачах из очередей репликации, хранящихся в ZooKeeper или ClickHouse Keeper, для таблиц семейства ReplicationMergeTree |
distribution_queue |
Информация о локальных файлах, которые находятся в очереди для отправки на шарды (эти локальные файлы содержат новые куски данных, которые создаются путем вставки новых данных в таблицу Distributed в асинхронном режиме) |
distributed_ddl_queue |
Информация о распределенных DDL-запросах, которые были выполнены в кластере (запросы с |
zookeeper |
Данные из кластера ZooKeeper или ClickHouse Keeper, описанного в конфигурации (можно получить список дочерних элементов для определенного узла или записанное внутри него значение) |
zookeeper_connection |
Текущие подключения к ZooKeeper или ClickHouse Keeper |
Примеры
-
Информация о сконфигурированных логических кластерах:
SELECT cluster, shard_num, replica_num, host_name FROM system.clusters; -
Проверка работоспособности реплики:
SELECT database, table, last_queue_update_exception, zookeeper_exception FROM system.replicas WHERE is_readonly;Если таблица заблокирована на запись (например, потому что в файле config.xml нет секции конфигурации ZooKeeper/ClickHouse Keeper или при переинициализации сессии в ZooKeeper/ClickHouse Keeper произошла ошибка), сообщения об ошибках можно посмотреть в полях
last_queue_update_exceptionиzookeeper_exception. -
Состояние очереди репликации:
SELECT database, table, replica_name, type, num_postponed, postpone_reason, num_tries, last_exception FROM system.replication_queue FORMAT Vertical;
| Системная таблица | Данные в таблице |
|---|---|
databases |
Информация о базах данных, доступных для текущего пользователя |
tables |
Информация обо всех таблицах, о которых "знает" сервер (отключенные через |
columns |
Информация о столбцах таблиц |
parts |
Информация о кусках данных таблиц семейства MergeTree |
parts_columns |
Информация о столбцах всех существующих на данный момент кусков данных таблиц MergeTree |
detached_parts |
Информация об отсоединенных кусках данных таблиц семейства MergeTree |
dropped_tables |
Информация об удаленных из баз данных таблицах, очистка данных которых еще не выполнена полностью |
dropped_tables_parts |
Информация о кусках данных удаленных таблиц MergeTree, перечисленных в |
projection_parts |
Информация о существующих на данный момент кусках данных, созданных для всех проекций всех таблиц в кластере (это копии родительских кусков данных, в которых данные агрегированы или отсортированы в другом порядке). Эта таблица схожа с |
projection_parts_columns |
Информация о столбцах всех существующих на данный момент кусков данных проекций таблиц MergeTree |
data_skipping_indices |
Информация о существующих индексах пропуска данных во всех таблицах |
dictionaries |
Информация о словарях |
named_collections |
Сконфигурированные именованные коллекции (named collections) — реквизиты для подключения к внешним источникам при использовании словарей, таблиц, табличных функций |
Примеры
-
Список столбцов таблицы с типами данных:
SELECT name, type FROM system.columns WHERE table = '<table_name>'; -
Информация о кусках данных таблицы:
SELECT name, active, rows, data_compressed_bytes, data_uncompressed_bytes FROM system.parts WHERE table = '<table_name>' FORMAT Vertical;где
<table_name>— имя таблицы.
| Системная таблица | Данные в таблице |
|---|---|
users |
Информация об аккаунтах пользователей, настроенных на сервере |
grants |
Привилегии, предоставленные пользователям (список доступных для назначения привилегий можно посмотреть в системной таблице |
roles, role_grants, current_roles, enabled_roles |
Информация о ролях и их назначениях пользователям |
row_policies |
Информация о политиках доступа к строкам |
settings_profiles |
Сконфигурированные профили настроек |
settings_profile_elements |
Описание содержимого профиля настроек (настройки и их значения; ограничения; роли и пользователи, к которым применяются настройки; родительские профили настроек) |
quota_limits, quota_usage, quotas, quotas_usage |
Информация о квотах и их использовании |
| Системная таблица | Данные в таблице |
|---|---|
disks |
Информация о сконфигурированных дисках |
storage_policies |
Информация о сконфигурированных политиках хранения |
Примеры
-
Информация о дисках хранилища данных:
SELECT name, path, formatReadableSize(free_space) AS free, formatReadableSize(total_space) AS total, formatReadableSize(keep_free_space) AS reserved FROM system.disks; -
Информация о сконфигурированных в ADQM политиках хранения:
SELECT policy_name, volume_name, disks FROM system.storage_policies;
| Системная таблица | Данные в таблице |
|---|---|
metrics |
Метрики, которые рассчитываются в каждый момент времени и имеют актуальные текущие значения (см. Metrics в разделе Типы метрик статьи Метрики мониторинга кластера ADQM) |
events |
Информация о количестве событий, произошедших в системе (см. ProfileEvents в разделе Типы метрик статьи Метрики мониторинга кластера ADQM) |
asynchronous_metrics |
Метрики, которые периодически вычисляются в фоновом режиме (см. AsynchronousMetrics в разделе Типы метрик статьи Метрики мониторинга кластера ADQM) |
user_processes |
Информация об использовании памяти процессами, которые запустил пользователь, и событиях ProfileEvents для пользователя |
errors |
Информация обо всех произошедших ошибках (для каждого типа ошибки выводится код и сообщение об ошибке, общее количество срабатываний и время последнего срабатывания, трассировка стека для отладки) |
warnings |
Предупреждающие сообщения о конфигурации сервера (если таблица не пустая, содержащиеся в ней предупреждающие сообщения будут выводиться при подключении к серверу ClickHouse через clickhouse-client) |
backups |
Информация обо всех операциях |
jemalloc_bins |
Информация о распределении памяти, выполненном с помощью jemalloc в классах разных размеров (bins), агрегированная со всех арен (arenas). Эта статистика может быть не совсем точной из-за локального кеширования потоков в jemalloc |
Примеры
-
Информация об ошибках:
SELECT name, code, value, last_error_time FROM system.errors; -
Значение конкретной метрики (например,
Query— количество выполняемых запросов):SELECT * FROM system.metrics WHERE metric = 'Query';
| Системная таблица | Данные в таблице |
|---|---|
settings |
Настройки на уровне пользователя (которые можно изменять в рамках отдельного запроса или сессии) |
server_settings |
Глобальные настройки сервера, указанные в config.xml |
merge_tree_settings |
Список всех настроек табличного движка MergeTree, их текущие значения и значения по умолчанию, а также описания. Эти параметры можно настраивать при создании или модификации таблицы, используя выражение |
replicated_merge_tree_settings |
Список всех настроек табличного движка ReplicatedMergeTree, их текущие значения и значения по умолчанию, а также описания. Эти параметры можно настраивать при создании или модификации таблицы, используя выражение |
settings_changes |
Информация об изменениях настроек в различных версиях ClickHouse |
build_options |
Параметры сборки сервера ClickHouse |
Примеры
Настройки, значения по умолчанию которых были изменены (например, при устранении неполадок может быть полезно проанализировать, не могло ли изменение каких-либо настроек повлиять на поведение системы):
SELECT name, value FROM system.settings WHERE changed;
SELECT name, value FROM system.server_settings WHERE changed;
| Системная таблица | Данные в таблице |
|---|---|
mysql_binlogs |
Список активных бинарных журналов обновлений MySQL (файлов binlog) для баз данных MaterializedMySQL |
kafka_consumers |
Информация о потребителях Kafka (таблицах на базе движка Kafka) |
rocksdb |
Статистика RocksDB при настроенной в ADQM интеграции через табличный движок EmbeddedRocksDB |
graphite_retentions |
Информация о параметрах |
s3queue |
Состояние S3Queue в памяти: какие файлы обрабатываются в данный момент, какие файлы обработаны или обработать не удалось |
ADQM предоставляет набор таблиц, которые могут быть полезны для выполнения тестирования и генерации последовательных значений.
| Системная таблица | Данные в таблице |
|---|---|
numbers |
Таблица содержит один столбец |
numbers_mt |
Таблица, аналогичная |
zeros |
Таблица содержит один столбец |
zeros_mt |
Таблица, аналогичная |
generate_series, generateSeries |
Таблица содержит один столбец |
one |
Таблица содержит значение |
| Системная таблица | Данные в таблице |
|---|---|
functions |
Поддерживаемые функции (обычные и агрегатные) |
aggregate_function_combinators |
Комбинаторы для агрегатных функций |
table_functions |
Поддерживаемые табличные функции |
database_engines |
Поддерживаемые движки баз данных |
table_engines |
Поддерживаемые табличные движки и их функциональные возможности |
data_type_families |
Поддерживаемые типы данных |
formats |
Поддерживаемые форматы входных и выходных данных |
privileges |
Поддерживаемые типы привилегий, которые можно предоставлять пользователям |
keywords |
Ключевые слова, которые можно использовать в синтаксисе запросов |
time_zones |
Часовые пояса, которые поддерживаются сервером ClickHouse |
collations |
Поддерживаемые значения collation (сравнение), которые можно использовать в запросах с |
Пример
Список доступных агрегатных функций:
SELECT name FROM system.functions WHERE is_aggregate = 1;