System tables

This commit is contained in:
Andrey Dudin 2017-04-26 20:37:55 +03:00 committed by alexey-milovidov
parent be88172cc7
commit dd617d2b10
18 changed files with 182 additions and 191 deletions

View File

@ -1,11 +1,11 @@
Системные таблицы
System tables
==========
Системные таблицы используются для реализации части функциональности системы, а также предоставляют доступ к информации о работе системы.
Вы не можете удалить системную таблицу (хотя можете сделать DETACH).
Для системных таблиц нет файлов с данными на диске и файлов с метаданными. Сервер создаёт все системные таблицы при старте.
В системные таблицы нельзя записывать данные - можно только читать.
Системные таблицы расположены в базе данных system.
System tables are used for implementing part of the system's functionality, and for providing access to information about how the system is working.
You can't delete a system table (but you can perform DETACH).
System tables don't have files with data on the disk or files with metadata. The server creates all the system tables when it starts.
System tables are read-only.
System tables are located in the 'system' database.
.. toctree::
:glob:

View File

@ -1,7 +1,5 @@
system.asynchronous_metrics
---------------------------
Содержат метрики, используемые для профилирования и мониторинга.
Обычно отражают количество событий, происходящих в данный момент в системе, или ресурсов, суммарно потребляемых системой.
Пример: количество запросов типа SELECT, исполняемых в текущий момент; количество потребляемой памяти.
``system.asynchronous_metrics`` и ``system.metrics`` отличаются набором и способом вычисления метрик.
Like system.events, but show info about currently executing events or consuming resources.
Example: The number of currently executing SELECT queries; memory consumption of the system.

View File

@ -1,14 +1,14 @@
system.clusters
---------------
Содержит информацию о доступных в конфигурационном файле кластерах и серверах, которые в них входят.
Столбцы:
Contains information about clusters available in the config file and the servers in them.
Columns:
::
cluster String - имя кластера
shard_num UInt32 - номер шарда в кластере, начиная с 1
shard_weight UInt32 - относительный вес шарда при записи данных
replica_num UInt32 - номер реплики в шарде, начиная с 1
host_name String - имя хоста, как прописано в конфиге
host_address String - IP-адрес хоста, полученный из DNS
port UInt16 - порт, на который обращаться для соединения с сервером
user String - имя пользователя, которого использовать для соединения с сервером
cluster String - Cluster name.
shard_num UInt32 - Number of a shard in the cluster, starting from 1.
shard_weight UInt32 - Relative weight of a shard when writing data.
replica_num UInt32 - Number of a replica in the shard, starting from 1.
host_name String - Host name as specified in the config.
host_address String - Host's IP address obtained from DNS.
port UInt16 - The port used to access the server.
user String - The username to use for connecting to the server.

View File

@ -1,12 +1,13 @@
system.columns
--------------
Содержит информацию о столбцах всех таблиц.
С помощью этой таблицы можно получить информацию аналогично запросу ``DESCRIBE TABLE``, но для многих таблиц сразу.
Contains information about the columns in all tables.
You can use this table to get information similar to ``DESCRIBE TABLE``, but for multiple tables at once.
::
database String - имя базы данных, в которой находится таблица
table String - имя таблицы
name String - имя столбца
type String - тип столбца
default_type String - тип (DEFAULT, MATERIALIZED, ALIAS) выражения для значения по умолчанию, или пустая строка, если оно не описано
default_expression String - выражение для значения по умолчанию, или пустая строка, если оно не описано
database String - Name of the database the table is located in.
table String - Table name.
name String - Column name.
type String - Column type.
default_type String - Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined.
default_expression String - Expression for the default value, or an empty string if it is not defined.

View File

@ -1,6 +1,6 @@
system.databases
----------------
Таблица содержит один столбец name типа String - имя базы данных.
Для каждой базы данных, о которой знает сервер, будет присутствовать соответствующая запись в таблице.
Эта системная таблица используется для реализации запроса ``SHOW DATABASES``.
This table contains a single String column called 'name' - the name of a database.
Each database that the server knows about has a corresponding entry in the table.
This system table is used for implementing the ``SHOW DATABASES`` query.

