> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Table système contenant les enregistrements du journal de requêtes de l’utilisateur courant.

# system.user_query_log

<div id="description">
  ## Description
</div>

Affiche à l’utilisateur courant ses propres enregistrements du journal de requêtes. Lit la table du journal de requêtes configurée par les paramètres du serveur `query_log.database` et `query_log.table` (`system.query_log` par défaut) et renvoie uniquement les lignes dont l’utilisateur à l’origine de la requête est égal à `currentUser()` (cet utilisateur est obtenu à partir de `initial_user` lorsqu’il est défini, sinon à partir de `user`).

Contrairement à la table du journal de requêtes elle-même, `system.user_query_log` peut être lue sans aucun privilège. Les utilisateurs peuvent donc consulter leurs propres requêtes sans avoir accès à celles des autres.

Cette fonctionnalité n’est prise en charge que lorsque le journal de requêtes est stocké localement. Si `query_log.engine` est configuré avec `Distributed` ou tout autre moteur qui délègue les lectures à un autre serveur, `system.user_query_log` refuse de le lire et lève une exception, car le contrôle d’accès requis ne peut pas être appliqué de part et d’autre d’une limite entre serveurs utilisant le protocole ClickHouse. Dans ce cas, désactivez la table avec `query_log.enable_user_query_log = 0`.

La table peut être désactivée à l’aide du paramètre de serveur `query_log.enable_user_query_log`. Si le journal de requêtes n’est pas configuré ou si sa table n’a pas encore été créée, `system.user_query_log` est vide.

Les conditions sur la partition et les colonnes clés du journal de requêtes (`event_date`, `event_time`, `query_start_time`, `query_id`, `type` et autres colonnes scalaires similaires) comparées à des constantes sont appliquées directement à la table de journal de requêtes sous-jacente. Ainsi, les recherches ordinaires telles que celle de l’exemple ci-dessous bénéficient de l’élagage des partitions et ne parcourent pas l’intégralité du journal conservé.

<Warning>
  Si une table nommée `system.user_query_log` a été créée avant la mise à niveau vers une version de ClickHouse fournissant cette table, le serveur ne démarrera pas tant que la table existante n’aura pas été renommée ou supprimée, ou que `query_log.enable_user_query_log` n’aura pas été défini sur `0`.
</Warning>

<div id="columns">
  ## Colonnes
</div>

