Системные таблицы
Обзор
Системные таблицы ADQM — это таблицы в базе данных system
, предоставляющие системную информацию, которая может быть полезна администраторам и разработчикам для управления базами данных, оптимизации запросов, мониторинга производительности системы, анализа и устранения ошибок. Например, из системных таблиц можно получить:
-
данные о состоянии сервера и его внутренних процессах;
-
информацию о сконфигурированных кластерах, существующих базах данных, таблицах, столбцах и кусках данных;
-
собираемые в режиме реального времени метрики сервера ClickHouse и данные о событиях, произошедших в системе;
-
текущие значения конфигурационных параметров;
-
справочную информацию о доступных опциях для построения запросов.
Данные большинства системных таблиц хранятся в оперативной памяти. Эти таблицы автоматически создаются при старте сервера ClickHouse и доступны только для чтения. Их нельзя удалять или изменять, но можно отсоединять.
К системным таблицам ADQM также относятся таблицы для хранения различных типов логов (лог-таблицы с именем *_log
), которые начинают заполняться и становятся доступны из базы данных system
, если соответствующее логирование активировано. В отличие от других системных таблиц, лог-таблицы основаны на табличном движке MergeTree. Данные этих таблиц хранятся в файловой системе и не удаляются автоматически, что гарантирует доступ к логам для анализа после перезапуска сервера. В статье Логирование можно получить подробную информацию о том, какие типы логов можно записывать в системные таблицы, как включить ведение логов и настроить соответствующие лог-таблицы.
Список системных таблиц
Полный список доступных системных таблиц можно посмотреть через запрос:
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;