View File

@ -1,22 +1,22 @@
system.dictionaries
-------------------
Содержит информацию о внешних словарях.
Contains information about external dictionaries.
Столбцы:
Columns:
::
name String - имя словаря
type String - тип словаря: Flat, Hashed, Cache
origin String - путь к конфигурационному файлу, в котором описан словарь
attribute.names Array(String) - массив имён атрибутов, предоставляемых словарём
attribute.types Array(String) - соответствующий массив типов атрибутов, предоставляемых словарём
has_hierarchy UInt8 - является ли словарь иерархическим
bytes_allocated UInt64 - количество оперативной памяти, которое использует словарь
hit_rate Float64 - для cache-словарей - доля использований, для которых значение было в кэше
element_count UInt64 - количество хранящихся в словаре элементов
load_factor Float64 - доля заполненности словаря (для hashed словаря - доля заполнения хэш-таблицы)
creation_time DateTime - время создания или последней успешной перезагрузки словаря
last_exception String - текст ошибки, возникшей при создании или перезагрузке словаря, если словарь не удалось создать
source String - текст, описывающий источник данных для словаря
name String - Dictionary name.
type String - Dictionary type: Flat, Hashed, Cache.
origin String - Path to the config file where the dictionary is described.
attribute.names Array(String) - Array of attribute names provided by the dictionary.
attribute.types Array(String) - Corresponding array of attribute types provided by the dictionary.
has_hierarchy UInt8 - Whether the dictionary is hierarchical.
bytes_allocated UInt64 - The amount of RAM used by the dictionary.
hit_rate Float64 - For cache dictionaries, the percent of usage for which the value was in the cache.
element_count UInt64 - The number of items stored in the dictionary.
load_factor Float64 - The filled percentage of the dictionary (for a hashed dictionary, it is the filled percentage of the hash table).
creation_time DateTime - Time spent for the creation or last successful reload of the dictionary.
last_exception String - Text of an error that occurred when creating or reloading the dictionary, if the dictionary couldn't be created.
source String - Text describing the data source for the dictionary.
Заметим, что количество оперативной памяти, которое использует словарь, не является пропорциональным количеству элементов, хранящихся в словаре. Так, для flat и cached словарей, все ячейки памяти выделяются заранее, независимо от реальной заполненности словаря.
Note that the amount of memory used by the dictionary is not proportional to the number of items stored in it. So for flat and cached dictionaries, all the memory cells are pre-assigned, regardless of how full the dictionary actually is.

View File

@ -1,6 +1,6 @@
system.events
-------------
Содержит информацию о количестве произошедших в системе событий, для профилирования и мониторинга.
Пример: количество обработанных запросов типа SELECT.
Столбцы: event String - имя события, value UInt64 - количество.
Contains information about the number of events that have occurred in the system. This is used for profiling and monitoring purposes.
Example: The number of processed SELECT queries.
Columns: 'event String' - the event name, and 'value UInt64' - the quantity.

View File

@ -1,9 +1,9 @@
system.functions
----------------
Содержит информацию об обычных и агрегатных функциях.
Contains information about normal and aggregate functions.
Columns:
Столбцы:
::
name String - имя функции
is_aggregate UInt8 - является ли функция агрегатной
name String - Function name.
is_aggregate UInt8 - Whether it is an aggregate function.

View File