* `hostname` ([String](/fr/reference/data-types/string)) — Nom d'hôte du serveur exécutant la requête.
* `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/fr/reference/data-types/enum)) — Type d'événement survenu lors de l'exécution de la requête. Valeurs : `QueryStart` — démarrage réussi de l'exécution de la requête, `QueryFinish` — fin réussie de l'exécution de la requête, `ExceptionBeforeStart` — exception avant le démarrage de l'exécution de la requête, `ExceptionWhileProcessing` — exception pendant l'exécution de la requête.
* `event_date` ([Date](/fr/reference/data-types/date)) — Date de début de la requête.
* `event_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de la requête.
* `event_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de la requête avec une précision à la microseconde.
* `query_start_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de l'exécution de la requête.
* `query_start_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de l'exécution de la requête avec une précision à la microseconde.
* `query_duration_ms` ([UInt64](/fr/reference/data-types/int-uint)) — Durée d'exécution de la requête en millisecondes.
* `read_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre total de lignes lues dans l'ensemble des tables et fonctions de table participant à la requête. Cela inclut les sous-requêtes standard ainsi que les sous-requêtes utilisées avec IN et JOIN. Pour les requêtes distribuées, read\_rows inclut le nombre total de lignes lues sur toutes les répliques. Chaque réplique envoie sa valeur read\_rows, et le serveur initiateur de la requête additionne toutes les valeurs reçues et locales. Les volumes de cache n'affectent pas cette valeur.
* `read_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre total d'octets lus dans l'ensemble des tables et fonctions de table participant à la requête. Cela inclut les sous-requêtes standard ainsi que les sous-requêtes utilisées avec IN et JOIN. Pour les requêtes distribuées, read\_bytes inclut le nombre total d'octets lus sur toutes les répliques. Chaque réplique envoie sa valeur read\_bytes, et le serveur initiateur de la requête additionne toutes les valeurs reçues et locales. Les volumes de cache n'affectent pas cette valeur.
* `written_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de lignes écrites par la requête, y compris les lignes écrites par les insertions en aval déclenchées par le pipeline, telles que les vues matérialisées attachées. Pour une insertion synchrone, ces lignes en aval sont enregistrées dans l'entrée `query_kind` = `Insert` ; pour une insertion asynchrone, elles sont enregistrées dans l'entrée `query_kind` = `AsyncInsertFlush`, tandis que l'entrée `Insert` côté client enregistre uniquement les lignes acceptées du client. Pour les requêtes qui n'écrivent pas de lignes, cette valeur est 0.
* `written_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre d'octets écrits par la requête (non compressés), y compris les octets écrits par les insertions en aval déclenchées par le pipeline, telles que les vues matérialisées attachées. Pour une insertion synchrone, ces octets en aval sont enregistrés dans l'entrée `query_kind` = `Insert` ; pour une insertion asynchrone, ils sont enregistrés dans l'entrée `query_kind` = `AsyncInsertFlush`, tandis que l'entrée `Insert` côté client enregistre uniquement les octets acceptés du client. Pour les requêtes qui n'écrivent pas de données, cette valeur est 0.
* `result_rows` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de lignes dans le résultat d'une requête SELECT, ou nombre de lignes écrites par une insertion. Pour une insertion synchrone, cela inclut les lignes écrites par les insertions en aval déclenchées par le pipeline, telles que les vues matérialisées attachées, dans l'entrée `query_kind` = `Insert` ; pour une insertion asynchrone, ces lignes en aval sont enregistrées dans l'entrée `query_kind` = `AsyncInsertFlush`, tandis que l'entrée `Insert` côté client enregistre uniquement les lignes acceptées du client.
* `result_bytes` ([UInt64](/fr/reference/data-types/int-uint)) — Quantité de mémoire vive, en octets, utilisée pour stocker le résultat d'une requête.
* `memory_usage` ([UInt64](/fr/reference/data-types/int-uint)) — Consommation de mémoire de la requête.
* `current_database` ([String](/fr/reference/data-types/string)) — Nom de la base de données courante.
* `query` ([String](/fr/reference/data-types/string)) — Chaîne de requête.
* `formatted_query` ([String](/fr/reference/data-types/string)) — Chaîne de requête formatée.
* `normalized_query_hash` ([UInt64](/fr/reference/data-types/int-uint)) — Valeur de hachage numérique identique, par exemple, pour des requêtes qui ne diffèrent que par les valeurs des littéraux.
* `query_kind` ([String](/fr/reference/data-types/string)) — Type de la requête.
* `databases` ([Array(String)](/fr/reference/data-types/array)) — Noms des bases de données présentes dans la requête.
* `tables` ([Array(String)](/fr/reference/data-types/array)) — Noms des tables présentes dans la requête.
* `columns` ([Array(String)](/fr/reference/data-types/array)) — Noms des colonnes présentes dans la requête.
* `partitions` ([Array(String)](/fr/reference/data-types/array)) — Noms des partitions présentes dans la requête.
* `projections` ([Array(String)](/fr/reference/data-types/array)) — Noms des projections utilisées lors de l’exécution de la requête.
* `views` ([Array(String)](/fr/reference/data-types/array)) — Noms des vues (matérialisées ou en direct) présentes dans la requête.
* `exception_code` ([Int32](/fr/reference/data-types/int-uint)) — Code d’exception.
* `exception` ([String](/fr/reference/data-types/string)) — Message d’exception.
* `stack_trace` ([String](/fr/reference/data-types/string)) — Trace de pile. Chaîne vide si la requête s’est exécutée correctement.
* `is_initial_query` ([UInt8](/fr/reference/data-types/int-uint)) — Type de requête. Valeurs possibles : 1 — requête initiée par le client, 0 — requête initiée par une autre requête dans le cadre de l’exécution d’une requête distribuée.
* `connection_address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP du client depuis laquelle la connexion a été établie. En cas de connexion via un proxy, il s’agit de l’adresse du proxy.
* `connection_port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client depuis lequel la connexion a été établie. En cas de connexion via un proxy, il s’agit du port du proxy.
* `user` ([String](/fr/reference/data-types/string)) — Nom de l’utilisateur qui a initié la requête en cours.
* `query_id` ([String](/fr/reference/data-types/string)) — ID de la requête.
* `address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP utilisée pour effectuer la requête. En cas de connexion via un proxy et si `auth_use_forwarded_address` est défini, il s’agit de l’adresse du client plutôt que de celle du proxy.
* `port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client utilisé pour effectuer la requête. En cas de connexion via un proxy et si `auth_use_forwarded_address` est défini, il s’agit du port du client plutôt que de celui du proxy.
* `initial_user` ([String](/fr/reference/data-types/string)) — Nom de l’utilisateur qui a exécuté la requête initiale (pour l’exécution d’une requête distribuée).
* `initial_query_id` ([String](/fr/reference/data-types/string)) — ID de la requête initiale (pour l’exécution d’une requête distribuée).
* `initial_address` ([IPv6](/fr/reference/data-types/ipv6)) — Adresse IP depuis laquelle la requête parente a été lancée.
* `initial_port` ([UInt16](/fr/reference/data-types/int-uint)) — Port client utilisé pour effectuer la requête parente.
* `initial_query_start_time` ([DateTime](/fr/reference/data-types/datetime)) — Heure de début de la requête initiale (pour l’exécution d’une requête distribuée).
* `initial_query_start_time_microseconds` ([DateTime64(6)](/fr/reference/data-types/datetime64)) — Heure de début de la requête initiale avec une précision à la microseconde (pour l’exécution d’une requête distribuée).
* `authenticated_user` ([String](/fr/reference/data-types/string)) — Nom de l’utilisateur authentifié dans la session.
* `interface` ([UInt8](/fr/reference/data-types/int-uint)) — Interface depuis laquelle la requête a été initiée. Valeurs possibles : 1 — TCP, 2 — HTTP.
* `is_secure` ([UInt8](/fr/reference/data-types/int-uint)) — Indique si une requête a été exécutée via une interface sécurisée.
* `os_user` ([String](/fr/reference/data-types/string)) — Nom d’utilisateur du système d’exploitation exécutant clickhouse-client.
* `client_hostname` ([String](/fr/reference/data-types/string)) — Nom d’hôte de la machine cliente sur laquelle clickhouse-client ou un autre client TCP est exécuté.
* `client_name` ([String](/fr/reference/data-types/string)) — Nom de clickhouse-client ou d’un autre client TCP.
* `client_agent` ([String](/fr/reference/data-types/string)) — Agent de programmation IA ayant invoqué le client (par ex. `claude-code`, `cursor`), détecté à partir des variables d’environnement. Vide si aucun agent n’a été détecté.
* `client_revision` ([UInt32](/fr/reference/data-types/int-uint)) — Révision de clickhouse-client ou d’un autre client TCP.
* `client_version_major` ([UInt32](/fr/reference/data-types/int-uint)) — Version majeure de clickhouse-client ou d’un autre client TCP.
* `client_version_minor` ([UInt32](/fr/reference/data-types/int-uint)) — Version mineure de clickhouse-client ou d’un autre client TCP.
* `client_version_patch` ([UInt32](/fr/reference/data-types/int-uint)) — Composant correctif de la version de clickhouse-client ou d’un autre client TCP.
* `script_query_number` ([UInt32](/fr/reference/data-types/int-uint)) — Numéro de la requête dans un script contenant plusieurs requêtes pour clickhouse-client.
* `script_line_number` ([UInt32](/fr/reference/data-types/int-uint)) — Numéro de la ligne où débute la requête dans un script contenant plusieurs requêtes pour clickhouse-client.
* `http_method` ([UInt8](/fr/reference/data-types/int-uint)) — Méthode HTTP ayant initié la requête. Valeurs possibles : 0 - requête lancée depuis l’interface TCP, 1 - méthode GET utilisée, 2 - méthode POST utilisée, 4 - méthode PUT utilisée, 5 - méthode DELETE utilisée, 6 - méthode HEAD utilisée.
* `http_user_agent` ([String](/fr/reference/data-types/string)) — En-tête HTTP UserAgent transmis avec la requête HTTP.
* `http_referer` ([String](/fr/reference/data-types/string)) — En-tête HTTP Referer transmis avec la requête HTTP (contient l’adresse absolue ou partielle de la page à l’origine de la requête).
* `forwarded_for` ([String](/fr/reference/data-types/string)) — En-tête HTTP X-Forwarded-For transmis avec la requête HTTP.
* `quota_key` ([String](/fr/reference/data-types/string)) — Clé de quota spécifiée dans le paramètre quotas (voir keyed).
* `distributed_depth` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre de fois qu’une requête a été transmise entre des serveurs.
* `revision` ([UInt32](/fr/reference/data-types/int-uint)) — Révision de ClickHouse.
* `http_handler_name` ([String](/fr/reference/data-types/string)) — Nom du handler HTTP défini en SQL (CREATE HANDLER) ayant invoqué la requête. Vide si la requête n’a pas été invoquée via un tel handler.
* `http_request_url` ([String](/fr/reference/data-types/string)) — Chemin de la requête HTTP (sans la chaîne de requête) ayant invoqué la requête. La chaîne de requête est omise afin que les paramètres sensibles de la requête ne soient pas persistés. Vide pour les requêtes non HTTP.
* `log_comment` ([String](/fr/reference/data-types/string)) — Commentaire de Log. Peut être défini sur une chaîne arbitraire ne dépassant pas max\_query\_size. Chaîne vide s’il n’est pas défini.
* `thread_ids` ([Array(UInt64)](/fr/reference/data-types/array)) — Identifiants des threads participant à l’exécution de la requête. Ces threads peuvent ne pas s’être exécutés simultanément.
* `peak_threads_usage` ([UInt64](/fr/reference/data-types/int-uint)) — Nombre maximal de threads exécutant simultanément la requête.
* `ProfileEvents` ([Map(String, UInt64)](/fr/reference/data-types/map)) — ProfileEvents mesurant différentes métriques. Leur description est disponible dans la table system.events.
* `Settings` ([Map(String, String)](/fr/reference/data-types/map)) — Settings modifiés lors de l’exécution de la requête par le client. Pour activer la journalisation des modifications de paramètres, définissez le paramètre log\_query\_settings sur 1.
* `used_aggregate_functions` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des fonctions d’agrégation utilisées lors de l’exécution de la requête.
* `used_aggregate_function_combinators` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des combinateurs de fonctions d’agrégation utilisés lors de l’exécution de la requête.
* `used_database_engines` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des moteurs de base de données utilisés lors de l’exécution de la requête.
* `used_data_type_families` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des familles de types de données utilisées lors de l’exécution de la requête.
* `used_dictionaries` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des dictionnaires utilisés lors de l’exécution de la requête.
* `used_formats` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des formats utilisés lors de l’exécution de la requête.
* `used_functions` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des fonctions utilisées lors de l’exécution de la requête.
* `used_storages` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des stockages utilisés lors de l’exécution de la requête.
* `used_table_functions` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des fonctions de table utilisées lors de l’exécution de la requête.
* `used_executable_user_defined_functions` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des fonctions définies par l’utilisateur exécutables utilisées lors de l’exécution de la requête.
* `used_sql_user_defined_functions` ([Array(String)](/fr/reference/data-types/array)) — Noms canoniques des fonctions SQL définies par l’utilisateur utilisées lors de l’exécution de la requête.
* `used_row_policies` ([Array(String)](/fr/reference/data-types/array)) — Liste des noms des politiques de lignes utilisées lors de l’exécution de la requête.
* `used_privileges` ([Array(String)](/fr/reference/data-types/array)) — Privilèges dont la vérification a réussi lors de l’exécution de la requête.
* `missing_privileges` ([Array(String)](/fr/reference/data-types/array)) — Privilèges manquants lors de l’exécution de la requête.
* `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/fr/reference/data-types/tuple)) — Identifiant de la transaction dans le cadre de laquelle cette requête a été exécutée.
* `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/fr/reference/data-types/enum)) — Utilisation du cache de requêtes lors de l’exécution de la requête. Valeurs : 'Unknown' = Statut inconnu, 'None' = Le résultat de la requête n’a été ni écrit dans le cache des résultats de requêtes ni lu depuis celui-ci, 'Write' = Le résultat de la requête a été écrit dans le cache des résultats de requêtes, 'Read' = Le résultat de la requête a été lu depuis le cache des résultats de requêtes.
* `asynchronous_read_counters` ([Map(String, UInt64)](/fr/reference/data-types/map)) — Métriques de lecture asynchrone.
* `is_internal` ([UInt8](/fr/reference/data-types/int-uint)) — Indique s’il s’agit d’une requête auxiliaire exécutée en interne.

**Alias :**

* `ProfileEvents.Names` — alias de `mapKeys(ProfileEvents)`.
* `ProfileEvents.Values` — alias de `mapValues(ProfileEvents)`.
* `Settings.Names` — alias de `mapKeys(Settings)`.
* `Settings.Values` — alias de `mapValues(Settings)`.

<div id="example">
  ## Exemple
</div>

```sql theme={null}
SELECT
    query_start_time,
    query_duration_ms,
    query
FROM system.user_query_log
ORDER BY query_start_time DESC
LIMIT 10;
```
