Introduite dans : v1.1.0Interprète un nombre UInt64 comme une adresse MAC au format big-endian.
Renvoie l’adresse MAC correspondante au format AA:BB:CC:DD:EE:FF (nombres hexadécimaux séparés par des deux-points) sous forme de chaîne.Syntaxe
Introduit dans : v1.1.0Étant donné une adresse MAC au format AA:BB:CC:DD:EE:FF (nombres hexadécimaux séparés par des deux-points), renvoie les trois premiers octets sous la forme d’un nombre UInt64. Si l’adresse MAC n’a pas un format valide, renvoie 0.Syntaxe
Introduite dans : v25.11.0Si l’utilisateur de la session a été remplacé à l’aide de la commande EXECUTE AS, cette fonction renvoie le nom de l’utilisateur d’origine ayant servi à l’authentification et à la création de la session.
Alias : authUser()Syntaxe
authenticatedUser()
Alias : authUserArguments
Aucun.
Valeur renvoyéeLe nom de l’utilisateur authentifié. StringExemplesExemple d’utilisation
Query
EXECUTE as u1; SELECT currentUser(), authenticatedUser();
Introduit dans : v1.1.0Génère un graphique en barres.
Dessine une bande dont la largeur est proportionnelle à (x - min) et égale à width caractères lorsque x = max.
La bande est dessinée avec une précision d’un huitième de caractère.Syntaxe
Introduit dans : v1.1.0Renvoie un numéro de séquence monotone croissant du bloc contenant la ligne.
Le numéro de bloc renvoyé est mis à jour au mieux, c’est-à-dire qu’il peut ne pas être parfaitement exact.Syntaxe
blockNumber()
Arguments
Aucun.
Valeur renvoyéeNuméro de séquence du bloc de données dans lequel se trouve la ligne. UInt64ExemplesUtilisation de base
Introduit dans : v20.3.0Renvoie la taille non compressée en octets d’un bloc de valeurs sur disque.Syntaxe
blockSerializedSize(x1[, x2[, ...]])
Arguments
x1[, x2, ...] — Nombre quelconque de valeurs dont on souhaite obtenir la taille non compressée du bloc. Any
Valeur renvoyéeRenvoie le nombre d’octets qui seront écrits sur le disque pour un bloc de valeurs sans compression. UInt64ExemplesExemple d’utilisation
Introduit dans : v1.1.0Dans ClickHouse, les requêtes sont traitées par blocs (fragments).
Cette fonction renvoie la taille (nombre de lignes) du bloc sur lequel elle est appelée.Syntaxe
blockSize()
Arguments
Aucun.
Valeur renvoyéeRenvoyer le nombre de lignes du bloc actuel. UInt64ExemplesExemple d’utilisation
Introduit dans : v20.5.0Renvoie l’ID de build généré par un compilateur pour le binaire du serveur ClickHouse en cours d’exécution.
Si elle est exécutée dans le contexte d’une table distribuée, cette fonction génère une colonne ordinaire avec des valeurs propres à chaque shard.
Sinon, elle renvoie une valeur constante.Syntaxe
buildId()
Arguments
Aucun.
Valeur renvoyéeRenvoie l’ID du build. StringExemplesExemple d’utilisation
Introduit dans : v21.1.0Renvoie une estimation de la taille en octets non compressée de ses arguments en mémoire.
Pour les arguments String, la fonction renvoie la longueur de la chaîne + 8 (longueur).
Si la fonction comporte plusieurs arguments, elle additionne leurs tailles en octets.Syntaxe
byteSize(arg1[, arg2, ...])
Arguments
arg1[, arg2, ...] — Valeurs de n’importe quel type de données dont il faut estimer la taille non compressée, en octets. Any
Valeur renvoyéeRenvoie une estimation de la taille en octets des arguments en mémoire. UInt64ExemplesExemple d’utilisation
Introduit dans : v22.9.0Évalue un modèle CatBoost externe. CatBoost est une bibliothèque open-source de gradient boosting développée par Yandex pour le machine learning.
Accepte un chemin vers un modèle CatBoost et des arguments du modèle (features).Prérequis
Compiler la bibliothèque d’évaluation CatBoost
Avant d’évaluer des modèles CatBoost, la bibliothèque libcatboostmodel.<so|dylib> doit être accessible. Consultez la documentation CatBoost pour savoir comment la compiler.Ensuite, indiquez le chemin vers libcatboostmodel.<so|dylib> dans la configuration de ClickHouse :
Pour des raisons de sécurité et d’isolation, l’évaluation du modèle ne s’exécute pas dans le processus serveur, mais dans le processus clickhouse-library-bridge.
Lors de la première exécution de catboostEvaluate(), le serveur démarre le processus clickhouse-library-bridge s’il n’est pas déjà en cours d’exécution. Les deux processus
communiquent via une interface HTTP. Par défaut, le port 9012 est utilisé. Un autre port peut être spécifié comme suit - cela est utile si le port
9012 est déjà attribué à un autre service.
Introduit dans : v26.2.0Convertit une couleur de l’espace colorimétrique perceptuel OKLab vers l’espace colorimétrique sRGB.La couleur d’entrée est spécifiée dans l’espace colorimétrique OKLab. Si les valeurs d’entrée sont en dehors
des plages OKLab habituelles, le résultat est défini par l’implémentation.OKLab utilise trois composantes :
L : luminosité perceptuelle (généralement dans l’intervalle [0..1])
a : axe d’opposition vert-rouge
b : axe d’opposition bleu-jaune
Les composantes a et b ne sont théoriquement pas bornées, mais en pratique elles se situent entre -0.4 et 0.4.
OKLab est conçu pour être perceptuellement uniforme
tout en restant peu coûteux à calculer.La conversion est conçue pour être l’inverse de colorSRGBToOKLAB et se compose
des étapes suivantes :
Conversion d’OKLab vers sRGB linéaire.
2) Conversion de sRGB linéaire vers sRGB encodé avec gamma.
L’argument gamma facultatif spécifie l’exposant utilisé lors de la conversion de sRGB linéaire
vers des valeurs RGB encodées avec gamma. S’il n’est pas spécifié, une valeur gamma par défaut est utilisée
pour garantir la cohérence avec colorSRGBToOKLAB.Pour plus d’informations sur l’espace colorimétrique OKLab et sa relation avec sRGB, consultez https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/color_value/oklab
.Syntaxe
colorOKLABToSRGB(tuple [, gamma])
Arguments
tuple — Un tuple de trois valeurs numériques L, a, b, où L est compris dans l’intervalle [0...1]. Tuple(Float64, Float64, Float64)
gamma — Facultatif. L’exposant utilisé pour reconvertir le sRGB linéaire en sRGB en appliquant (x ^ (1 / gamma)) * 255 à chaque canal x. La valeur par défaut est 2.2. Float64
Valeur renvoyéeRenvoie un tuple (R, G, B) représentant des valeurs de couleur sRGB. Tuple(Float64, Float64, Float64)ExemplesConvertir OKLAB en sRGB (Float)
Query
SELECT colorOKLABToSRGB((0.4466, 0.0991, 0.44)) AS rgb;
Introduit dans : v25.7.0Convertit une couleur de l’espace colorimétrique perceptuellement uniforme OKLCH vers l’espace colorimétrique sRGB familier.Si L est hors de la plage [0...1], si C est négatif, ou si H est hors de la plage [0...360], le résultat est défini par l’implémentation.
OKLCH est une version cylindrique de l’espace colorimétrique OKLab.
Ses trois coordonnées sont L (la clarté dans la plage [0...1]), C (chroma >= 0) et H (teinte en degrés dans [0...360]).
OKLab/OKLCH est conçu pour être perceptuellement uniforme tout en restant peu coûteux en calcul.
D’OKLCH vers OKLab.
2) D’OKLab vers sRGB linéaire
3) De sRGB linéaire vers sRGB
Le second argument gamma est utilisé à la dernière étape.Pour voir des références de couleurs dans l’espace OKLCH ainsi que leur correspondance avec les couleurs sRGB, consultez https://oklch.com/.Syntaxe
colorOKLCHToSRGB(tuple [, gamma])
Arguments
tuple — Un tuple de trois valeurs numériques L, C, H, où L est dans l’intervalle [0...1], C >= 0 et H est dans l’intervalle [0...360]. Tuple(Float64, Float64, Float64)
gamma — Facultatif. L’exposant utilisé pour reconvertir le sRGB linéaire en sRGB en appliquant (x ^ (1 / gamma)) * 255 à chaque canal x. La valeur par défaut est 2.2. Float64
Valeur renvoyéeRenvoie un tuple (R, G, B) représentant des valeurs de couleur sRGB. Tuple(Float64, Float64, Float64)ExemplesConvertir OKLCH en sRGB
Introduit dans : v26.2.0Convertit une couleur codée dans l’espace colorimétrique sRGB en espace colorimétrique OKLAB, perceptuellement uniforme.Si un canal d’entrée est en dehors de [0...255] ou si la valeur de gamma n’est pas positive, le comportement dépend de l’implémentation.
OKLAB est un espace colorimétrique perceptuellement uniforme.
Ses trois coordonnées sont L (la clarté dans la plage [0...1]), a (Green-Red axis) et b (Blue-Yellow axis).
OKLab est conçu pour être perceptuellement uniforme tout en restant peu coûteux en calcul.
La conversion se déroule en deux étapes :
sRGB vers sRGB linéaire
2) sRGB linéaire vers OKLab
Syntaxe
colorSRGBToOKLAB(tuple[, gamma])
Arguments
tuple — Tuple de trois valeurs R, G, B comprises dans l’intervalle [0...255]. Tuple(UInt8, UInt8, UInt8)
gamma — Facultatif. Exposant utilisé pour linéariser sRGB en appliquant (x / 255)^gamma à chaque canal x. La valeur par défaut est 2.2. Float64
Valeur renvoyéeRenvoie un tuple (L, a, b) représentant les valeurs de l’espace colorimétrique OKLAB. Tuple(Float64, Float64, Float64)ExemplesConvertir sRGB en OKLAB
Query
SELECT colorSRGBToOKLAB((128, 64, 32), 2.2) AS lab;
Introduit dans : v25.7.0Convertit une couleur encodée dans l’espace colorimétrique sRGB en espace colorimétrique OKLCH, perceptuellement uniforme.Si un canal d’entrée est hors de [0...255] ou si la valeur de gamma n’est pas positive, le comportement est défini par l’implémentation.
OKLCH est une version cylindrique de l’espace colorimétrique OKLab.
Ses trois coordonnées sont L (la clarté dans l’intervalle [0...1]), C (la chroma >= 0) et H (la teinte, en degrés, dans [0...360]).
OKLab/OKLCH est conçu pour être perceptuellement uniforme tout en restant peu coûteux en calcul.
La conversion se déroule en trois étapes :
sRGB vers sRGB linéaire
2) sRGB linéaire vers OKLab
3) OKLab vers OKLCH.
Pour obtenir des références de couleurs dans l’espace OKLCH et voir leur correspondance avec les couleurs sRGB, veuillez consulter https://OKLCH.com/.Syntaxe
colorSRGBToOKLCH(tuple[, gamma])
Arguments
tuple — Tuple de trois valeurs R, G, B comprises dans l’intervalle [0...255]. Tuple(UInt8, UInt8, UInt8)
gamma — Facultatif. Exposant utilisé pour linéariser sRGB en appliquant (x / 255)^gamma à chaque canal x. La valeur par défaut est 2.2. Float64
Valeur renvoyéeRenvoie un tuple (L, C, H) représentant les valeurs dans l’espace colorimétrique OKLCH. Tuple(Float64, Float64, Float64)ExemplesConvertir sRGB en OKLCH
Query
SELECT colorSRGBToOKLCH((128, 64, 32), 2.2) AS lch;
Introduit dans : v21.3.0Renvoie l’identifiant de la connexion du client qui a soumis la requête en cours.
Cette fonction est particulièrement utile dans les scénarios de débogage.
Elle a été créée pour assurer la compatibilité avec la fonction CONNECTION_ID de MySQL.
Elle n’est généralement pas utilisée dans les requêtes de production.Syntaxe
connectionId()
Arguments
Aucun.
Valeur renvoyéeRenvoie l’ID de connexion du client courant. UInt64ExemplesExemple d’utilisation
Introduit dans : v20.8.0Renvoyer le nombre de chiffres décimaux nécessaires pour représenter une valeur.
Cette fonction tient compte de l’échelle des valeurs décimales, c’est-à-dire qu’elle calcule le résultat à partir du type entier sous-jacent, soit (value * scale).Par exemple :
countDigits(42) = 2
countDigits(42.000) = 5
countDigits(0.04200) = 4
Vous pouvez vérifier le débordement de Decimal64 avec countDigits(x) > 18,
bien que cela soit plus lent que isDecimalOverflow.
Introduit dans : v1.1.0Renvoie le nom de la base de données courante.
Utile dans les paramètres de moteur de table des requêtes CREATE TABLE, lorsque vous devez spécifier la base de données.Voir aussi l’instruction SET.Syntaxe
currentDatabase()
Alias : current_database, SCHEMA, DATABASEArguments
Aucun.
Valeur renvoyéeRenvoie le nom de la base de données courante. StringExemplesExemple d’utilisation
Introduit dans : v23.7.0Identique à la fonction currentDatabase, mais :
accepte un argument booléen qui est ignoré
renvoie le nom de la base de données dans un tableau ne contenant qu’une seule valeur.
La fonction currentSchemas n’existe que pour assurer la compatibilité avec PostgreSQL.
Utilisez plutôt currentDatabase.Voir aussi l’instruction SET.Syntaxe
currentSchemas(bool)
Alias : current_schemasArguments
bool — Une valeur booléenne, qui est ignorée. Bool
Valeur de retourRenvoie un tableau à un seul élément contenant le nom de la base de données courante. Array(String)ExemplesExemple d’utilisation
Introduit dans : v20.1.0Renvoie le nom de l’utilisateur courant.
Dans le cas d’une requête distribuée, le nom de l’utilisateur qui a initié la requête est renvoyé.Syntaxe
currentUser()
Alias : session_user, user, current_userArguments
Aucun.
Valeur renvoyéeRenvoie le nom de l’utilisateur courant ou, à défaut, l’identifiant de l’utilisateur qui a lancé la requête. StringExemplesExemple d’utilisation
Introduit dans : v21.9.0Renvoie un tableau contenant les noms des profils de paramètres par défaut de l’utilisateur courant.Syntaxe
defaultProfiles()
Arguments
Aucun.
Valeur renvoyéeRenvoie un tableau contenant les noms des profils de paramètres par défaut de l’utilisateur courant. Array(String)ExemplesExemple d’utilisation
Introduit dans : v1.1.0Renvoie la valeur par défaut d’un type de données donné.
N’inclut pas les valeurs par défaut des colonnes personnalisées définies par l’utilisateur.Syntaxe
defaultValueOfArgumentType(expression)
Arguments
expression — Valeur de type arbitraire ou expression produisant une valeur de type arbitraire. Any
Valeur renvoyéeRenvoie 0 pour les nombres, une chaîne vide pour les chaînes de caractères ou NULL pour les types Nullable. UInt8 ou String ou NULLExemplesExemple d’utilisation
Query
SELECT defaultValueOfArgumentType(CAST(1 AS Int8));
Introduit dans : v1.1.0Renvoie la valeur par défaut du nom de type donné.Syntaxe
defaultValueOfTypeName(type)
Arguments
type — Une chaîne représentant un nom de type. String
Valeur renvoyéeRenvoie la valeur par défaut pour le nom de type donné : 0 pour les nombres, une chaîne vide pour les chaînes, ou NULL pour UInt8 Nullable, String ou NULLExemplesExemple d’utilisation
Introduit dans : v22.11.0Renvoie la valeur de display_name dans config ou, si elle n’est pas définie, le nom de domaine pleinement qualifié (FQDN) du serveur.Syntaxe
displayName()
Arguments
Aucun.
Valeur renvoyéeRenvoie la valeur de display_name dans la config ou, si elle n’est pas définie, le FQDN du serveur. StringExemplesExemple d’utilisation
Introduit dans : v21.9.0Renvoie un tableau contenant les noms des profils de paramètres activés pour l’utilisateur courant.Syntaxe
enabledProfiles()
Arguments
Aucun.
Valeur renvoyéeRenvoie un tableau contenant les noms des profils de paramètres activés pour l’utilisateur courant. Array(String)ExemplesExemple d’utilisation
Introduit dans : v20.12.0Renvoyer le nom textuel d’un code d’erreur numérique ClickHouse.
La correspondance entre les codes d’erreur numériques et les noms d’erreur est disponible ici.Syntaxe
Introduit dans : v21.3.0Lit un fichier sous forme de chaîne de caractères et charge les données dans la colonne spécifiée.
Le contenu du fichier n’est pas interprété.Voir aussi la fonction de table file.Syntaxe
file(path[, default])
Arguments
path — Le chemin du fichier par rapport à user_files_path. Prend en charge les caractères génériques *, **, ?, {abc,def} et {N..M}, où N et M sont des nombres et 'abc', 'def' des chaînes. String
default — La valeur renvoyée si le fichier n’existe pas ou n’est pas accessible. String ou NULL
Valeur renvoyéeRenvoie le contenu du fichier sous forme de chaîne de caractères. StringExemplesInsérer des fichiers dans une table
Query
INSERT INTO table SELECT file('a.txt'), file('b.txt');
Introduit dans : v20.1.0Renvoie la quantité d’espace libre dans le système de fichiers qui héberge le stockage persistant de la base de données.
La valeur renvoyée est toujours inférieure à l’espace libre total (filesystemUnreserved), car une partie de cet espace est réservée au système d’exploitation.Syntaxe
filesystemAvailable([disk_name])
Arguments
disk_name — Facultatif. Nom du disque dont il faut déterminer l’espace libre. S’il est omis, le disque par défaut est utilisé. String ou FixedString
Valeur renvoyéeRenvoie l’espace libre restant en octets. UInt64ExemplesExemple d’utilisation
Query
SELECT formatReadableSize(filesystemAvailable()) AS "Available space";
Introduit dans : v20.1.0Renvoie la capacité du système de fichiers en octets.
Nécessite que le path vers le répertoire de données soit configuré.Syntaxe
filesystemCapacity([disk_name])
Arguments
disk_name — Facultatif. Nom du disque dont il faut obtenir la capacité. S’il est omis, le disque par défaut est utilisé. String ou FixedString
Valeur renvoyéeRenvoie la capacité du système de fichiers en octets. UInt64ExemplesExemple d’utilisation
Query
SELECT formatReadableSize(filesystemCapacity()) AS "Capacity";
Introduit dans : v22.12.0Renvoie la quantité totale d’espace libre sur le système de fichiers qui héberge le stockage persistant de la base de données (anciennement filesystemFree).
Voir aussi filesystemAvailable.Syntaxe
filesystemUnreserved([disk_name])
Arguments
disk_name — Facultatif. Nom du disque pour lequel trouver la quantité totale d’espace libre. S’il est omis, le disque default est utilisé. String ou FixedString
Valeur renvoyéeRenvoie la quantité d’espace libre en octets. UInt64ExemplesExemple d’utilisation
Query
SELECT formatReadableSize(filesystemUnreserved()) AS "Free space";
Introduit dans : v1.1.0À partir d’un état d’agrégation, cette fonction renvoie le résultat de l’agrégation (ou l’état finalisé lorsqu’un combinateur -State est utilisé).Syntaxe
WITH initializeAggregation('sumState', number) AS one_row_sum_stateSELECT number, finalizeAggregation(one_row_sum_state) AS one_row_sum, runningAccumulate(one_row_sum_state) AS cumulative_sumFROM numbers(5);
Introduite dans : v25.11.0Inverse les coordonnées x et y des objets géométriques. Cette opération permute la latitude et la longitude, ce qui est utile pour passer d’un système de coordonnées à un autre ou corriger l’ordre des coordonnées.Pour un Point, elle permute les coordonnées x et y. Pour les géométries complexes (LineString, Polygon, MultiPolygon, Ring, MultiLineString), elle applique récursivement la transformation à chaque paire de coordonnées.La fonction prend en charge à la fois les types géométriques individuels (Point, Ring, Polygon, MultiPolygon, LineString, MultiLineString) et le type Variant Geometry.Syntaxe
flipCoordinates(geometry)
Arguments
geometry — Géométrie à transformer. Types pris en charge : Point (Tuple(Float64, Float64)), Ring (Array(Point)), Polygon (Array(Ring)), MultiPolygon (Array(Polygon)), LineString (Array(Point)), MultiLineString (Array(LineString)) ou Geometry (un variant contenant l’un de ces types).
Introduit dans : v23.10.0Renvoie une version formatée, éventuellement sur plusieurs lignes, de la requête SQL fournie. Déclenche une erreur en cas d’erreur d’analyse syntaxique.
[example:multiline]Syntaxe
Introduit dans : v23.11.0Renvoie une version formatée, éventuellement sur plusieurs lignes, de la requête SQL fournie. Renvoie NULL en cas d’erreur d’analyse syntaxique.
[example:multiline]Syntaxe
Introduit dans : v23.10.0Comme formatQuery(), mais la chaîne formatée renvoyée ne contient aucun saut de ligne. Lève une exception en cas d’erreur d’analyse syntaxique.
[example:multiline]Syntaxe
Introduit dans : v23.11.0Comme formatQuery(), mais la chaîne formatée renvoyée ne contient aucun saut de ligne. Renvoie NULL en cas d’erreur d’analyse syntaxique.
[example:multiline]Syntaxe
Introduit dans : v22.11.0À partir d’une taille (nombre d’octets), cette fonction renvoie une taille lisible et arrondie avec un suffixe (KB, MB, etc.), sous forme de chaîne.Les opérations inverses de cette fonction sont parseReadableSize.Syntaxe
Introduit dans : v20.10.0Étant donné un nombre, cette fonction renvoie une valeur arrondie avec un suffixe (mille, million, milliard, etc.) sous forme de chaîne.Cette fonction accepte en entrée n’importe quel type numérique, mais le convertit en interne en Float64.
Les résultats peuvent être moins précis pour les grandes valeurs.Syntaxe
Introduit dans : v1.1.0À partir d’une taille (nombre d’octets), cette fonction renvoie une taille lisible et arrondie avec un suffixe (KiB, MiB, etc.) sous forme de chaîne.Les opérations inverses de cette fonction sont parseReadableSize, parseReadableSizeOrZero et parseReadableSizeOrNull.
Cette fonction accepte en entrée n’importe quel type numérique, mais les convertit en interne en Float64. Les résultats peuvent être moins précis avec de grandes valeurs.Syntaxe
Introduit dans : v20.12.0Étant donné un intervalle de temps (delta) en secondes ou une expressionINTERVAL, cette fonction renvoie un delta temporel sous forme de chaîne, avec année/mois/jour/heure/minute/seconde/milliseconde/microseconde/nanoseconde.Cette fonction accepte n’importe quel type numérique en entrée, mais les convertit en interne en Float64. Les résultats peuvent être moins précis avec des valeurs élevées.Lorsqu’une expressionINTERVAL est transmise, sa valeur est convertie en secondes. Les unités d’intervalle MONTH et supérieures (MONTH, QUARTER, YEAR) ne sont pas prises en charge, car elles ne représentent pas un intervalle de durée fixe en secondes.Syntaxe
column — Une colonne contenant un écart de temps numérique, ou une expression INTERVAL. Les unités d’intervalle MONTH et supérieures ne sont pas prises en charge. Float64 ou Interval
maximum_unit — Facultatif. Unité maximale à afficher. Valeurs acceptables : nanoseconds, microseconds, milliseconds, seconds, minutes, hours, days, months, years. Valeur par défaut : years. const String
minimum_unit — Facultatif. Unité minimale à afficher. Toutes les unités plus petites sont tronquées. Valeurs acceptables : nanoseconds, microseconds, milliseconds, seconds, minutes, hours, days, months, years. Si la valeur explicitement spécifiée est supérieure à maximum_unit, une exception est levée. Valeur par défaut : seconds si maximum_unit vaut seconds ou une unité supérieure, nanoseconds sinon. const String
Valeur renvoyéeRenvoie un écart de temps sous forme de chaîne. StringExemplesExemple d’utilisation
Query
SELECT arrayJoin([100, 12345, 432546534]) AS elapsed, formatReadableTimeDelta(elapsed) AS time_delta
Response
┌────elapsed─┬─time_delta─────────────────────────────────────────────────────┐│ 100 │ 1 minute and 40 seconds ││ 12345 │ 3 hours, 25 minutes and 45 seconds ││ 432546534 │ 13 years, 8 months, 17 days, 7 hours, 48 minutes and 54 seconds│└────────────┴────────────────────────────────────────────────────────────────┘
Avec l’unité la plus grande
Query
SELECT arrayJoin([100, 12345, 432546534]) AS elapsed, formatReadableTimeDelta(elapsed, 'minutes') AS time_delta
Response
┌────elapsed─┬─time_delta─────────────────────────────────────────────────────┐│ 100 │ 1 minute and 40 seconds ││ 12345 │ 205 minutes and 45 seconds ││ 432546534 │ 7209108 minutes and 54 seconds │└────────────┴─────────────────────────────────────────────────────────────────┘
Avec l’expression INTERVAL
Query
SELECT formatReadableTimeDelta(INTERVAL 12345 SECOND) AS time_delta
Response
┌─time_delta─────────────────────────┐│ 3 hours, 25 minutes and 45 seconds │└────────────────────────────────────┘
Introduite dans : v26.2.0Analyse la chaîne de requête fournie et lui applique des mutations aléatoires de l’AST (fuzzing). Renvoie la requête modifiée sous forme de chaîne de caractères. Non déterministe : chaque appel peut produire un résultat différent. Nécessite allow_fuzz_query_functions = 1.Syntaxe
fuzzQuery(query)
Arguments
query — La requête SQL à soumettre au fuzzing. String
Valeur renvoyéeLa chaîne de requête fuzzée StringExemplessimple
Query
SET allow_fuzz_query_functions = 1; SELECT fuzzQuery('SELECT 1');
number_of_columns — Le nombre souhaité de colonnes dans la structure de table générée. S’il est défini sur 0 ou Null, le nombre de colonnes sera choisi aléatoirement entre 1 et 128. Valeur par défaut : Null. UInt64
seed — Graine aléatoire utilisée pour produire des résultats stables. Si la graine n’est pas spécifiée ou si elle est définie sur Null, elle est générée aléatoirement. UInt64
Valeur renvoyéeStructure de table générée aléatoirement. StringExemplesExemple d’utilisation
Introduit dans : v25.1.0Génère et renvoie des nombres séquentiels à partir de la valeur précédente du compteur.
Cette fonction prend un argument de type String — un identifiant de série — ainsi qu’une valeur initiale facultative.
Le serveur doit être configuré avec Keeper.
Les séries sont stockées dans des nœuds Keeper sous le chemin, qui peut être configuré via series_keeper_path dans la configuration du serveur.Syntaxe
series_identifier — Identifiant de série const String
start_value — Facultatif. Valeur initiale du compteur. La valeur par défaut est 0. Remarque : cette valeur n’est utilisée que lors de la création d’une nouvelle série et est ignorée si la série existe déjà UInt*
Valeur renvoyéeRenvoie des nombres séquentiels à partir de la valeur précédente du compteur. UInt64Exemplespremier appel
Introduit dans : v24.5.0Renvoie la valeur d’un en-tête HTTP.
S’il n’existe pas d’en-tête de ce type ou si la requête actuelle n’est pas effectuée via l’interface HTTP, la fonction renvoie une chaîne vide.
Certains en-têtes HTTP (par ex. Authentication et X-ClickHouse-*) sont soumis à des restrictions.
Le paramètre allow_get_client_http_header est requisLa fonction nécessite que le paramètre allow_get_client_http_header soit activé.
Ce paramètre n’est pas activé par défaut pour des raisons de sécurité, car certains en-têtes, tels que Cookie, peuvent contenir des informations sensibles.
Pour cette fonction, les en-têtes HTTP sont sensibles à la casse.
Si la fonction est utilisée dans le contexte d’une requête distribuée, elle ne renvoie un résultat non vide que sur le nœud initiateur.Syntaxe
Introduit dans : v20.1.0Renvoie la valeur d’une macro du fichier de configuration du serveur.
Les macros sont définies dans la section <macros> du fichier de configuration et peuvent être utilisées pour distinguer les serveurs à l’aide de noms explicites, même si leurs noms d’hôte sont complexes.
Si la fonction est exécutée dans le contexte d’une table distribuée, elle génère une colonne normale avec des valeurs correspondant à chaque fragment.Syntaxe
getMacro(name)
Arguments
name — Le nom de la macro à récupérer. const String
Valeur renvoyéeRenvoie la valeur de la macro spécifiée. StringExemplesUtilisation de base
Introduit dans : v24.10.0Renvoie la valeur actuelle d’un paramètre, ou la valeur par défaut spécifiée dans le deuxième argument si le paramètre n’est pas défini dans le profil actuel.Syntaxe
Introduit dans : v23.3.0Reçoit l’expression ou l’identifiant, ainsi qu’une chaîne constante contenant le nom de la sous-colonne.Renvoie la sous-colonne demandée extraite de l’expression.Syntaxe
Introduit dans : v22.6.0Répertorie les chemins des flux de sérialisation d’un type de données.
Cette fonction est destinée à un usage de développement.Syntaxe
getTypeSerializationStreams(col)
Arguments
col — Colonne ou représentation sous forme de chaîne d’un type de données à partir de laquelle le type de données sera détecté. Any
Valeur renvoyéeRenvoie un tableau contenant tous les chemins des sous-flux de sérialisation. Array(String)Exemplestuple
Introduit dans : v20.5.0Prend un argument String constant et renvoie la valeur de la variable globale portant ce nom. Cette fonction est destinée à assurer la compatibilité avec MySQL et n’est ni nécessaire ni utile au fonctionnement normal de ClickHouse. Seules quelques variables globales factices sont définies.Syntaxe
Introduit dans : v1.1.0Vérifie si une colonne spécifique existe dans une table d’une base de données.
Pour les éléments d’une structure de données imbriquée, la fonction vérifie l’existence d’une colonne.
Pour la structure de données imbriquée elle-même, la fonction renvoie 0.Syntaxe
Introduit dans : v26.5.0Analyse une chaîne de requête SQL ClickHouse et renvoie un tableau de plages mises en surbrillance pour la coloration syntaxique.
Chaque plage est un tuple nommé contenant la position de début (en octets), la position de fin et le type de surbrillance.
Les types de surbrillance décrivent le rôle syntaxique du fragment (mot-clé, identifiant, fonction, etc.)
et peuvent être utilisés pour attribuer des couleurs dans une UI. Dans les motifs de chaîne LIKE et REGEXP, les métacaractères
et les caractères d’échappement sont mis en surbrillance séparément.Syntaxe
highlightQuery(query)
Arguments
query — Une chaîne de requête SQL ClickHouse. String.
Introduit dans : v20.5.0Renvoie le nom de l’hôte sur lequel cette fonction a été exécutée.
Si la fonction s’exécute sur un serveur distant (traitement distribué), le nom du serveur distant est renvoyé.
Si la fonction s’exécute dans le contexte d’une table distribuée, elle génère une colonne normale avec des valeurs correspondant à chaque shard.
Sinon, elle produit une valeur constante.Syntaxe
hostName()
Alias : hostnameArguments
Aucun.
Valeur renvoyéeRenvoie le nom d’hôte. StringExemplesExemple d’utilisation
Introduit dans : v1.1.0Cette fonction renvoie l’argument que vous lui passez, ce qui est utile pour le débogage et les tests. Elle vous permet de contourner l’utilisation des index afin d’observer à la place les performances d’un parcours complet. L’analyseur de requêtes ignore tout ce qui se trouve à l’intérieur des fonctions identity lorsqu’il recherche les index à utiliser, et désactive également le constant folding.Syntaxe
Introduit dans : v1.1.0Cette fonction est destinée au débogage et à l’introspection.
Elle ignore son argument et renvoie toujours 1.
Les arguments ne sont pas évalués.Lors de l’analyse de l’index, on suppose que l’argument de cette fonction n’est pas encapsulé dans indexHint.
Cela vous permet de sélectionner des données dans des plages d’index à l’aide de la condition correspondante, mais sans filtrage supplémentaire sur cette condition.
L’index de ClickHouse est sparse, et l’utilisation de indexHint renverra plus de données que si vous spécifiez directement la même condition.
Explication
Lorsque vous exécutez :
SELECT * FROM test WHERE key = 123;
ClickHouse effectue deux opérations :
Il utilise l’index pour trouver quelles granules (blocs d’environ 8192 lignes) peuvent contenir key = 123
Il lit ces granules et les filtre ligne par ligne pour ne renvoyer que les lignes où key = 123
Ainsi, même s’il lit 8 192 lignes sur disque, il ne renvoie que l’unique ligne qui correspond réellement.Avec indexHint, lorsque vous exécutez :
SELECT * FROM test WHERE indexHint(key = 123);
ClickHouse n’effectue qu’une seule opération :
Il utilise l’index pour trouver quelles granules peuvent contenir key = 123 et renvoie toutes les lignes de ces granules sans les filtrer.
Il renvoie les 8 192 lignes, y compris les lignes où key = 456, key = 789, etc. (Autrement dit, tout ce qui se trouvait stocké dans la même granule.)
indexHint() n’est pas fait pour améliorer les performances. Il sert au débogage et à comprendre comment fonctionne l’index de ClickHouse :
Quelles granules ma condition sélectionne-t-elle ?
Combien de lignes y a-t-il dans ces granules ?
Mon index est-il utilisé efficacement ?
Remarque : il n’est pas possible d’optimiser une requête avec la fonction indexHint. La fonction indexHint n’optimise pas la requête, car elle ne fournit aucune information supplémentaire pour l’analyse de la requête. Mettre une expression à l’intérieur de la fonction indexHint n’est en aucun cas préférable à ne pas utiliser la fonction indexHint. La fonction indexHint ne peut être utilisée qu’à des fins d’introspection et de débogage, et n’améliore pas les performances. Si vous voyez indexHint utilisé par quelqu’un d’autre que les contributeurs de ClickHouse, il s’agit probablement d’une erreur et vous devriez le supprimer.Syntaxe
indexHint(expression)
Arguments
expression — Toute expression utilisée pour la sélection de plages d’index. Expression
Valeur renvoyéeRenvoie 1 dans tous les cas. UInt8ExemplesExemple d’utilisation avec filtrage sur la date
Query
SELECT FlightDate AS k, count() FROM ontime WHERE indexHint(k = '2025-09-15') GROUP BY k ORDER BY k ASC;
Introduit dans : v1.1.0Renvoie l’ID de la requête initiale en cours.
D’autres paramètres d’une requête peuvent être extraits du champ initial_query_id de system.query_log.Contrairement à la fonction queryID, initialQueryID renvoie les mêmes résultats sur différents shards.Syntaxe
initialQueryID()
Alias : initial_query_idArguments
Aucun.
Valeur renvoyéeRenvoie l’ID de la requête initiale. StringExemplesExemple d’utilisation
Query
CREATE TABLE tmp (str String) ENGINE = Log;INSERT INTO tmp (*) VALUES ('a');SELECT count(DISTINCT t) FROM (SELECT initialQueryID() AS t FROM remote('127.0.0.{1..3}', currentDatabase(), 'tmp') GROUP BY queryID());
Introduit dans : v25.4.0Renvoie l’heure de début de la requête initiale en cours.
initialQueryStartTime renvoie les mêmes résultats sur différents shards.Syntaxe
initialQueryStartTime()
Alias : initial_query_start_timeArguments
Aucun.
Valeur renvoyéeRenvoie l’heure de début de la requête initiale en cours. DateTimeExemplesExemple d’utilisation
Query
CREATE TABLE tmp (str String) ENGINE = Log;INSERT INTO tmp (*) VALUES ('a');SELECT count(DISTINCT t) FROM (SELECT initialQueryStartTime() AS t FROM remote('127.0.0.{1..3}', currentDatabase(), 'tmp') GROUP BY queryID());
Introduit dans : v20.6.0Calcule le résultat d’une fonction d’agrégation à partir d’une valeur unique.
Cette fonction peut être utilisée pour initialiser des fonctions d’agrégation avec le combinateur -State.
Vous pouvez créer des états de fonctions d’agrégation et les insérer dans des colonnes de type AggregateFunction, ou utiliser des agrégats initialisés comme valeurs par défaut.Syntaxe
aggregate_function — Nom de la fonction d’agrégation à initialiser. String
arg1[, arg2, ...] — Arguments de la fonction d’agrégation. Any
Valeur renvoyéeRenvoie le résultat de l’agrégation pour chaque ligne transmise à la fonction. Le type de retour est le même que celui de la fonction dont initializeAggregation prend le premier argument. AnyExemplesUtilisation de base avec uniqState
Query
SELECT uniqMerge(state) FROM (SELECT initializeAggregation('uniqState', number % 3) AS state FROM numbers(10000));
Response
┌─uniqMerge(state)─┐│ 3 │└──────────────────┘
Utilisation de sumState et de finalizeAggregation
Query
SELECT finalizeAggregation(state), toTypeName(state) FROM (SELECT initializeAggregation('sumState', number % 3) AS state FROM numbers(5));
Introduit dans : v20.3.0Indique si l’argument est une expression constante.
Une expression constante est une expression dont le résultat est connu lors de l’analyse de la requête, c’est-à-dire avant l’exécution.
Par exemple, les expressions construites à partir de littéraux sont des expressions constantes.
Cette fonction est principalement destinée au développement, au débogage et à la démonstration.Syntaxe
Introduit dans : v20.8.0Vérifie si un nombre décimal comporte trop de chiffres pour être correctement représenté dans un type de données Decimal avec la précision donnée.Syntaxe
precision — Facultatif. Précision du type Decimal. Si elle est omise, la précision initiale du premier argument est utilisée. UInt8
Valeur renvoyéeRenvoie 1 si la valeur décimale comporte plus de chiffres que n’en autorise sa précision, 0 si la valeur décimale respecte la précision spécifiée. UInt8ExemplesExemple d’utilisation
Introduit dans : v18.16.0Permet d’extraire des données d’une table de la même manière que depuis un dictionnaire.
Récupère des données à partir de tables Join à l’aide de la clé de jointure spécifiée.
Prend uniquement en charge les tables créées avec l’ENGINE = Join(ANY, LEFT, <join_keys>)instruction.
join_storage_table_name — Un identifiant qui indique où rechercher. L’identifiant est recherché dans la base de données default (voir le paramètre default_database dans le fichier de configuration). Pour remplacer la base de données par défaut, utilisez la requête USE database_name ou précisez la base de données et la table en les séparant par un point, comme database_name.table_name. String
value_column — Le nom de la colonne de la table qui contient les données requises. const String
Introduit dans : v20.4.0Permet d’extraire des données d’une table de la même manière que depuis un dictionnaire.
Récupère des données depuis des tables Join à l’aide de la clé de jointure spécifiée.
Contrairement à joinGet, renvoie NULL lorsque la clé est absente.
Prend uniquement en charge les tables créées avec l’instructionENGINE = Join(ANY, LEFT, <join_keys>).
join_storage_table_name — Un identifiant qui indique où effectuer la recherche. L’identifiant est recherché dans la base de données default (voir le paramètre default_database dans le fichier de configuration). Pour remplacer la base de données par défaut, utilisez la requête USE database_name ou indiquez la base de données et la table en les séparant par un point, comme database_name.table_name. String
value_column — Le nom de la colonne de la table qui contient les données requises. const String
Introduit dans : v18.12.0Renvoie la position d’une valeur dans le dictionnaire d’une colonne LowCardinality. Les positions commencent à 1. Comme LowCardinality utilise des dictionnaires propres à chaque part, cette fonction peut renvoyer des positions différentes pour une même valeur selon les parts.Syntaxe
Valeur renvoyéeLa position de la valeur dans le dictionnaire de la part actuelle. UInt64ExemplesExemples d’utilisation
Query
DROP TABLE IF EXISTS test;CREATE TABLE test (s LowCardinality(String)) ENGINE = Memory;-- create two parts:INSERT INTO test VALUES ('ab'), ('cd'), ('ab'), ('ab'), ('df');INSERT INTO test VALUES ('ef'), ('cd'), ('ab'), ('cd'), ('ef');SELECT s, lowCardinalityIndices(s) FROM test;
Response
┌─s──┬─lowCardinalityIndices(s)─┐│ ab │ 1 ││ cd │ 2 ││ ab │ 1 ││ ab │ 1 ││ df │ 3 │└────┴──────────────────────────┘┌─s──┬─lowCardinalityIndices(s)─┐│ ef │ 1 ││ cd │ 2 ││ ab │ 3 ││ cd │ 2 ││ ef │ 1 │└────┴──────────────────────────┘
Introduit dans : v18.12.0Renvoyer les valeurs du dictionnaire d’une colonne LowCardinality.
Si le bloc est plus petit ou plus grand que la taille du dictionnaire, le résultat sera tronqué ou complété avec des valeurs par défaut.
Comme LowCardinality utilise des dictionnaires par part, cette fonction peut renvoyer des valeurs de dictionnaire différentes d’une part à l’autre.Syntaxe
Valeur renvoyéeRenvoie les clés du dictionnaire. UInt64ExempleslowCardinalityKeys
Query
DROP TABLE IF EXISTS test;CREATE TABLE test (s LowCardinality(String)) ENGINE = Memory;-- create two parts:INSERT INTO test VALUES ('ab'), ('cd'), ('ab'), ('ab'), ('df');INSERT INTO test VALUES ('ef'), ('cd'), ('ab'), ('cd'), ('ef');SELECT s, lowCardinalityKeys(s) FROM test;
Response
┌─s──┬─lowCardinalityKeys(s)─┐│ ef │ ││ cd │ ef ││ ab │ cd ││ cd │ ab ││ ef │ │└────┴───────────────────────┘┌─s──┬─lowCardinalityKeys(s)─┐│ ab │ ││ cd │ ab ││ ab │ cd ││ ab │ df ││ df │ │└────┴───────────────────────┘
Introduit dans : v1.1.0Transforme une constante en une colonne complète contenant une seule valeur.
Les colonnes complètes et les constantes sont représentées différemment en mémoire.
Les fonctions exécutent généralement un code différent pour les arguments normaux et constants, même si le résultat devrait en principe être le même.
Cette fonction peut être utilisée pour déboguer ce comportement.Syntaxe
Valeur renvoyéeRenvoie une colonne complète contenant la valeur constante. AnyExemplesExemple d’utilisation
Query
-- In the example below the `countMatches` function expects a constant second argument.-- This behaviour can be debugged by using the `materialize` function to turn a constant into a full column,-- verifying that the function throws an error for a non-constant argument.SELECT countMatches('foobarfoo', 'foo');SELECT countMatches('foobarfoo', materialize('foo'));
Response
2Code: 44. DB::Exception: Received from localhost:9000. DB::Exception: Illegal type of argument #2 'pattern' of function countMatches, expected constant String, got String
Introduit dans : v23.10.0Calcule la taille d’échantillon minimale requise pour un test A/B comparant les moyennes d’une métrique continue dans deux échantillons.Utilise la formule décrite dans cet article.
Suppose des tailles égales pour les groupes de traitement et témoin.
Renvoie la taille d’échantillon requise pour un groupe (c’est-à-dire que la taille d’échantillon requise pour l’ensemble de l’expérience est égale à deux fois la valeur renvoyée).
Suppose également une variance égale de la métrique testée dans les groupes de traitement et témoin.Syntaxe
baseline — Valeur de référence d’une métrique. (U)Int* ou Float*
sigma — Écart type de référence d’une métrique. (U)Int* ou Float*
mde — Effet minimal détectable (MDE) en pourcentage de la valeur de référence (par ex. pour une valeur de référence de 112.25, un MDE de 0.03 correspond à une variation attendue de 112.25 ± 112.25*0.03). (U)Int* ou Float*
power — Puissance statistique requise d’un test (1 - probabilité d’une erreur de type II). (U)Int* ou Float*
alpha — Niveau de signification requis d’un test (probabilité d’une erreur de type I). (U)Int* ou Float*
Valeur renvoyéeRenvoie un Tuple nommé avec 3 éléments : minimum_sample_size, detect_range_lower et detect_range_upper. Il s’agit respectivement de la taille d’échantillon requise, de la borne inférieure de la plage de valeurs non détectables avec la taille d’échantillon requise renvoyée, calculée comme baseline * (1 - mde), et de la borne supérieure de la plage de valeurs non détectables avec la taille d’échantillon requise renvoyée, calculée comme baseline * (1 + mde) (Float64). Tuple(Float64, Float64, Float64)ExemplesminSampleSizeContinuous
Query
SELECT minSampleSizeContinuous(112.25, 21.1, 0.03, 0.80, 0.05) AS sample_size
Introduit dans : v22.6.0Calcule la taille d’échantillon minimale requise pour un test A/B comparant les conversions (proportions) entre deux échantillons.Utilise la formule décrite dans cet article. Suppose des tailles égales pour les groupes de traitement et témoin. Renvoie la taille d’échantillon requise pour un groupe (c.-à-d. que la taille d’échantillon requise pour l’ensemble de l’expérience est le double de la valeur renvoyée).Syntaxe
mde — Effet minimal détectable (MDE), exprimé en points de pourcentage (par ex., pour une conversion de référence de 0.25, un MDE de 0.03 correspond à une variation attendue vers 0.25 ± 0.03). Float*
power — Puissance statistique requise pour un test (1 - probabilité d’erreur de type II). Float*
alpha — Niveau de signification requis pour un test (probabilité d’erreur de type I). Float*
Valeur renvoyéeRenvoie un Tuple nommé avec 3 éléments : minimum_sample_size, detect_range_lower, detect_range_upper. Il s’agit, respectivement, de la taille d’échantillon requise, de la borne inférieure de la plage de valeurs non détectables avec la taille d’échantillon requise renvoyée, calculée comme baseline - mde, et de la borne supérieure de la plage de valeurs non détectables avec la taille d’échantillon requise renvoyée, calculée comme baseline + mde. Tuple(Float64, Float64, Float64)ExemplesminSampleSizeConversion
Query
SELECT minSampleSizeConversion(0.25, 0.03, 0.80, 0.05) AS sample_size
Introduit dans : v20.1.0Renvoie une valeur d’une colonne à l’offset spécifié par rapport à la ligne courante.
Cette fonction est déconseillée et sujette aux erreurs, car elle s’appuie sur l’ordre physique des blocs de données, qui peut ne pas correspondre à l’ordre logique attendu par les utilisateurs.
Envisagez plutôt d’utiliser de véritables fonctions de fenêtre.La fonction peut être activée en définissant allow_deprecated_error_prone_window_functions = 1.Syntaxe
offset — Le décalage par rapport à la ligne actuelle. Les valeurs positives portent vers l’avant, les valeurs négatives vers l’arrière. Integer
default_value — Facultatif. Valeur à renvoyer si le décalage dépasse les limites des données. Si elle n’est pas spécifiée, la valeur par défaut du type de colonne est utilisée. Any
Valeur renvoyéeRenvoie une valeur au décalage spécifié, ou la valeur par défaut si elle est hors limites. AnyExemplesExemple d’utilisation
Query
SELECT number, neighbor(number, 2) FROM system.numbers LIMIT 10;
Introduit dans : v20.8.0Remplace les littéraux, les suites de littéraux et les alias complexes (contenant des espaces, plus de deux chiffres ou d’au moins 36 octets, comme les UUID) par le caractère de substitution ?.Syntaxe
Introduit dans : v21.2.0Remplace les littéraux et les séquences de littéraux par le caractère de substitution ?, mais ne remplace pas les alias complexes (contenant des espaces, plus de deux chiffres ou d’une longueur d’au moins 36 octets, comme les UUIDs).
Cela permet de mieux analyser les journaux de requêtes complexes.Syntaxe
Valeur renvoyéeRenvoie la séquence de caractères donnée avec des marqueurs de substitution. StringExemplesExemple d’utilisation
Query
SELECT normalizeQuery('SELECT 1 AS aComplexName123'), normalizeQueryKeepNames('SELECT 1 AS aComplexName123')
Response
┌─normalizeQuery('SELECT 1 AS aComplexName123')─┬─normalizeQueryKeepNames('SELECT 1 AS aComplexName123')─┐│ SELECT ? AS `?` │ SELECT ? AS aComplexName123 │└───────────────────────────────────────────────┴────────────────────────────────────────────────────────┘
Introduit dans : v20.8.0Renvoie des valeurs de hachage 64 bits identiques, sans les valeurs des littéraux, pour des requêtes similaires.
Peut être utile pour l’analyse des journaux de requêtes.Syntaxe
Introduit dans : v21.2.0Comme normalizedQueryHash, elle renvoie des valeurs de hachage 64 bits identiques pour des requêtes similaires, sans les valeurs des littéraux, mais ne remplace pas les alias complexes (contenant des espaces, plus de deux chiffres ou d’une longueur d’au moins 36 octets, comme les UUID) par un caractère de substitution avant le hachage.
Peut être utile pour analyser les journaux de requêtes.Syntaxe
Valeur renvoyéeRenvoie une valeur de hachage sur 64 bits. UInt64ExemplesExemple d’utilisation
Query
SELECT normalizedQueryHash('SELECT 1 AS `xyz123`') != normalizedQueryHash('SELECT 1 AS `abc123`') AS normalizedQueryHash;SELECT normalizedQueryHashKeepNames('SELECT 1 AS `xyz123`') != normalizedQueryHashKeepNames('SELECT 1 AS `abc123`') AS normalizedQueryHashKeepNames;
Introduit dans : v26.4.0Masque une requête SQL en remplaçant les identifiants par des mots aléatoires et les littéraux par des valeurs aléatoires, tout en préservant la structure de la requête.Cette fonction est utile pour anonymiser les requêtes avant de les consigner dans les logs ou de les partager à des fins de débogage.
Des lignes différentes produiront des résultats masqués différents, même pour la même requête en entrée, ce qui aide
à préserver la confidentialité lors du traitement de plusieurs requêtes.Le paramètre facultatif tag empêche l’élimination des sous-expressions communes lorsque le même appel de fonction
est utilisé plusieurs fois dans une requête. Cela garantit que chaque appel produit un résultat masqué différent.Fonctionnalités :
Remplace les noms de table, les noms de colonnes et les alias par des mots aléatoires
Remplace les littéraux numériques et textuels par des valeurs aléatoires
Préserve la structure globale de la requête et la syntaxe SQL
Produit des résultats différents pour des lignes différentes
tag — Facultatif. Une valeur permettant d’éviter l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois.
Valeur renvoyéeLa requête obfusquée, dans laquelle les identifiants et les littéraux sont remplacés tout en préservant la structure d’origine de la requête. StringExemplesUtilisation de base
Query
SELECT obfuscateQuery('SELECT name, age FROM users WHERE age > 30')
Response
SELECT fruit, number FROM table WHERE number > 12
Avec un tag pour éviter l’élimination des sous-expressions communes
Query
SELECT obfuscateQuery('SELECT * FROM t', 1), obfuscateQuery('SELECT * FROM t', 2)
Response
SELECT a FROM b, SELECT c FROM d
Des lignes différentes donnent des résultats différents
Query
SELECT obfuscateQuery('SELECT 1') AS a, obfuscateQuery('SELECT 1') AS b
Introduite dans : v26.4.0Obfusque une requête SQL à l’aide d’une seed spécifiée afin d’obtenir des résultats déterministes.Contrairement à obfuscateQuery(), cette fonction produit des résultats déterministes lorsqu’elle reçoit la même seed.
Cela est utile lorsque vous avez besoin d’une obfuscation constante sur plusieurs exécutions, ou lorsque vous souhaitez
reproduire la même requête obfusquée à des fins de test ou de débogage.Fonctionnalités :
Obfuscation déterministe basée sur la seed fournie
La même seed produit toujours le même résultat obfusqué
Des seeds différentes produisent des résultats différents
Préserve la structure de la requête, comme obfuscateQuery()
seed — La valeur d’initialisation pour l’obfuscation. La même valeur d’initialisation produit des résultats déterministes. Integer ou String
Valeur renvoyéeLa requête obfusquée, générée de manière déterministe à partir de la valeur d’initialisation fournie. StringExemplesObfuscation déterministe avec une valeur d’initialisation entière
Query
SELECT obfuscateQueryWithSeed('SELECT name FROM users', 42)
Response
SELECT fruit FROM table
Obfuscation déterministe avec une valeur d’initialisation de type chaîne
Query
SELECT obfuscateQueryWithSeed('SELECT id, value FROM data', 'myseed')
Introduit dans : v24.6.0À partir d’une chaîne contenant une taille en octets et B, KiB, KB, MiB, MB, etc. comme unité (c.-à-d. ISO/IEC 80000-13 ou unité décimale d’octets), cette fonction renvoie le nombre d’octets correspondant.
Si la fonction ne parvient pas à analyser la valeur d’entrée, elle lève une exception.Les opérations inverses de cette fonction sont formatReadableSize et formatReadableDecimalSize.Syntaxe
parseReadableSize(x)
Arguments
x — Taille dans un format lisible avec ISO/IEC 80000-13 ou une unité décimale d’octets. String
Valeur renvoyéeRenvoyer le nombre d’octets, arrondi à l’entier supérieur le plus proche. UInt64ExemplesExemple d’utilisation
Query
SELECT arrayJoin(['1 B', '1 KiB', '3 MB', '5.314 KiB']) AS readable_sizes, parseReadableSize(readable_sizes) AS sizes;
Introduit dans : v24.6.0Étant donnée une chaîne contenant une taille en octets et B, KiB, KB, MiB, MB, etc. comme unité (c.-à-d. ISO/IEC 80000-13 ou une unité d’octets décimale), cette fonction renvoie le nombre d’octets correspondant.
Si la fonction ne parvient pas à analyser la valeur d’entrée, elle renvoie NULL.Les opérations inverses de cette fonction sont formatReadableSize et formatReadableDecimalSize.Syntaxe
parseReadableSizeOrNull(x)
Arguments
x — Taille en format lisible avec ISO/IEC 80000-13 ou une unité d’octets décimale. String
Valeur renvoyéeRenvoie le nombre d’octets, arrondi à l’entier supérieur, ou NULL si l’entrée ne peut pas être interprétée Nullable(UInt64)ExemplesExemple d’utilisation
Query
SELECT arrayJoin(['1 B', '1 KiB', '3 MB', '5.314 KiB', 'invalid']) AS readable_sizes, parseReadableSizeOrNull(readable_sizes) AS sizes;
Introduit dans : v24.6.0Étant donnée une chaîne contenant une taille en octets avec B, KiB, KB, MiB, MB, etc. comme unité (c.-à-d. ISO/IEC 80000-13 ou unité d’octets décimale), cette fonction renvoie le nombre d’octets correspondant.
Si la fonction ne parvient pas à analyser la valeur d’entrée, elle renvoie 0.Les opérations inverses de cette fonction sont formatReadableSize et formatReadableDecimalSize.Syntaxe
parseReadableSizeOrZero(x)
Arguments
x — Taille lisible avec une unité de taille ISO/IEC 80000-13 ou une unité de taille décimale. String
Valeur renvoyéeRenvoie le nombre d’octets, arrondi à l’entier supérieur le plus proche, ou 0 s’il est impossible d’analyser l’entrée. UInt64ExemplesExemple d’utilisation
Query
SELECT arrayJoin(['1 B', '1 KiB', '3 MB', '5.314 KiB', 'invalid']) AS readable_sizes, parseReadableSizeOrZero(readable_sizes) AS sizes;
Introduit dans : v22.7.0Analyse une suite de nombres suivie d’un élément ressemblant à une unité de temps.La chaîne de décalage temporel utilise les spécifications d’unité de temps suivantes :
years, year, yr, y
months, month, mo
weeks, week, w
days, day, d
hours, hour, hr, h
minutes, minute, min, m
seconds, second, sec, s
milliseconds, millisecond, millisec, ms
microseconds, microsecond, microsec, μs, µs, us
nanoseconds, nanosecond, nanosec, ns
Plusieurs unités de temps peuvent être combinées à l’aide de séparateurs (espace, ;, -, +, ,, :).La durée des années et des mois est approximative : une année correspond à 365 jours et un mois à 30,5 jours.Syntaxe
parseTimeDelta(timestr)
Arguments
timestr — Une suite de nombres suivie d’un élément ressemblant à une unité de temps. String
Valeur renvoyéeLe nombre de secondes. Float64ExemplesExemple d’utilisation
Cette fonction est lente et ne doit pas être utilisée sur un grand nombre de lignes.
Syntaxe
partitionId(column1[, column2, ...])
Alias : partitionIDArguments
column1, column2, ... — Colonne pour laquelle l’identifiant de partition doit être renvoyé.
Valeur renvoyéeRenvoie l’identifiant de partition de la ligne. StringExemplesExemple d’utilisation
Query
DROP TABLE IF EXISTS tab;CREATE TABLE tab( i int, j int)ENGINE = MergeTreePARTITION BY iORDER BY tuple();INSERT INTO tab VALUES (1, 1), (1, 2), (1, 3), (2, 4), (2, 5), (2, 6);SELECT i, j, partitionId(i), _partition_id FROM tab ORDER BY i, j;
Introduit dans : v21.9.0Renvoie l’ID de la requête en cours.
Les autres paramètres d’une requête peuvent être extraits du champ query_id de la table system.query_log.Contrairement à la fonction initialQueryID, queryID peut renvoyer des résultats différents selon les shards.Syntaxe
queryID()
Alias : query_idArguments
Aucun.
Valeur renvoyéeRenvoie l’identifiant de la requête en cours. StringExemplesExemple d’utilisation
Query
CREATE TABLE tmp (str String) ENGINE = Log;INSERT INTO tmp (*) VALUES ('a');SELECT count(DISTINCT t) FROM (SELECT queryID() AS t FROM remote('127.0.0.{1..3}', currentDatabase(), 'tmp') GROUP BY queryID());
Introduit dans : v1.1.0Pour chaque bloc traité par rowNumberInBlock, renvoie le numéro de la ligne courante.Le numéro renvoyé commence à 0 pour chaque bloc.Syntaxe
rowNumberInBlock()
Arguments
Aucun.
Valeur renvoyéeRenvoie le numéro ordinal de la ligne dans le bloc de données, à partir de 0. UInt64ExemplesExemple d’utilisation
Introduit dans : v1.1.0Accumule les états d’une fonction d’agrégation pour chaque ligne d’un bloc de données.
ObsolèteL’état est réinitialisé pour chaque nouveau bloc de données.
En raison de ce comportement sujet aux erreurs, cette fonction est obsolète ; il est recommandé d’utiliser plutôt les fonctions de fenêtre.
Vous pouvez utiliser le paramètre allow_deprecated_error_prone_window_functions pour autoriser l’utilisation de cette fonction.
grouping — Facultatif. Clé de regroupement. L’état de la fonction est réinitialisé si la valeur de grouping change. Il peut s’agir de n’importe quel type de données pris en charge pour lequel l’opérateur d’égalité est défini. Any
Valeur renvoyéeRenvoie le résultat accumulé pour chaque ligne. AnyExemplesExemple d’utilisation avec initializeAggregation
Query
WITH initializeAggregation('sumState', number) AS one_row_sum_stateSELECT number, finalizeAggregation(one_row_sum_state) AS one_row_sum, runningAccumulate(one_row_sum_state) AS cumulative_sumFROM numbers(5);
Introduite dans : v21.3.0Calcule le nombre d’événements simultanés.
Chaque événement possède une heure de début et une heure de fin.
L’heure de début est incluse dans l’événement, tandis que l’heure de fin ne l’est pas.
Les colonnes contenant l’heure de début et l’heure de fin doivent être du même type de données.
La fonction calcule le nombre total d’événements actifs (simultanés) pour chaque heure de début d’événement.
PrérequisLes événements doivent être triés par heure de début dans l’ordre croissant.
Si cette condition n’est pas respectée, la fonction génère une exception.
Chaque bloc de données est traité séparément.
Si des événements provenant de différents blocs de données se chevauchent, ils ne peuvent pas être traités correctement.
Introduit dans : v1.1.0Calcule la différence entre les valeurs de deux lignes consécutives dans le bloc de données.
Renvoie 0 pour la première ligne, puis, pour les lignes suivantes, la différence par rapport à la ligne précédente.
ObsolèteRenvoie uniquement les différences à l’intérieur du bloc de données en cours de traitement.
En raison de ce comportement sujet aux erreurs, cette fonction est obsolète.
Il est recommandé d’utiliser à la place les fonctions de fenêtre.Vous pouvez utiliser le paramètre allow_deprecated_error_prone_window_functions pour autoriser l’utilisation de cette fonction.
Le résultat de la fonction dépend des blocs de données concernés et de l’ordre des données dans le bloc.
L’ordre des lignes lors du calcul de runningDifference() peut différer de l’ordre des lignes renvoyées à l’utilisateur.
Pour éviter cela, vous pouvez créer une sous-requête avec ORDER BY et appeler la fonction en dehors de la sous-requête.
Veuillez noter que la taille du bloc influe sur le résultat.
L’état interne de runningDifference est réinitialisé pour chaque nouveau bloc.Syntaxe
runningDifference(x)
Arguments
x — Colonne pour laquelle calculer la différence entre valeurs consécutives. Any
Valeur renvoyéeRenvoie la différence entre des valeurs consécutives, avec 0 pour la première ligne.ExemplesExemple d’utilisation
Query
SELECT EventID, EventTime, runningDifference(EventTime) AS deltaFROM( SELECT EventID, EventTime FROM events WHERE EventDate = '2025-11-24' ORDER BY EventTime ASC LIMIT 5);
Introduit dans : v1.1.0Calcule la différence entre les valeurs de lignes consécutives dans un bloc de données, mais contrairement à runningDifference, cette fonction renvoie la valeur réelle de la première ligne au lieu de 0.
ObsolèteRenvoie uniquement les différences à l’intérieur du bloc de données en cours de traitement.
En raison de ce comportement propice aux erreurs, cette fonction est obsolète.
Il est recommandé d’utiliser plutôt les fonctions de fenêtre.Vous pouvez utiliser le paramètre allow_deprecated_error_prone_window_functions pour autoriser l’utilisation de cette fonction.
Syntaxe
runningDifferenceStartingWithFirstValue(x)
Arguments
x — Colonne pour laquelle calculer la différence entre valeurs consécutives. Any
Valeur renvoyéeRenvoie la différence entre valeurs consécutives ; pour la première ligne, renvoie la valeur de cette ligne. AnyExemplesExemple d’utilisation
Query
SELECT number, runningDifferenceStartingWithFirstValue(number) AS diffFROM numbers(5);
Introduit dans : v20.1.0Renvoie l’UUID (v4) aléatoire et unique généré au premier démarrage du serveur.
Cet UUID est conservé, c’est-à-dire que les deuxième, troisième, etc. démarrages du serveur renvoient le même UUID.Syntaxe
serverUUID()
Arguments
Aucun.
Valeur renvoyéeRenvoie l’UUID aléatoire du serveur. UUIDExemplesExemple d’utilisation
Introduit dans : v21.9.0Renvoyer le nombre total de shards pour une requête distribuée.
Si une requête n’est pas distribuée, la valeur constante 0 est renvoyée.Syntaxe
shardCount()
Arguments
Aucun.
Valeur renvoyéeRenvoie le nombre total de shards, ou 0. UInt32ExemplesExemple d’utilisation
Query
-- See shardNum() example above which also demonstrates shardCount()CREATE TABLE shard_count_example (dummy UInt8)ENGINE=Distributed(test_cluster_two_shards_localhost, system, one, dummy);SELECT shardCount() FROM shard_count_example;
Introduit dans : v21.9.0Renvoie l’indice du shard qui traite une partie des données dans une requête distribuée.
Les indices commencent à 1.
Si une requête n’est pas distribuée, la valeur constante 0 est renvoyée.Syntaxe
shardNum()
Arguments
Aucun.
Valeur renvoyéeRenvoie l’index du shard ou la constante 0. UInt32ExemplesExemple d’utilisation
Introduit dans : v22.6.0Affiche des informations sur le certificat Secure Sockets Layer (SSL) du serveur actuel, s’il est configuré.
Consultez Configuration de TLS pour plus d’informations sur la façon de configurer ClickHouse pour utiliser des certificats OpenSSL afin de valider les connexions.Syntaxe
showCertificate()
Arguments
Aucun.
Valeur renvoyéeRenvoie une map de paires clé-valeur associées au certificat SSL configuré. Map(String, String)ExemplesExemple d’utilisation
Introduit dans : v1.1.0Suspend l’exécution d’une requête pendant le nombre de secondes indiqué.
La fonction est principalement utilisée à des fins de test et de débogage.La fonction sleep() ne doit généralement pas être utilisée dans des environnements de production, car elle peut nuire aux performances des requêtes et à la réactivité du système.
Cependant, elle peut s’avérer utile dans les scénarios suivants :
Test : lors de tests ou de benchmarking de ClickHouse, vous pouvez vouloir simuler des délais ou introduire des pauses afin d’observer comment le système se comporte dans certaines conditions.
Débogage : si vous devez examiner l’état du système ou l’exécution d’une requête à un moment précis, vous pouvez utiliser sleep() pour introduire une pause, ce qui vous permet d’inspecter ou de collecter des informations pertinentes.
Simulation : dans certains cas, vous pouvez vouloir simuler des situations réelles où des délais ou des pauses se produisent, comme la latence réseau ou des dépendances à des systèmes externes.
Il est important d’utiliser la fonction sleep() avec discernement et uniquement lorsque cela est nécessaire, car elle peut affecter les performances globales et la réactivité de votre système ClickHouse.
Pour des raisons de sécurité, la fonction ne peut être exécutée que dans le profil utilisateur par défaut (avec allow_sleep activé).Syntaxe
sleep(seconds)
Arguments
seconds — Le nombre de secondes pendant lequel suspendre l’exécution de la requête, dans la limite de 3 secondes. Il peut s’agir d’une valeur à virgule flottante pour spécifier des fractions de seconde. const UInt* ou const Float*
-- This query will pause for 2 seconds before completing.-- During this time, no results will be returned, and the query will appear to be hanging or unresponsive.SELECT sleep(2);
Response
┌─sleep(2)─┐│ 0 │└──────────┘1 row in set. Elapsed: 2.012 sec.
Introduit dans : v1.1.0Met en pause l’exécution d’une requête pendant un nombre donné de secondes pour chaque ligne du jeu de résultats.La fonction sleepEachRow() est principalement utilisée à des fins de test et de débogage, à l’instar de la fonction sleep().
Elle permet de simuler des délais ou d’introduire des pauses dans le traitement de chaque ligne, ce qui peut être utile dans des scénarios tels que :
Test : lors de tests ou de benchmarks de performance de ClickHouse dans des conditions spécifiques, vous pouvez utiliser sleepEachRow() pour simuler des délais ou introduire des pauses pour chaque ligne traitée.
Débogage : si vous devez examiner l’état du système ou l’exécution d’une requête pour chaque ligne traitée, vous pouvez utiliser sleepEachRow() pour introduire des pauses et ainsi inspecter le système ou recueillir les informations pertinentes.
Simulation : dans certains cas, vous pouvez vouloir reproduire des scénarios réels dans lesquels des délais ou des pauses surviennent pour chaque ligne traitée, par exemple lors d’interactions avec des systèmes externes ou en présence de latences réseau.
Comme pour la fonction sleep(), il est important d’utiliser sleepEachRow() avec discernement et uniquement lorsque nécessaire, car elle peut affecter de manière significative les performances globales et la réactivité de votre système ClickHouse, en particulier avec des jeux de résultats volumineux.
Syntaxe
sleepEachRow(seconds)
Arguments
seconds — Le nombre de secondes pendant lequel l’exécution de la requête est mise en pause pour chaque ligne du jeu de résultats, avec un maximum de 3 secondes. Il peut s’agir d’une valeur à virgule flottante pour spécifier des fractions de seconde. const UInt* ou const Float*
Valeur renvoyéeRenvoie 0 pour chaque ligne. UInt8ExemplesExemple d’utilisation
Query
-- The output will be delayed, with a 0.5-second pause between each row.SELECT number, sleepEachRow(0.5) FROM system.numbers LIMIT 5;
Introduit dans : v23.8.0Convertit la structure d’une table ClickHouse en schéma au format Protobuf.Cette fonction prend une définition de structure de table ClickHouse et la convertit en définition de schéma Protocol Buffers (Protobuf)
en syntaxe proto3. Elle est utile pour générer des schémas Protobuf correspondant à la structure de vos tables ClickHouse
pour l’échange de données.Syntaxe
structure — Définition de la structure d’une table ClickHouse sous forme de chaîne de caractères (par ex. ‘column1 Type1, column2 Type2’). String
message_name — Nom du type de message Protobuf dans le schéma généré. String
Valeur renvoyéeRenvoie une définition de schéma Protobuf en syntaxe proto3 correspondant à la structure ClickHouse en entrée. StringExemplesConversion d’une structure ClickHouse en schéma Protobuf
Query
SELECT structureToProtobufSchema('s String, x UInt32', 'MessageName') FORMAT TSVRaw;
Response
syntax = "proto3";message MessageName{ bytes s = 1; uint32 x = 2;}
Introduit dans : v20.12.0Renvoie le numéro du port TCP de l’interface native sur lequel le serveur écoute.
Si elle est exécutée dans le contexte d’une table distribuée, cette fonction génère une colonne ordinaire avec des valeurs propres à chaque shard.
Sinon, elle produit une valeur constante.Syntaxe
tcpPort()
Arguments
Aucun.
Valeur renvoyéeRenvoie le numéro du port TCP. UInt16ExemplesExemple d’utilisation
Introduit dans : v1.1.0Lève une exception si l’argument x est vrai.
Pour utiliser l’argument error_code, le paramètre de configuration allow_custom_error_code_in_throw doit être activé.Syntaxe
Valeur renvoyéeRenvoie 0 si la condition est false, et lève une exception si la condition est true. UInt8ExemplesExemple d’utilisation
Query
SELECT throwIf(number = 3, 'Too many') FROM numbers(10);
Response
↙ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.) Received exception from server (version 19.14.1):Code: 395. DB::Exception: Received from localhost:9000. DB::Exception: Too many.
Introduit dans : v1.1.0Renvoie le nom interne du type de données de la valeur donnée.
Contrairement à la fonction toTypeName, le type de données renvoyé peut inclure des colonnes d’encapsulation internes telles que Const et LowCardinality.Syntaxe
toColumnTypeName(value)
Arguments
value — Valeur pour laquelle renvoyer le type de données interne. Any
Valeur renvoyéeRenvoie le type de données interne utilisé pour représenter la valeur. StringExemplesExemple d’utilisation
Query
SELECT toColumnTypeName(CAST('2025-01-01 01:02:03' AS DateTime));
Introduit dans : v1.1.0Renvoie le nom du type de l’argument passé.
Si NULL est passé, la fonction renvoie le type Nullable(Nothing), qui correspond à la représentation interne de NULL dans ClickHouse.Syntaxe
Introduit dans : v26.5.0Tokenise une chaîne de requête ClickHouse SQL et renvoie un tableau de tokens.
Chaque token est un tuple nommé comprenant la position de début (en octets), la position de fin et le type de token.Syntaxe
tokenizeQuery(query)
Arguments
query — Une chaîne de requête en ClickHouse SQL. String.
Introduit dans : v22.6.0Renvoie l’ID d’une transaction.
Cette fonction fait partie d’un ensemble de fonctionnalités expérimentales.
Activez la prise en charge expérimentale des transactions en ajoutant ce paramètre à votre configuration :
Introduit dans : v22.6.0Renvoie l’instantané le plus récent (Commit Sequence Number) d’une transaction disponible à la lecture.
Cette fonction fait partie d’un ensemble de fonctionnalités expérimentales. Activez la prise en charge expérimentale des transactions en ajoutant ce paramètre à votre configuration :
Introduit dans : v22.6.0Renvoie l’instantané le plus ancien (Commit Sequence Number) visible par une transaction en cours.
Cette fonction fait partie d’un ensemble de fonctionnalités expérimentales. Activez la prise en charge expérimentale des transactions en ajoutant ce paramètre à votre configuration :
Introduite dans : v1.1.0Transforme une valeur selon une correspondance explicitement définie entre certains éléments et d’autres.Il existe deux variantes de cette fonction :
transform(x, array_from, array_to, default) - transforme x à l’aide de tableaux de correspondance, avec une valeur par défaut pour les éléments sans correspondance
transform(x, array_from, array_to) - même transformation, mais renvoie la valeur d’origine de x si aucune correspondance n’est trouvée
La fonction recherche x dans array_from et renvoie l’élément correspondant de array_to au même indice.
Si x n’est pas trouvé dans array_from, elle renvoie soit la valeur default (version à 4 paramètres), soit la valeur d’origine de x (version à 3 paramètres).
Si plusieurs éléments correspondants existent dans array_from, elle renvoie l’élément associé à la première correspondance.Exigences :
array_from et array_to doivent contenir le même nombre d’éléments
Pour la version à 4 paramètres : transform(T, Array(T), Array(U), U) -> U où T et U peuvent être des types compatibles différents
Pour la version à 3 paramètres : transform(T, Array(T), Array(T)) -> T où tous les types doivent être identiques
default — Facultatif. Valeur à renvoyer si x n’est pas trouvé dans array_from. S’il est omis, renvoie x inchangé. (U)Int* ou Decimal ou Float* ou String ou Date ou DateTime
Valeur renvoyéeRenvoie la valeur correspondante de array_to si x correspond à un élément de array_from, sinon renvoie default (s’il est fourni) ou x (si default n’est pas fourni). AnyExemplestransform(T, Array(T), Array(U), U) -> U
Query
SELECTtransform(SearchEngineID, [2, 3], ['Yandex', 'Google'], 'Other') AS title,count() AS cFROM test.hitsWHERE SearchEngineID != 0GROUP BY titleORDER BY c DESC
Response
┌─title─────┬──────c─┐│ Yandex │ 498635 ││ Google │ 229872 ││ Other │ 104472 │└───────────┴────────┘
transform(T, Array(T), Array(T)) -> T
Query
SELECTtransform(domain(Referer), ['yandex.ru', 'google.ru', 'vkontakte.ru'], ['www.yandex', 'example.com', 'vk.com']) AS s, count() AS cFROM test.hitsGROUP BY domain(Referer)ORDER BY count() DESCLIMIT 10
Introduit dans : v22.9.0Deux objets uniqThetaSketch permettent d’effectuer un calcul d’intersection (opération ensembliste ∩) ; le résultat est un nouvel objet uniqThetaSketch.Syntaxe
Valeur de retourUn nouvel objet uniqThetaSketch contenant le résultat de l’intersection. UInt64ExemplesExemple d’utilisation
Query
SELECT finalizeAggregation(uniqThetaIntersect(a, b)) AS a_intersect_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinalityFROM(SELECT arrayReduce('uniqThetaState', [1, 2]) AS a, arrayReduce('uniqThetaState', [2, 3, 4]) AS b);
Introduit dans : v22.9.0Deux objets uniqThetaSketch permettant d’effectuer un calcul a_not_b (opération ensembliste ×) ; le résultat est un nouvel objet uniqThetaSketch.Syntaxe
Valeur renvoyéeRenvoie un nouvel objet uniqThetaSketch contenant le résultat de a_not_b. UInt64ExemplesExemple d’utilisation
Query
SELECT finalizeAggregation(uniqThetaNot(a, b)) AS a_not_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinalityFROM(SELECT arrayReduce('uniqThetaState', [2, 3, 4]) AS a, arrayReduce('uniqThetaState', [1, 2]) AS b);
Introduit dans : v22.9.0Prend deux objets uniqThetaSketch pour effectuer une union (opération ensembliste ∪) ; le résultat est un nouvel objet uniqThetaSketch.Syntaxe
Valeur renvoyéeRenvoie un nouvel objet uniqThetaSketch contenant le résultat de l’union. UInt64ExemplesExemple d’utilisation
Query
SELECT finalizeAggregation(uniqThetaUnion(a, b)) AS a_union_b, finalizeAggregation(a) AS a_cardinality, finalizeAggregation(b) AS b_cardinalityFROM(SELECT arrayReduce('uniqThetaState', [1, 2]) AS a, arrayReduce('uniqThetaState', [2, 3, 4]) AS b);
Introduit dans : v1.1.0Renvoie la durée de fonctionnement du serveur en secondes.
Si elle est exécutée dans le contexte d’une table distribuée, cette fonction génère une colonne normale avec des valeurs propres à chaque shard.
Sinon, elle renvoie une valeur constante.Syntaxe
uptime()
Arguments
Aucun.
Valeur renvoyéeRenvoie la durée de fonctionnement du serveur, en secondes. UInt32ExemplesExemple d’utilisation
type_name — Le nom du type de variante à extraire. String
default_value — La valeur par défaut utilisée si le variant ne contient pas de variante du type spécifié. Peut être de n’importe quel type. Facultatif. Any
Valeur renvoyéeRenvoie une colonne contenant le type de variante spécifié extrait de la colonne Variant. AnyExemplesExemple d’utilisation
Query
CREATE TABLE test (v Variant(UInt64, String, Array(UInt64))) ENGINE = Memory;INSERT INTO test VALUES (NULL), (42), ('Hello, World!'), ([1, 2, 3]);SELECT v, variantElement(v, 'String'), variantElement(v, 'UInt64'), variantElement(v, 'Array(UInt64)') FROM test;
Introduit dans : v24.2.0Renvoie le nom du type de variante pour chaque ligne d’une colonne Variant. Si une ligne contient NULL, la fonction renvoie ‘None’.Syntaxe
Valeur renvoyéeRenvoie une colonne Enum contenant, pour chaque ligne, le nom du type de variante. EnumExemplesExemple d’utilisation
Query
CREATE TABLE test (v Variant(UInt64, String, Array(UInt64))) ENGINE = Memory;INSERT INTO test VALUES (NULL), (42), ('Hello, World!'), ([1, 2, 3]);SELECT variantType(v) FROM test;
Introduite dans : v1.1.0Renvoie la version actuelle de ClickHouse sous la forme d’une chaîne au format : major_version.minor_version.patch_version.number_of_commits_since_the_previous_stable_release.
Si elle est exécutée dans le contexte d’une table distribuée, cette fonction génère une colonne normale avec des valeurs propres à chaque shard.
Sinon, elle renvoie une valeur constante.Syntaxe
version()
Arguments
Aucun.
Valeur renvoyéeRenvoie la version actuelle de ClickHouse. StringExemplesExemple d’utilisation
Introduit dans : v1.1.0Calcule la largeur approximative lors de la sortie des valeurs dans la console au format texte (séparé par des tabulations).
Cette fonction est utilisée par le système pour implémenter les formats Pretty.
NULL est représenté sous la forme d’une chaîne correspondant à NULL dans les formats Pretty.Syntaxe
visibleWidth(x)
Arguments
x — Une valeur de n’importe quel type de données. Any
Valeur renvoyéeRenvoie la largeur approximative de la valeur lorsqu’elle est affichée au format texte. UInt64ExemplesCalcul de la largeur visible de NULL