@ -1,18 +1,18 @@
system.merges
-------------
Содержит информацию о производящихся прямо сейчас слияниях для таблиц семейства MergeTree.
Contains information about merges currently in process for tables in the MergeTree family.
Столбцы:
Columns:
::
database String - имя базы данных, в которой находится таблица
table String - имя таблицы
elapsed Float64 - время в секундах, прошедшее от начала выполнения слияния
progress Float64 - доля выполненной работы от 0 до 1
num_parts UInt64 - количество сливаемых кусков
result_part_name String - имя куска, который будет образован в результате слияния
total_size_bytes_compressed UInt64 - суммарный размер сжатых данных сливаемых кусков
total_size_marks UInt64 - суммарное количество засечек в сливаемых кусках
bytes_read_uncompressed UInt64 - количество прочитанных байт, разжатых
rows_read UInt64 - количество прочитанных строк
bytes_written_uncompressed UInt64 - количество записанных байт, несжатых
rows_written UInt64 - количество записанных строк
database String - Name of the database the table is located in.
table String - Name of the table.
elapsed Float64 - Time in seconds since the merge started.
progress Float64 - Percent of progress made, from 0 to 1.
num_parts UInt64 - Number of parts to merge.
result_part_name String - Name of the part that will be formed as the result of the merge.
total_size_bytes_compressed UInt64 - Total size of compressed data in the parts being merged.
total_size_marks UInt64 - Total number of marks in the parts being merged.
bytes_read_uncompressed UInt64 - Amount of bytes read, decompressed.
rows_read UInt64 - Number of rows read.
bytes_written_uncompressed UInt64 - Amount of bytes written, uncompressed.
rows_written UInt64 - Number of rows written.

View File

@ -1,6 +1,6 @@
system.numbers
--------------
Таблица содержит один столбец с именем number типа UInt64, содержащим почти все натуральные числа, начиная с нуля.
Эту таблицу можно использовать для тестов, а также если вам нужно сделать перебор.
Чтения из этой таблицы не распараллеливаются.
This table contains a single UInt64 column named 'number' that contains almost all the natural numbers starting from zero.
You can use this table for tests, or if you need to do a brute force search.
Reads from this table are not parallelized.

View File

@ -1,5 +1,5 @@
system.numbers_mt
-----------------
То же самое, что и system.numbers, но чтение распараллеливается. Числа могут возвращаться в произвольном порядке.
Используется для тестов.
The same as 'system.numbers' but reads are parallelized. The numbers can be returned in any order.
Used for tests.

View File

@ -1,6 +1,6 @@
system.one
----------
Таблица содержит одну строку с одним столбцом dummy типа UInt8, содержащим значение 0.
Эта таблица используется, если в SELECT запросе не указана секция FROM.
То есть, это - аналог таблицы DUAL, которую можно найти в других СУБД.
This table contains a single row with a single 'dummy' UInt8 column containing the value 0.
This table is used if a SELECT query doesn't specify the FROM clause.
This is similar to the DUAL table found in other DBMSs.

View File

@ -1,18 +1,18 @@
system.parts
------------
Содержит информацию о кусках таблиц семейства MergeTree.
Contains information about parts of a table in the MergeTree family.
Столбцы:
Columns:
::
database String - имя базы данных, в которой находится таблица, к которой относится кусок
table String - имя таблицы, к которой относится кусок
engine String - имя движка таблицы, без параметров
partition String - имя партиции - имеет формат YYYYMM
name String - имя куска
replicated UInt8 - относится ли кусок к реплицируемым данным
active UInt8 - используется ли кусок в таблице, или же он уже не нужен и скоро будет удалён - неактивные куски остаются после слияния
marks UInt64 - количество засечек - умножьте на гранулированность индекса (обычно 8192), чтобы получить примерное количество строк в куске
bytes UInt64 - количество байт в сжатом виде
modification_time DateTime - время модификации директории с куском - обычно соответствует времени создания куска
remove_time DateTime - только для неактивных кусков - время, когда кусок стал неактивным
refcount UInt32 - количество мест, в котором кусок используется - значение больше 2 говорит о том, что этот кусок участвует в запросах или в слияниях
database String - Name of the database where the table that this part belongs to is located.
table String - Name of the table that this part belongs to.
engine String - Name of the table engine, without parameters.
partition String - Name of the partition, in the format YYYYMM.
name String - Name of the part.
replicated UInt8 - Whether the part belongs to replicated data.
active UInt8 - Whether the part is used in a table, or is no longer needed and will be deleted soon. Inactive parts remain after merging.
marks UInt64 - Number of marks - multiply by the index granularity (usually 8192) to get the approximate number of rows in the part.
bytes UInt64 - Number of bytes when compressed.
modification_time DateTime - Time the directory with the part was modified. Usually corresponds to the part's creation time.
remove_time DateTime - For inactive parts only - the time when the part became inactive.
refcount UInt32 - The number of places where the part is used. A value greater than 2 indicates that this part participates in queries or merges.

