Les tables système sont utilisées pour implémenter une partie des fonctionnalités du système et pour fournir un accès à des informations sur le fonctionnement du système.
Vous ne pouvez pas supprimer une table système (mais vous pouvez effectuer un détachement).
Les tables système n'ont pas de fichiers avec des données sur le disque ou de fichiers avec des métadonnées. Le serveur crée toutes les tables système au démarrage.
Les tables système sont en lecture seule.
Ils sont situés dans la ‘system’ la base de données.
- [système.événement](#system_tables-events) — Contains a number of events that have occurred.
- [système.metric\_log](#system_tables-metric_log) — Contains a history of metrics values from tables `system.metrics` и `system.events`.
## système.cluster {#system-clusters}
Contient des informations sur les clusters disponibles dans le fichier de configuration et les serveurs en eux.
Colonne:
-`cluster` (String) — The cluster name.
-`shard_num` (UInt32) — The shard number in the cluster, starting from 1.
-`shard_weight` (UInt32) — The relative weight of the shard when writing data.
-`replica_num` (UInt32) — The replica number in the shard, starting from 1.
-`host_name` (String) — The host name, as specified in the config.
-`host_address` (String) — The host IP address obtained from DNS.
-`port` (UInt16) — The port to use for connecting to the server.
-`user` (String) — The name of the user for connecting to the server.
-`errors_count` (UInt32) - nombre de fois que cet hôte n'a pas atteint le réplica.
-`estimated_recovery_time` (UInt32) - secondes restantes jusqu'à ce que le nombre d'erreurs de réplique soit remis à zéro et qu'il soit considéré comme revenu à la normale.
Veuillez noter que `errors_count` est mise à jour une fois par requête à la grappe, mais `estimated_recovery_time` est recalculé sur-demande. Il pourrait donc y avoir un cas de non-zéro `errors_count` et zéro `estimated_recovery_time`, cette requête suivante sera nulle `errors_count` et essayez d'utiliser des répliques comme si elle ne comporte pas d'erreurs.
Vous pouvez utiliser ce tableau pour obtenir des informations similaires à l' [DESCRIBE TABLE](../sql_reference/statements/misc.md#misc-describe-table) requête, mais pour plusieurs tables à la fois.
Le `system.columns` le tableau contient les colonnes suivantes (la colonne type est indiqué entre parenthèses):
-`database` (String) — Database name.
-`table` (String) — Table name.
-`name` (String) — Column name.
-`type` (String) — Column type.
-`default_kind` (String) — Expression type (`DEFAULT`, `MATERIALIZED`, `ALIAS`) pour la valeur par défaut, ou une chaîne vide si elle n'est pas définie.
-`default_expression` (String) — Expression for the default value, or an empty string if it is not defined.
-`data_compressed_bytes` (UInt64) — The size of compressed data, in bytes.
-`data_uncompressed_bytes` (UInt64) — The size of decompressed data, in bytes.
-`marks_bytes` (UInt64) — The size of marks, in bytes.
-`comment` (String) — Comment on the column, or an empty string if it is not defined.
-`is_in_partition_key` (UInt8) — Flag that indicates whether the column is in the partition expression.
-`is_in_sorting_key` (UInt8) — Flag that indicates whether the column is in the sorting key expression.
-`is_in_primary_key` (UInt8) — Flag that indicates whether the column is in the primary key expression.
-`is_in_sampling_key` (UInt8) — Flag that indicates whether the column is in the sampling key expression.
## système.contributeur {#system-contributors}
Contient des informations sur les donateurs. Tous les constributors dans un ordre aléatoire. L'ordre est aléatoire au moment de l'exécution de la requête.
Colonne:
-`name` (String) — Contributor (author) name from git log.
**Exemple**
``` sql
SELECT * FROM system.contributors LIMIT 10
```
``` text
┌─name─────────────┐
│ Olga Khvostikova │
│ Max Vetrov │
│ LiuYangkuan │
│ svladykin │
│ zamulla │
│ Šimon Podlipský │
│ BayoNet │
│ Ilya Khomutov │
│ Amy Krishnevsky │
│ Loud_Scream │
└──────────────────┘
```
Trouver vous-même dans le tableau, utilisez une requête:
``` sql
SELECT * FROM system.contributors WHERE name='Olga Khvostikova'
```
``` text
┌─name─────────────┐
│ Olga Khvostikova │
└──────────────────┘
```
## système.les bases de données {#system-databases}
Cette table contient une seule colonne de chaîne appelée ‘name’– the name of a database.
Chaque base de données que le serveur connaît a une entrée correspondante dans la table.
Cette table système est utilisée pour implémenter `SHOW DATABASES` requête.
Contient des informations sur les pièces détachées de [MergeTree](../engines/table_engines/mergetree_family/mergetree.md) table. Le `reason` colonne spécifie pourquoi la pièce a été détachée. Pour les pièces détachées par l'utilisateur, la raison est vide. De telles pièces peuvent être attachées avec [ALTER TABLE ATTACH PARTITION\|PART](../query_language/query_language/alter/#alter_attach-partition) commande. Pour la description des autres colonnes, voir [système.partie](#system_tables-parts). Si le nom de pièce n'est pas valide, les valeurs de certaines colonnes peuvent être `NULL`. Ces pièces peuvent être supprimés avec [ALTER TABLE DROP DETACHED PART](../query_language/query_language/alter/#alter_drop-detached).
-`origin` (String) — Path to the configuration file that describes the dictionary.
-`attribute.names` (Array(String)) — Array of attribute names provided by the dictionary.
-`attribute.types` (Array(String)) — Corresponding array of attribute types that are provided by the dictionary.
-`has_hierarchy` (UInt8) — Whether the dictionary is hierarchical.
-`bytes_allocated` (UInt64) — The amount of RAM the dictionary uses.
-`hit_rate` (Float64) — For cache dictionaries, the percentage of uses for which the value was in the cache.
-`element_count` (UInt64) — The number of items stored in the dictionary.
-`load_factor` (Float64) — The percentage filled in the dictionary (for a hashed dictionary, the percentage filled in the hash table).
-`creation_time` (DateTime) — The time when the dictionary was created or last successfully reloaded.
-`last_exception` (String) — Text of the error that occurs when creating or reloading the dictionary if the dictionary couldn't be created.
-`source` (String) — Text describing the data source for the dictionary.
Notez que la quantité de mémoire utilisée par le dictionnaire n'est pas proportionnel au nombre d'articles qui s'y trouvent. Ainsi, pour les dictionnaires plats et mis en cache, toutes les cellules de mémoire sont pré-assignées, quelle que soit la capacité du dictionnaire.
## système.événement {#system_tables-events}
Contient des informations sur le nombre d'événements survenus dans le système. Par exemple, dans le tableau, vous pouvez trouver combien `SELECT` les requêtes ont été traitées depuis le démarrage du serveur ClickHouse.
│ Query │ 12 │ Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. │
│ SelectQuery │ 8 │ Same as Query, but only for SELECT queries. │
│ FileOpen │ 73 │ Number of files opened. │
│ ReadBufferFromFileDescriptorRead │ 155 │ Number of reads (read/pread) from a file descriptor. Does not include sockets. │
│ ReadBufferFromFileDescriptorReadBytes │ 9931 │ Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. │
Contient des informations sur les paramètres [graphite\_rollup](server_configuration_parameters/settings.md#server_configuration_parameters-graphite_rollup) qui sont utilisés dans les tableaux avec [\* GraphiteMergeTree](../engines/table_engines/mergetree_family/graphitemergetree.md) moteur.
-`config_name` (Chaîne) - `graphite_rollup` nom du paramètre.
-`regexp` (Chaîne) - un modèle pour le nom de la métrique.
-`function` (Chaîne) - le nom de la fonction d'agrégation.
-`age` (UInt64) - l'âge minimum des données en secondes.
-`precision` (UInt64) - comment définir précisément l'âge des données en secondes.
-`priority` (UInt16) - priorité de motif.
-`is_default` (UInt8) - indique si le motif est la valeur par défaut.
-`Tables.database` (Array (String)) - tableau de noms de tables de base de données qui utilisent `config_name` paramètre.
-`Tables.table` (Array (String)) - tableau de noms de tables qui utilisent `config_name` paramètre.
## système.fusionner {#system-merges}
Contient des informations sur les fusions et les mutations de pièces actuellement en cours pour les tables de la famille MergeTree.
Colonne:
-`database` (String) — The name of the database the table is in.
-`table` (String) — Table name.
-`elapsed` (Float64) — The time elapsed (in seconds) since the merge started.
-`progress` (Float64) — The percentage of completed work from 0 to 1.
-`num_parts` (UInt64) — The number of pieces to be merged.
-`result_part_name` (String) — The name of the part that will be formed as the result of merging.
-`is_mutation` (UInt8) - 1 si ce processus est une mutation partielle.
-`total_size_bytes_compressed` (UInt64) — The total size of the compressed data in the merged chunks.
-`total_size_marks` (UInt64) — The total number of marks in the merged parts.
-`bytes_read_uncompressed` (UInt64) — Number of bytes read, uncompressed.
-`rows_read` (UInt64) — Number of rows read.
-`bytes_written_uncompressed` (UInt64) — Number of bytes written, uncompressed.
-`rows_written` (UInt64) — Number of rows written.
## système.métrique {#system_tables-metrics}
Contient des mesures qui peuvent être calculées instantanément, ou ont une valeur actuelle. Par exemple, le nombre de requêtes traitées ou en cours réplique de retard. Ce tableau est toujours à jour.
La liste des mesures que vous pouvez trouver dans le [SGBD / commun / CurrentMetrics.rpc](https://github.com/ClickHouse/ClickHouse/blob/master/dbms/Common/CurrentMetrics.cpp) fichier source de ClickHouse.
│ Merge │ 0 │ Number of executing background merges │
│ PartMutation │ 0 │ Number of mutations (ALTER DELETE/UPDATE) │
│ ReplicatedFetch │ 0 │ Number of data parts being fetched from replicas │
│ ReplicatedSend │ 0 │ Number of data parts being sent to replicas │
│ ReplicatedChecks │ 0 │ Number of data parts checking for consistency │
│ BackgroundPoolTask │ 0 │ Number of active tasks in BackgroundProcessingPool (merges, mutations, fetches, or replication queue bookkeeping) │
│ BackgroundSchedulePoolTask │ 0 │ Number of active tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc. │
│ DiskSpaceReservedForMerge │ 0 │ Disk space reserved for currently running background merges. It is slightly more than the total size of currently merging parts. │
│ DistributedSend │ 0 │ Number of connections to remote servers sending data that was INSERTed into Distributed tables. Both synchronous and asynchronous mode. │
Contient l'historique des valeurs de métriques des tables `system.metrics` et `system.events` périodiquement vidé sur le disque.
Pour activer la collection d'historique des métriques `system.metric_log`, créer `/etc/clickhouse-server/config.d/metric_log.xml` avec le contenu suivant:
-`partition` (String) – The partition name. To learn what a partition is, see the description of the [ALTER](../sql_reference/statements/alter.md#query_language_queries_alter) requête.
-`YYYYMM` pour le partitionnement automatique par mois.
-`any_string` lors du partitionnement manuel.
-`name` (`String`) – Name of the data part.
-`active` (`UInt8`) – Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's deleted. Inactive data parts remain after merging.
-`marks` (`UInt64`) – The number of marks. To get the approximate number of rows in a data part, multiply `marks` par la granularité d'index (généralement 8192) (cet indice ne fonctionne pas pour la granularité adaptative).
-`rows` (`UInt64`) – The number of rows.
-`bytes_on_disk` (`UInt64`) – Total size of all the data part files in bytes.
-`data_compressed_bytes` (`UInt64`) – Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included.
-`data_uncompressed_bytes` (`UInt64`) – Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included.
-`marks_bytes` (`UInt64`) – The size of the file with marks.
-`modification_time` (`DateTime`) – The time the directory with the data part was modified. This usually corresponds to the time of data part creation.\|
-`remove_time` (`DateTime`) – The time when the data part became inactive.
-`refcount` (`UInt32`) – The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges.
-`min_date` (`Date`) – The minimum value of the date key in the data part.
-`max_date` (`Date`) – The maximum value of the date key in the data part.
-`min_time` (`DateTime`) – The minimum value of the date and time key in the data part.
-`max_time`(`DateTime`) – The maximum value of the date and time key in the data part.
-`partition_id` (`String`) – ID of the partition.
-`min_block_number` (`UInt64`) – The minimum number of data parts that make up the current part after merging.
-`max_block_number` (`UInt64`) – The maximum number of data parts that make up the current part after merging.
-`level` (`UInt32`) – Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts.
-`data_version` (`UInt64`) – Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than `data_version`).
-`primary_key_bytes_in_memory` (`UInt64`) – The amount of memory (in bytes) used by primary key values.
-`primary_key_bytes_in_memory_allocated` (`UInt64`) – The amount of memory (in bytes) reserved for primary key values.
-`is_frozen` (`UInt8`) – Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup doesn't exist. For more details, see [FREEZE PARTITION](../sql_reference/statements/alter.md#alter_freeze-partition)
-`hash_of_uncompressed_files` (`String`) – [sipHash128](../sql_reference/functions/hash_functions.md#hash_functions-siphash128) de fichiers non compressés (fichiers avec des marques, fichier d'index, etc.).
-`uncompressed_hash_of_compressed_files` (`String`) – [sipHash128](../sql_reference/functions/hash_functions.md#hash_functions-siphash128) des données dans les fichiers compressés comme s'ils étaient non compressé.
Le `system.part_log` la table est créée uniquement si [part\_log](server_configuration_parameters/settings.md#server_configuration_parameters-part-log) serveur paramètre est spécifié.
Ce tableau contient des informations sur les événements survenus avec [les parties de données](../engines/table_engines/mergetree_family/custom_partitioning_key.md) dans le [MergeTree](../engines/table_engines/mergetree_family/mergetree.md) table de famille, telles que l'ajout ou la fusion de données.
-`MOVE_PART` — Moving the data part from the one disk to another one.
-`event_date` (Date) — Event date.
-`event_time` (DateTime) — Event time.
-`duration_ms` (UInt64) — Duration.
-`database` (String) — Name of the database the data part is in.
-`table` (String) — Name of the table the data part is in.
-`part_name` (String) — Name of the data part.
-`partition_id` (String) — ID of the partition that the data part was inserted to. The column takes the ‘all’ si le partitionnement est par `tuple()`.
-`rows` (UInt64) — The number of rows in the data part.
-`size_in_bytes` (UInt64) — Size of the data part in bytes.
-`merged_from` (Array(String)) — An array of names of the parts which the current part was made up from (after the merge).
-`bytes_uncompressed` (UInt64) — Size of uncompressed bytes.
-`read_rows` (UInt64) — The number of rows was read during the merge.
-`read_bytes` (UInt64) — The number of bytes was read during the merge.
-`error` (UInt16) — The code number of the occurred error.
-`exception` (String) — Text message of the occurred error.
Le `system.part_log` la table est créée après la première insertion de données `MergeTree` table.
## système.processus {#system_tables-processes}
Cette table système est utilisée pour implémenter `SHOW PROCESSLIST` requête.
Colonne:
-`user` (String) – The user who made the query. Keep in mind that for distributed processing, queries are sent to remote servers under the `default` utilisateur. Le champ contient le nom d'utilisateur pour une requête spécifique, pas pour une requête que cette requête lancée.
-`address` (String) – The IP address the request was made from. The same for distributed processing. To track where a distributed query was originally made from, look at `system.processes` sur le serveur du demandeur de requête.
-`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) – Amount of RAM the request uses. It might not include some types of dedicated memory. See the [max\_memory\_usage](../operations/settings/query_complexity.md#settings_max_memory_usage) paramètre.
-`query` (String) – The query text. For `INSERT` il n'inclut pas les données à insérer.
-`query_id` (String) – Query ID, if defined.
## système.text\_log {#system-tables-text-log}
Contient des entrées de journalisation. Niveau de journalisation qui va à cette table peut être limité `text_log.level` paramètre de serveur.
Colonne:
-`event_date` (`Date`) - Date de l'entrée.
-`event_time` (`DateTime`) - Temps de l'entrée.
-`microseconds` (`UInt32`) - Microsecondes de l'entrée.
-`thread_name` (String) — Name of the thread from which the logging was done.
-`thread_id` (UInt64) — OS thread ID.
-`level` (`Enum8`) - Niveau d'entrée.
-`'Fatal' = 1`
-`'Critical' = 2`
-`'Error' = 3`
-`'Warning' = 4`
-`'Notice' = 5`
-`'Information' = 6`
-`'Debug' = 7`
-`'Trace' = 8`
-`query_id` (`String`)- ID de la requête.
-`logger_name` (`LowCardinality(String)`) - Name of the logger (i.e.`DDLWorker`)
-`message` (`String`) - Le message lui-même.
-`revision` (`UInt32`)- Révision ClickHouse.
-`source_file` (`LowCardinality(String)`)- Fichier Source à partir duquel la journalisation a été effectuée.
-`source_line` (`UInt64`)- Ligne Source à partir de laquelle la journalisation a été effectuée.
## système.query\_log {#system_tables-query_log}
Contient des informations sur l'exécution de requêtes. Pour chaque requête, vous pouvez voir l'Heure de début du traitement, la durée du traitement, les messages d'erreur et d'autres informations.
!!! note "Note"
Le tableau ne contient pas les données d'entrée pour `INSERT` requête.
Clickhouse crée cette table uniquement si [query\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-log) serveur paramètre est spécifié. Ce paramètre définit les règles de journalisation, tels que l'intervalle d'enregistrement ou le nom de la table, la requête sera connecté.
Pour activer la journalisation des requêtes, définissez [log\_queries](settings/settings.md#settings-log-queries) paramètre 1. Pour plus de détails, voir le [Paramètre](settings/settings.md) section.
Le `system.query_log` table enregistre deux types de requêtes:
1. Requêtes initiales qui ont été exécutées directement par le client.
2. Requêtes enfants initiées par d'autres requêtes (pour l'exécution de requêtes distribuées). Pour ces types de requêtes, des informations sur les requêtes parentes sont affichées dans `initial_*` colonne.
Colonne:
-`type` (`Enum8`) — Type of event that occurred when executing the query. Values:
-`'QueryStart' = 1` — Successful start of query execution.
-`'QueryFinish' = 2` — Successful end of query execution.
-`'ExceptionBeforeStart' = 3` — Exception before the start of query execution.
-`'ExceptionWhileProcessing' = 4` — Exception during the query execution.
-`event_date` (Date) — Query starting date.
-`event_time` (DateTime) — Query starting time.
-`query_start_time` (DateTime) — Start time of query execution.
-`query_duration_ms` (UInt64) — Duration of query execution.
-`read_rows` (UInt64) — Number of read rows.
-`read_bytes` (UInt64) — Number of read bytes.
-`written_rows` (UInt64) — For `INSERT` des requêtes, le nombre de lignes. Pour les autres requêtes, la valeur de la colonne est 0.
-`written_bytes` (UInt64) — For `INSERT` des requêtes, le nombre d'octets écrits. Pour les autres requêtes, la valeur de la colonne est 0.
-`result_rows` (UInt64) — Number of rows in the result.
-`result_bytes` (UInt64) — Number of bytes in the result.
-`memory_usage` (UInt64) — Memory consumption by the query.
-`query` (String) — Query string.
-`exception` (String) — Exception message.
-`stack_trace` (String) — Stack trace (a list of methods called before the error occurred). An empty string, if the query is completed successfully.
-`is_initial_query` (UInt8) — Query type. Possible values:
- 1 — Query was initiated by the client.
- 0 — Query was initiated by another query for distributed query execution.
-`user` (String) — Name of the user who initiated the current query.
-`query_id` (String) — ID of the query.
-`address` (IPv6) — IP address that was used to make the query.
-`port` (UInt16) — The client port that was used to make the query.
-`initial_user` (String) — Name of the user who ran the initial query (for distributed query execution).
-`initial_query_id` (String) — ID of the initial query (for distributed query execution).
-`initial_address` (IPv6) — IP address that the parent query was launched from.
-`initial_port` (UInt16) — The client port that was used to make the parent query.
-`interface` (UInt8) — Interface that the query was initiated from. Possible values:
- 1 — TCP.
- 2 — HTTP.
-`os_user` (String) — OS's username who runs [clickhouse-client](../interfaces/cli.md).
-`client_hostname` (String) — Hostname of the client machine where the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP est exécuté.
-`client_name` (String) — The [clickhouse-client](../interfaces/cli.md) ou un autre nom de client TCP.
-`client_revision` (UInt32) — Revision of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_major` (UInt32) — Major version of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_minor` (UInt32) — Minor version of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_patch` (UInt32) — Patch component of the [clickhouse-client](../interfaces/cli.md) ou une autre version du client TCP.
-`http_method` (UInt8) — HTTP method that initiated the query. Possible values:
- 0 — The query was launched from the TCP interface.
- 1 — `GET` la méthode a été utilisée.
- 2 — `POST` la méthode a été utilisée.
-`http_user_agent` (String) — The `UserAgent` en-tête passé dans la requête HTTP.
-`quota_key` (String) — The “quota key” spécifié dans le [quota](quotas.md) (voir `keyed`).
-`revision` (UInt32) — ClickHouse revision.
-`thread_numbers` (Array(UInt32)) — Number of threads that are participating in query execution.
-`ProfileEvents.Names` (Array(String)) — Counters that measure different metrics. The description of them could be found in the table [système.événement](#system_tables-events)
-`ProfileEvents.Values` (Array(UInt64)) — Values of metrics that are listed in the `ProfileEvents.Names` colonne.
-`Settings.Names` (Array(String)) — Names of settings that were changed when the client ran the query. To enable logging changes to settings, set the `log_query_settings` paramètre 1.
-`Settings.Values` (Array(String)) — Values of settings that are listed in the `Settings.Names` colonne.
Chaque requête crée une ou deux lignes dans le `query_log` le tableau, en fonction de l'état de la requête:
1. Si l'exécution de la requête est réussie, deux événements de type 1 et 2 sont créés (voir `type` colonne).
2. Si une erreur s'est produite pendant le traitement de la requête, deux événements avec les types 1 et 4 sont créés.
3. Si une erreur s'est produite avant le lancement de la requête, un seul événement de type 3 est créé.
Par défaut, les journaux sont ajoutés à la table à des intervalles de 7,5 secondes. Vous pouvez définir cet intervalle dans la [query\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-log) configuration du serveur (voir `flush_interval_milliseconds` paramètre). Pour vider les journaux de force du tampon mémoire dans la table, utilisez le `SYSTEM FLUSH LOGS` requête.
Lorsque la table est supprimée manuellement, il sera automatiquement créé à la volée. Notez que tous les précédents journaux seront supprimés.
!!! note "Note"
La période de stockage des journaux est illimitée. Les journaux ne sont pas automatiquement supprimés de la table. Vous devez organiser vous-même la suppression des journaux obsolètes.
Vous pouvez spécifier une clé de partitionnement arbitraire pour `system.query_log` la table dans le [query\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-log) configuration du serveur (voir `partition_by` paramètre).
Clickhouse crée cette table uniquement si [query\_thread\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-thread-log) serveur paramètre est spécifié. Ce paramètre définit les règles de journalisation, tels que l'intervalle d'enregistrement ou le nom de la table, la requête sera connecté.
Pour activer la journalisation des requêtes, définissez [log\_query\_threads](settings/settings.md#settings-log-query-threads) paramètre 1. Pour plus de détails, voir le [Paramètre](settings/settings.md) section.
Colonne:
-`event_date` (Date) — the date when the thread has finished execution of the query.
-`event_time` (DateTime) — the date and time when the thread has finished execution of the query.
-`query_start_time` (DateTime) — Start time of query execution.
-`query_duration_ms` (UInt64) — Duration of query execution.
-`read_rows` (UInt64) — Number of read rows.
-`read_bytes` (UInt64) — Number of read bytes.
-`written_rows` (UInt64) — For `INSERT` des requêtes, le nombre de lignes. Pour les autres requêtes, la valeur de la colonne est 0.
-`written_bytes` (UInt64) — For `INSERT` des requêtes, le nombre d'octets écrits. Pour les autres requêtes, la valeur de la colonne est 0.
-`memory_usage` (Int64) — The difference between the amount of allocated and freed memory in context of this thread.
-`peak_memory_usage` (Int64) — The maximum difference between the amount of allocated and freed memory in context of this thread.
-`thread_name` (String) — Name of the thread.
-`thread_number` (UInt32) — Internal thread ID.
-`os_thread_id` (Int32) — OS thread ID.
-`master_thread_id` (UInt64) — OS initial ID of initial thread.
-`query` (String) — Query string.
-`is_initial_query` (UInt8) — Query type. Possible values:
- 1 — Query was initiated by the client.
- 0 — Query was initiated by another query for distributed query execution.
-`user` (String) — Name of the user who initiated the current query.
-`query_id` (String) — ID of the query.
-`address` (IPv6) — IP address that was used to make the query.
-`port` (UInt16) — The client port that was used to make the query.
-`initial_user` (String) — Name of the user who ran the initial query (for distributed query execution).
-`initial_query_id` (String) — ID of the initial query (for distributed query execution).
-`initial_address` (IPv6) — IP address that the parent query was launched from.
-`initial_port` (UInt16) — The client port that was used to make the parent query.
-`interface` (UInt8) — Interface that the query was initiated from. Possible values:
- 1 — TCP.
- 2 — HTTP.
-`os_user` (String) — OS's username who runs [clickhouse-client](../interfaces/cli.md).
-`client_hostname` (String) — Hostname of the client machine where the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP est exécuté.
-`client_name` (String) — The [clickhouse-client](../interfaces/cli.md) ou un autre nom de client TCP.
-`client_revision` (UInt32) — Revision of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_major` (UInt32) — Major version of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_minor` (UInt32) — Minor version of the [clickhouse-client](../interfaces/cli.md) ou un autre client TCP.
-`client_version_patch` (UInt32) — Patch component of the [clickhouse-client](../interfaces/cli.md) ou une autre version du client TCP.
-`http_method` (UInt8) — HTTP method that initiated the query. Possible values:
- 0 — The query was launched from the TCP interface.
- 1 — `GET` la méthode a été utilisée.
- 2 — `POST` la méthode a été utilisée.
-`http_user_agent` (String) — The `UserAgent` en-tête passé dans la requête HTTP.
-`quota_key` (String) — The “quota key” spécifié dans le [quota](quotas.md) (voir `keyed`).
-`revision` (UInt32) — ClickHouse revision.
-`ProfileEvents.Names` (Array(String)) — Counters that measure different metrics for this thread. The description of them could be found in the table [système.événement](#system_tables-events)
-`ProfileEvents.Values` (Array(UInt64)) — Values of metrics for this thread that are listed in the `ProfileEvents.Names` colonne.
Par défaut, les journaux sont ajoutés à la table à des intervalles de 7,5 secondes. Vous pouvez définir cet intervalle dans la [query\_thread\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-thread-log) configuration du serveur (voir `flush_interval_milliseconds` paramètre). Pour vider les journaux de force du tampon mémoire dans la table, utilisez le `SYSTEM FLUSH LOGS` requête.
Lorsque la table est supprimée manuellement, il sera automatiquement créé à la volée. Notez que tous les précédents journaux seront supprimés.
!!! note "Note"
La période de stockage des journaux est illimitée. Les journaux ne sont pas automatiquement supprimés de la table. Vous devez organiser vous-même la suppression des journaux obsolètes.
Vous pouvez spécifier une clé de partitionnement arbitraire pour `system.query_thread_log` la table dans le [query\_thread\_log](server_configuration_parameters/settings.md#server_configuration_parameters-query-thread-log) configuration du serveur (voir `partition_by` paramètre).
Clickhouse crée cette table lorsque le [trace\_log](server_configuration_parameters/settings.md#server_configuration_parameters-trace_log) la section de configuration du serveur est définie. Aussi l' [query\_profiler\_real\_time\_period\_ns](settings/settings.md#query_profiler_real_time_period_ns) et [query\_profiler\_cpu\_time\_period\_ns](settings/settings.md#query_profiler_cpu_time_period_ns) paramètres doivent être définis.
Lors de la connexion au serveur par `clickhouse-client`, vous voyez la chaîne similaire à `Connected to ClickHouse server version 19.18.1 revision 54429.`. Ce champ contient le `revision` mais pas le `version` d'un serveur.
-`query_id`([Chaîne](../sql_reference/data_types/string.md)) — Query identifier that can be used to get details about a query that was running from the [query\_log](#system_tables-query_log) système de table.
-`trace`([Tableau (UInt64)](../sql_reference/data_types/array.md)) — Stack trace at the moment of sampling. Each element is a virtual memory address inside ClickHouse server process.
-`is_leader` (`UInt8`) - Si la réplique est le chef de file.
Une seule réplique à la fois peut être le leader. Le leader est responsable de la sélection des fusions d'arrière-plan à effectuer.
Notez que les Écritures peuvent être effectuées sur n'importe quel réplica disponible et ayant une session dans ZK, qu'il s'agisse d'un leader.
-`can_become_leader` (`UInt8`)- Si la réplique peut être élue en tant que leader.
-`is_readonly` (`UInt8`) - Si la réplique est en mode lecture seule.
Ce mode est activé si la configuration n'a pas de sections avec ZooKeeper, si une erreur inconnue s'est produite lors de la réinitialisation des sessions dans ZooKeeper et lors de la réinitialisation des sessions dans ZooKeeper.
-`is_session_expired` (`UInt8`)- la session avec ZooKeeper a expiré. Fondamentalement le même que `is_readonly`.
-`future_parts` (`UInt32`)- Le nombre de parties de données qui apparaîtront à la suite D'insertions ou de fusions qui n'ont pas encore été effectuées.
-`parts_to_check` (`UInt32`) - Le nombre de parties des données dans la file d'attente pour la vérification. Une pièce est placée dans la file d'attente de vérification s'il y a un soupçon qu'elle pourrait être endommagée.
-`zookeeper_path` (`String`)- Chemin d'accès aux données de la table dans ZooKeeper.
-`replica_name` (`String`) - Réplique nom de la Gardienne. Différentes répliques d'une même table ont des noms différents.
-`replica_path` (`String`)- Chemin vers les données de réplique dans ZooKeeper. La même chose que la concaténation ‘zookeeper\_path/replicas/replica\_path’.
-`columns_version` (`Int32`)- Numéro de Version de la structure de la table. Indique combien de fois ALTER a été effectué. Si les répliques ont des versions différentes, cela signifie que certaines répliques n'ont pas encore Toutes les modifications.
-`queue_size` (`UInt32`),- La taille de la file d'attente pour les opérations en attente d'être exécuté. Les opérations comprennent l'insertion de blocs de données, les fusions et certaines autres actions. Il coïncide généralement avec `future_parts`.
-`inserts_in_queue` (`UInt32`) - Nombre d'insertions de blocs de données qui doivent être faits. Les Insertions sont généralement répliquées assez rapidement. Si ce nombre est grand, cela signifie que quelque chose est faux.
-`merges_in_queue` (`UInt32`) - Le nombre de fusions en attente d'être fait. Parfois, les fusions sont longues, donc cette valeur peut être supérieure à zéro pendant une longue période.
-`part_mutations_in_queue` (`UInt32`) - Le nombre de mutations en attente d'être fait.
-`queue_oldest_time` (`DateTime`) - Si `queue_size` supérieur à 0, indique quand l'opération la plus ancienne a été ajoutée à la file d'attente.
Les 4 colonnes suivantes ont une valeur non nulle uniquement lorsqu'il y a une session active avec ZK.
-`log_max_index` (`UInt64`) - Maximum nombre d'entrées dans le journal de l'activité générale.
-`log_pointer` (`UInt64`)- Numéro d'entrée Maximum dans le journal de l'activité générale que le réplica a copié dans sa file d'attente d'exécution, plus un. Si `log_pointer` est beaucoup plus petite que `log_max_index` quelque chose ne va pas.
-`last_queue_update` (`DateTime`) - Lorsque la file d'attente a été mise à jour la dernière fois.
-`absolute_delay` (`UInt64`)- Combien de décalage en secondes la réplique actuelle A.
-`total_replicas` (`UInt8`) - Le nombre total de répliques connues de ce tableau.
-`active_replicas` (`UInt8`) - Le nombre de répliques de cette table qui ont une session dans ZooKeeper (c'est-à-dire le nombre de répliques fonctionnelles).
Si vous demandez toutes les colonnes, la table peut fonctionner un peu lentement, car plusieurs lectures de ZooKeeper sont faites pour chaque ligne.
Si vous ne demandez pas les 4 dernières colonnes (log\_max\_index, log\_pointer, total\_replicas, active\_replicas), la table fonctionne rapidement.
Par exemple, vous pouvez vérifier que tout fonctionne correctement comme ceci:
``` sql
SELECT
database,
table,
is_leader,
is_readonly,
is_session_expired,
future_parts,
parts_to_check,
columns_version,
queue_size,
inserts_in_queue,
merges_in_queue,
log_max_index,
log_pointer,
total_replicas,
active_replicas
FROM system.replicas
WHERE
is_readonly
OR is_session_expired
OR future_parts > 20
OR parts_to_check > 10
OR queue_size > 20
OR inserts_in_queue > 10
OR log_max_index - log_pointer > 10
OR total_replicas <2
OR active_replicas <total_replicas
```
Si cette requête ne retourne rien, cela signifie que tout va bien.
## système.paramètre {#system-settings}
Contient des informations sur les paramètres actuellement utilisés.
I. e. utilisé pour l'exécution de la requête que vous utilisez pour lire à partir du système.les paramètres de la table.
-`min` (Nullable(String)) — Get minimum allowed value (if any is set via [contraintes](settings/constraints_on_settings.md#constraints-on-settings)).
-`max` (Nullable(String)) — Get maximum allowed value (if any is set via [contraintes](settings/constraints_on_settings.md#constraints-on-settings)).
-`readonly` (UInt8) — Can user change this setting (for more info, look into [contraintes](settings/constraints_on_settings.md#constraints-on-settings)).
-`supports_skipping_indices` (UInt8) — Flag that indicates if table engine supports [sauter les indices](../engines/table_engines/mergetree_family/mergetree.md#table_engine-mergetree-data_skipping-indexes).
-`supports_ttl` (UInt8) — Flag that indicates if table engine supports [TTL](../engines/table_engines/mergetree_family/mergetree.md#table_engine-mergetree-ttl).
-`supports_replication` (UInt8) — Flag that indicates if table engine supports [réplication des données](../engines/table_engines/mergetree_family/replication.md).
-`dependencies_table` (Array (String)) - dépendances de Table ([MaterializedView](../engines/table_engines/special/materializedview.md) tables basées sur le tableau actuel).
-`total_rows` (Nullable (UInt64)) - nombre Total de lignes, s'il est possible de déterminer rapidement le nombre exact de lignes dans la table, sinon `Null` (y compris underying `Buffer` table).
-`total_bytes` (Nullable (UInt64)) - nombre Total d'octets, s'il est possible de déterminer rapidement le nombre exact d'octets pour la table sur le stockage, sinon `Null` (**ne pas** comprend tout de stockage sous-jacent).
- If the table stores data on disk, returns used space on disk (i.e.compressed).
- Si la table stocke des données en mémoire, renvoie un nombre approximatif d'octets utilisés en mémoire.
Le `system.tables` le tableau est utilisé dans `SHOW TABLES` implémentation de requête.
## système.zookeeper {#system-zookeeper}
La table n'existe pas si ZooKeeper n'est pas configuré. Permet de lire les données du cluster Zookeeper défini dans la configuration.
La requête doit avoir un ‘path’ condition d'égalité dans la clause WHERE. C'est le chemin dans ZooKeeper pour les enfants pour lesquels vous souhaitez obtenir des données.
Requête `SELECT * FROM system.zookeeper WHERE path = '/clickhouse'` données de sortie pour tous les enfants `/clickhouse` nœud.
Pour générer des données pour tous les nœuds racine, écrivez path = ‘/’.
Si le chemin d'accès spécifié dans ‘path’ n'existe pas, une exception sera levée.
Colonne:
-`name` (String) — The name of the node.
-`path` (String) — The path to the node.
-`value` (String) — Node value.
-`dataLength` (Int32) — Size of the value.
-`numChildren` (Int32) — Number of descendants.
-`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 deleted or added descendants.
-`ctime` (DateTime) — Time of node creation.
-`mtime` (DateTime) — Time of the last modification of the node.
-`version` (Int32) — Node version: the number of times the node was changed.
-`cversion` (Int32) — Number of added or removed descendants.
-`aversion` (Int32) — Number of changes to the ACL.
-`ephemeralOwner` (Int64) — For ephemeral nodes, the ID of the session that owns this node.
Exemple:
``` sql
SELECT *
FROM system.zookeeper
WHERE path = '/clickhouse/tables/01-08/visits/replicas'
Le tableau contient des informations sur [mutation](../sql_reference/statements/alter.md#alter-mutations) des tables MergeTree et leur progression. Chaque commande de mutation est représentée par une seule ligne. Le tableau comporte les colonnes suivantes:
**base de données**, **table** - Le nom de la base de données et de la table à laquelle la mutation a été appliquée.
**mutation\_id** - Le numéro d'identification de la mutation. Pour les tables répliquées ces ID correspondent aux noms znode dans le `<table_path_in_zookeeper>/mutations/` répertoire de la Gardienne. Pour les tables non compliquées, Les Id correspondent aux noms de fichiers dans le répertoire de données de la table.
**commande** - La chaîne de commande mutation (la partie de la requête après `ALTER TABLE [db.]table`).
**create\_time** - Quand cette commande de mutation a été soumise pour exécution.
**block\_numbers.partition\_id**, **block\_numbers.nombre** - Une colonne imbriquée. Pour les mutations de tables répliquées, il contient un enregistrement pour chaque partition: l'ID de partition et le numéro de bloc acquis par la mutation (dans chaque partition, seules les parties contenant des blocs avec des nombres inférieurs au numéro de bloc acquis par la mutation dans cette partition seront mutées). Dans les tables non répliquées, les numéros de bloc de toutes les partitions forment une seule séquence. Cela signifie que pour les mutations de tables non répliquées, la colonne contiendra un enregistrement avec un seul numéro de bloc acquis par la mutation.
**parts\_to\_do** - Le nombre de parties de données qui doivent être mutées pour que la mutation se termine.
**\_done** - La mutation est faite? Notez que même si `parts_to_do = 0` il est possible qu'une mutation d'une table répliquée ne soit pas encore effectuée en raison d'un INSERT de longue durée qui créera une nouvelle partie de données qui devra être mutée.
S'il y avait des problèmes avec la mutation de certaines parties, les colonnes suivantes contiennent des informations supplémentaires:
**latest\_failed\_part** - Le nom de la partie la plus récente qui n'a pas pu être mutée.
**latest\_fail\_time** - Le temps de la partie la plus récente mutation de l'échec.
**latest\_fail\_reason** - Le message d'exception qui a provoqué l'échec de la mutation de pièce la plus récente.
Contient des informations sur les disques définis dans [configuration du serveur](../engines/table_engines/mergetree_family/mergetree.md#table_engine-mergetree-multiple-volumes_configure).
-`name` ([Chaîne](../sql_reference/data_types/string.md)) — Name of a disk in the server configuration.
-`path` ([Chaîne](../sql_reference/data_types/string.md)) — Path to the mount point in the file system.
-`free_space` ([UInt64](../sql_reference/data_types/int_uint.md)) — Free space on disk in bytes.
-`total_space` ([UInt64](../sql_reference/data_types/int_uint.md)) — Disk volume in bytes.
-`keep_free_space` ([UInt64](../sql_reference/data_types/int_uint.md)) — Amount of disk space that should stay free on disk in bytes. Defined in the `keep_free_space_bytes` paramètre de configuration du disque.
Contient des informations sur les stratégies de stockage et les volumes définis [configuration du serveur](../engines/table_engines/mergetree_family/mergetree.md#table_engine-mergetree-multiple-volumes_configure).
-`policy_name` ([Chaîne](../sql_reference/data_types/string.md)) — Name of the storage policy.
-`volume_name` ([Chaîne](../sql_reference/data_types/string.md)) — Volume name defined in the storage policy.
-`volume_priority` ([UInt64](../sql_reference/data_types/int_uint.md)) — Volume order number in the configuration.
-`disks` ([Tableau(String)](../sql_reference/data_types/array.md)) — Disk names, defined in the storage policy.
-`max_data_part_size` ([UInt64](../sql_reference/data_types/int_uint.md)) — Maximum size of a data part that can be stored on volume disks (0 — no limit).
-`move_factor` ([Float64](../sql_reference/data_types/float.md)) — Ratio of free disk space. When the ratio exceeds the value of configuration parameter, ClickHouse start to move data to the next volume in order.