View File

@ -1,23 +1,23 @@
system.processes
----------------
Эта системная таблица используется для реализации запроса ``SHOW PROCESSLIST``.
Столбцы:
This system table is used for implementing the ``SHOW PROCESSLIST`` query.
Columns:
::
user String - имя пользователя, который задал запрос. При распределённой обработке запроса, относится к пользователю, с помощью которого сервер-инициатор запроса отправил запрос на данный сервер, а не к имени пользователя, который задал распределённый запрос на сервер-инициатор запроса.
address String - IP-адрес, с которого задан запрос. При распределённой обработке запроса, аналогично.
elapsed Float64 - время в секундах, прошедшее от начала выполнения запроса.
rows_read UInt64 - количество прочитанных из таблиц строк. При распределённой обработке запроса, на сервере-инициаторе запроса, представляет собой сумму по всем удалённым серверам.
bytes_read UInt64 - количество прочитанных из таблиц байт, в несжатом виде. При распределённой обработке запроса, на сервере-инициаторе запроса, представляет собой сумму по всем удалённым серверам.
total_rows_approx UInt64 - приблизительная оценка общего количества строк, которые должны быть прочитаны. При распределённой обработке запроса, на сервере-инициаторе запроса, представляет собой сумму по всем удалённым серверам. Может обновляться в процессе выполнения запроса, когда становятся известны новые источники для обработки.
memory_usage UInt64 - потребление памяти запросом. Может не учитывать некоторые виды выделенной памяти.
query String - текст запроса. В случае INSERT - без данных для INSERT-а.
query_id String - идентификатор запроса, если был задан.
user String - Name of the user who made the request. For distributed query processing, this is the user who helped the requestor server send the query to this server, not the user who made the distributed request on the requestor server.
address String - The IP address the request was made from. The same for distributed processing.
elapsed Float64 - The time in seconds since request execution started.
rows_read UInt64 - The number of rows read from the table. For distributed processing, on the requestor server, this is the total for all remote servers.
bytes_read UInt64 - The number of uncompressed bytes read from the table. For distributed processing, on the requestor server, this is the total for all remote servers.
total_rows_approx UInt64 - The approximation of the total number of rows that should be read. For distributed processing, on the requestor server, this is the total for all remote servers. It can be updated during request processing, when new sources to process become known.
memory_usage UInt64 - How much memory the request uses. It might not include some types of dedicated memory.
query String - The query text. For INSERT, it doesn't include the data to insert.
query_id String - Query ID, if defined.

View File

@ -1,10 +1,9 @@
system.replicas
---------------
Содержит информацию и статус для реплицируемых таблиц, расположенных на локальном сервере.
Эту таблицу можно использовать для мониторинга. Таблица содержит по строчке для каждой Replicated*-таблицы.
Contains information and status for replicated tables residing on the local server. This table can be used for monitoring. The table contains a row for every Replicated* table.
Пример:
Example:
.. code-block:: sql
@ -37,56 +36,50 @@ system.replicas
Столбцы:
::
database: имя БД
table: имя таблицы
engine: имя движка таблицы
is_leader: является ли реплика лидером
database: Database name.
table: Table name.
engine: Table engine name.
В один момент времени, не более одной из реплик является лидером. Лидер отвечает за выбор фоновых слияний, которые следует произвести.
Замечу, что запись можно осуществлять на любую реплику (доступную и имеющую сессию в ZK), независимо от лидерства.
is_readonly: находится ли реплика в режиме "только для чтения"
Этот режим включается, если в конфиге нет секции с ZK; если при переинициализации сессии в ZK произошла неизвестная ошибка; во время переинициализации сессии с ZK.
is_session_expired: истекла ли сессия с ZK.
В основном, то же самое, что и is_readonly.
future_parts: количество кусков с данными, которые появятся в результате INSERT-ов или слияний, которых ещё предстоит сделать
parts_to_check: количество кусков с данными в очереди на проверку
Кусок помещается в очередь на проверку, если есть подозрение, что он может быть битым.
zookeeper_path: путь к данным таблицы в ZK
replica_name: имя реплики в ZK; разные реплики одной таблицы имеют разное имя
replica_path: путь к данным реплики в ZK. То же самое, что конкатенация zookeeper_path/replicas/replica_path.
columns_version: номер версии структуры таблицы
Обозначает, сколько раз был сделан ALTER. Если на репликах разные версии, значит некоторые реплики сделали ещё не все ALTER-ы.
queue_size: размер очереди действий, которых предстоит сделать
К действиям относятся вставки блоков данных, слияния, и некоторые другие действия.
Как правило, совпадает с future_parts.
inserts_in_queue: количество вставок блоков данных, которых предстоит сделать
Обычно вставки должны быстро реплицироваться. Если величина большая - значит что-то не так.
merges_in_queue: количество слияний, которых предстоит сделать
Бывают длинные слияния - то есть, это значение может быть больше нуля продолжительное время.
is_leader: Whether the replica is the leader.
Only one replica can be the leader at a time. The leader is responsible for selecting background merges to perform.
Note that writes can be performed to any replica that is available and has a session in ZK, regardless of whether it is a leader.
Следующие 4 столбца имеют ненулевое значение только если активна сессия с ZK.
log_max_index: максимальный номер записи в общем логе действий
log_pointer: максимальный номер записи из общего лога действий, которую реплика скопировала в свою очередь для выполнения, плюс единица
Если log_pointer сильно меньше log_max_index, значит что-то не так.
total_replicas: общее число известных реплик этой таблицы
active_replicas: число реплик этой таблицы, имеющих сессию в ZK; то есть, число работающих реплик
is_readonly: Whether the replica is in read-only mode.
This mode is turned on if the config doesn't have sections with ZK, if an unknown error occurred when reinitializing sessions in ZK, and during session reinitialization in ZK.
Если запрашивать все столбцы, то таблица может работать слегка медленно, так как на каждую строчку делается несколько чтений из ZK.
Если не запрашивать последние 4 столбца (log_max_index, log_pointer, total_replicas, active_replicas), то таблица работает быстро.
is_session_expired: Whether the session with ZK has expired.
Basically the same as 'is_readonly'.
Например, так можно проверить, что всё хорошо:
future_parts: The number of data parts that will appear as the result of INSERTs or merges that haven't been done yet.
parts_to_check: The number of data parts in the queue for verification.
A part is put in the verification queue if there is suspicion that it might be damaged.
zookeeper_path: Path to table data in ZK.
replica_name: Replica name in ZK. Different replicas of the same table have different names.
replica_path: Path to replica data in ZK. The same as concatenating 'zookeeper_path/replicas/replica_path'.
columns_version: Version number of the table structure. Indicates how many times ALTER was performed. If replicas have different versions, it means some replicas haven't made all of the ALTERs yet.
queue_size: Size of the queue for operations waiting to be performed. Operations include inserting blocks of data, merges, and certain other actions. It usually coincides with 'future_parts'.
inserts_in_queue: Number of inserts of blocks of data that need to be made. Insertions are usually replicated fairly quickly. If this number is large, it means something is wrong.
merges_in_queue: The number of merges waiting to be made. Sometimes merges are lengthy, so this value may be greater than one for a long time.
The next 4 columns have a non-zero value only where there is an active session with ZK.
log_max_index: Maximum entry number in the log of general activity.
log_pointer: Maximum entry number from the log of general activity that the replica copied to its queue for execution, plus one.
If log_pointer is much smaller than log_max_index, something is wrong.
total_replicas: The total number of known replicas of this table.
active_replicas: The number of replicas of this table that have a session in ZK (i.e., the number of functioning replicas).к
If you request all the columns, the table may work a bit slowly, since several reads from ZK are made for each row.
If you don't request the last 4 columns (log_max_index, log_pointer, total_replicas, active_replicas), the table works quickly.
For example, you can check that everything is working correctly like this:
.. code-block:: sql
@ -118,4 +111,4 @@ system.replicas
OR total_replicas < 2
OR active_replicas < total_replicas
Если этот запрос ничего не возвращает - значит всё хорошо.
If this query doesn't return anything, it means that everything is fine.

View File

@ -1,16 +1,15 @@
system.settings
---------------
Содержит информацию о настройках, используемых в данный момент.
То есть, используемых для выполнения запроса, с помощью которого вы читаете из таблицы system.settings.
Contains information about settings that are currently in use (i.e. used for executing the query you are using to read from the system.settings table).
Столбцы:
Columns:
::
name String - имя настройки
value String - значение настройки
changed UInt8 - была ли настройка явно задана в конфиге или изменена явным образом
name String - Setting name.
value String - Setting value.
changed UInt8 - Whether the setting was explicitly defined in the config or explicitly changed.
Пример:
Example:
.. code-block:: sql

View File

@ -1,7 +1,7 @@
system.tables
-------------
Таблица содержит столбцы database, name, engine типа String и столбец metadata_modification_time типа DateTime.
Для каждой таблицы, о которой знает сервер, будет присутствовать соответствующая запись в таблице system.tables.
Недоработка: Движки таблиц (engine) указаны без параметров.
Эта системная таблица используется для реализации запросов SHOW TABLES.
This table contains the String columns 'database', 'name', and 'engine' and DateTime column metadata_modification_time.
Each table that the server knows about is entered in the 'system.tables' table.
There is an issue: table engines are specified without parameters.
This system table is used for implementing SHOW TABLES queries.

View File

@ -1,31 +1,31 @@
system.zookeeper
----------------
Позволяет читать данные из ZooKeeper кластера, описанного в конфигурации.
В запросе обязательно в секции WHERE должно присутствовать условие на равенство path - путь в ZooKeeper, для детей которого вы хотите получить данные.
Allows reading data from the ZooKeeper cluster defined in the config.
The query must have a 'path' equality condition in the WHERE clause. This is the path in ZooKeeper for the children that you want to get data for.
Запрос ``SELECT * FROM system.zookeeper WHERE path = '/clickhouse'`` выведет данные по всем детям узла ``/clickhouse``.
Чтобы вывести данные по всем узлам в корне, напишите path = '/'.
Если узла, указанного в path не существует, то будет брошено исключение.
Query SELECT * FROM system.zookeeper WHERE path = '/clickhouse' outputs data for all children on the /clickhouse node.
To output data for all root nodes, write path = '/'.
If the path specified in 'path' doesn't exist, an exception will be thrown.
Столбцы:
Columns:
::
name String - имя узла
path String - путь к узлу
value String - значение узла
dataLength Int32 - размер значения
numChildren Int32 - количество детей
czxid Int64 - идентификатор транзакции, в которой узел был создан
mzxid Int64 - идентификатор транзакции, в которой узел был последний раз изменён
pzxid Int64 - идентификатор транзакции, последний раз удаливший или добавивший детей
ctime DateTime - время создания узла
mtime DateTime - время последней модификации узла
version Int32 - версия узла - количество раз, когда узел был изменён
cversion Int32 - количество добавлений или удалений детей
aversion Int32 - количество изменений ACL
ephemeralOwner Int64 - для эфемерных узлов - идентификатор сессии, которая владеет этим узлом
name String - Name of the node.
path String - Path to the node.
value String - Value of the node.
dataLength Int32 - Size of the value.
numChildren Int32 - Number of children.
czxid Int64 - ID of the transaction that created the node.
mzxid Int64 - ID of the transaction that last changed the node.
pzxid Int64 - ID of the transaction that last added or removed children.
ctime DateTime - Time of node creation.
mtime DateTime - Time of the last node modification.
version Int32 - Node version - the number of times the node was changed.
cversion Int32 - Number of added or removed children.
aversion Int32 - Number of changes to ACL.
ephemeralOwner Int64 - For ephemeral nodes, the ID of the session that owns this node.
Пример:
Example:
.. code-block:: sql