La documentation de la fonction ci-dessous est générée à partir de la table système
system.functions.FQDN
Introduit dans : v20.1.0 Renvoie le nom de domaine pleinement qualifié du serveur ClickHouse.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
fullHostName
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
MACNumToString
Introduite dans : v1.1.0 Interprète un nombreUInt64 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
num— nombre de type UInt64.UInt64
String
Exemples
Exemple d’utilisation
Query
Response
MACStringToNum
Introduite dans : v1.1.0 MACStringToNum est la fonction inverse de MACNumToString. Si l’adresse MAC a un format invalide, elle renvoie 0. Syntaxes— Chaîne d’adresse MAC.String
UInt64
Exemples
Exemple d’utilisation
Query
Response
MACStringToOUI
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. Syntaxes— adresse MAC sous forme de chaîne.String
UInt64
Exemples
Exemple d’utilisation
Query
Response
authenticatedUser
Introduite dans : v25.11.0 Si 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()Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
authUser
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
bar
Introduit dans : v1.1.0 Gé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. Syntaxex— Taille à afficher.(U)Int*ouFloat*ouDecimalmin— La valeur minimale.(U)Int*ouFloat*ouDecimalmax— La valeur maximale.(U)Int*ouFloat*ouDecimalwidth— Facultatif. Largeur de la barre en caractères. La valeur par défaut est80.const (U)Int*ouconst Float*ouconst Decimal
String
Exemples
Exemple d’utilisation
Query
Response
blockNumber
Introduit dans : v1.1.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt64
Exemples
Utilisation de base
Query
Response
blockSerializedSize
Introduit dans : v20.3.0 Renvoie la taille non compressée en octets d’un bloc de valeurs sur disque.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
x1[, x2, ...]— Nombre quelconque de valeurs dont on souhaite obtenir la taille non compressée du bloc.Any
UInt64
Exemples
Exemple d’utilisation
Query
Response
blockSize
Introduit dans : v1.1.0 Dans 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt64
Exemples
Exemple d’utilisation
Query
Response
buildId
Introduit dans : v20.5.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
byteSize
Introduit dans : v21.1.0 Renvoie une estimation de la taille en octets non compressée de ses arguments en mémoire. Pour les argumentsString, la fonction renvoie la longueur de la chaîne + 8 (longueur).
Si la fonction comporte plusieurs arguments, elle additionne leurs tailles en octets.
Syntaxe
arg1[, arg2, ...]— Valeurs de n’importe quel type de données dont il faut estimer la taille non compressée, en octets.Any
UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
colorOKLABToSRGB
Introduit dans : v26.2.0 Convertit 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
- Conversion d’OKLab vers sRGB linéaire.
- Conversion de sRGB linéaire vers sRGB encodé avec gamma.
tuple— Un tuple de trois valeurs numériquesL,a,b, oùLest 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 canalx. La valeur par défaut est2.2.Float64
Tuple(Float64, Float64, Float64)
Exemples
Convertir OKLAB en sRGB (Float)
Query
Response
Query
Response
colorOKLCHToSRGB
Introduit dans : v25.7.0 Convertit une couleur de l’espace colorimétrique perceptuellement uniforme OKLCH vers l’espace colorimétrique sRGB familier. SiL 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.colorSRGBToOKLCH :
- D’OKLCH vers OKLab.
- D’OKLab vers sRGB linéaire
- De sRGB linéaire vers sRGB
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
tuple— Un tuple de trois valeurs numériquesL,C,H, oùLest dans l’intervalle[0...1],C >= 0etHest 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 canalx. La valeur par défaut est2.2.Float64
Tuple(Float64, Float64, Float64)
Exemples
Convertir OKLCH en sRGB
Query
Response
Query
Response
colorSRGBToOKLAB
Introduit dans : v26.2.0 Convertit 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 est défini par 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.- sRGB vers sRGB linéaire
- sRGB linéaire vers OKLab
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 canalx. La valeur par défaut est2.2.Float64
Tuple(Float64, Float64, Float64)
Exemples
Convertir sRGB en OKLAB
Query
Response
colorSRGBToOKLCH
Introduit dans : v25.7.0 Convertit 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.- sRGB vers sRGB linéaire
- sRGB linéaire vers OKLab
- OKLab vers OKLCH.
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 canalx. La valeur par défaut est2.2.Float64
Tuple(Float64, Float64, Float64)
Exemples
Convertir sRGB en OKLCH
Query
Response
connectionId
Introduit dans : v21.3.0 Renvoie 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 fonctionCONNECTION_ID de MySQL.
Elle n’est généralement pas utilisée dans les requêtes de production.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt64
Exemples
Exemple d’utilisation
Query
Response
countDigits
Introduit dans : v20.8.0 Renvoyer 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) = 2countDigits(42.000) = 5countDigits(0.04200) = 4
x. UInt8
Exemples
Exemple d’utilisation
Query
Response
currentDatabase
Introduit dans : v1.1.0 Renvoie le nom de la base de données courante. Utile dans les paramètres de moteur de table des requêtesCREATE TABLE, lorsque vous devez spécifier la base de données.
Voir aussi l’instruction SET.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
current_database, DATABASE, SCHEMA
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
Query
Response
currentHandler
Introduite dans : v26.6.0 Renvoie le nom du gestionnaire HTTP défini en SQL (créé avecCREATE HANDLER) qui a appelé la requête.
Renvoie une chaîne vide si la requête n’a pas été appelée par un tel gestionnaire.
Permet de personnaliser le comportement d’une requête selon le gestionnaire qui l’a appelée.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
String
Exemples
Exemple d’utilisation
Query
currentProfiles
Introduit dans : v21.9.0 Renvoie un tableau des profils de paramètres de l’utilisateur courant.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
currentQueryID
Introduit dans : v25.2.0 Renvoie l’ID de la requête en cours.Cette fonction est non déterministe : elle peut renvoyer des résultats différents avec les mêmes arguments.
current_query_id
Arguments
- Aucun argument.
Query
Response
currentRequestURL
Introduite dans : v26.6.0 Renvoie l’URL de la requête HTTP (chemin et chaîne de requête) ayant déclenché la requête. Renvoie une chaîne vide si la requête n’a pas été effectuée via HTTP. Utile, en combinaison avec les gestionnaires HTTP définis en SQL (CREATE HANDLER), pour extraire les paramètres
intégrés au chemin de la requête.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
String
Exemples
Exemple d’utilisation
Query
currentRoles
Introduit dans : v21.9.0 Renvoie un tableau contenant les rôles attribués à l’utilisateur courant.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
currentSchemas
Introduit dans : v23.7.0 Identique à la fonctioncurrentDatabase 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.
currentSchemas n’existe que pour assurer la compatibilité avec PostgreSQL.
Utilisez plutôt currentDatabase.
Voir aussi l’instruction SET.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
current_schemas
Arguments
bool— Une valeur booléenne, qui est ignorée.Bool
Array(String)
Exemples
Exemple d’utilisation
Query
Response
currentUser
Introduit dans : v20.1.0 Renvoie 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é.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
session_user, current_user, user
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
Query
Response
defaultProfiles
Introduit dans : v21.9.0 Renvoie un tableau contenant les noms des profils de paramètres par défaut de l’utilisateur courant.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
defaultRoles
Introduit dans : v21.9.0 Renvoie un tableau des rôles par défaut de l’utilisateur courant.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
defaultValueOfArgumentType
Introduit dans : v1.1.0 Renvoie 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. Syntaxeexpression— Valeur de type arbitraire ou expression produisant une valeur de type arbitraire.Any
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 NULL
Exemples
Exemple d’utilisation
Query
Response
Query
Response
defaultValueOfTypeName
Introduit dans : v1.1.0 Renvoie la valeur par défaut du nom de type donné. Syntaxetype— Une chaîne représentant un nom de type.String
0 pour les nombres, une chaîne vide pour les chaînes, ou NULL pour UInt8 Nullable, String ou NULL
Exemples
Exemple d’utilisation
Query
Response
Query
Response
digits
Introduit dans : v26.7.0 Renvoyer les chiffres d’un nombren à partir de l’index offset spécifié.
Le comptage commence à 1 selon la logique suivante :
- Si
offsetvaut0, une exception est levée, caroffsetest indexé à partir de 1. - Si
offsetest négatif, le comptage commence àoffsetchiffres de la fin du nombre, plutôt que du début. - Si
offsetest supérieur au nombre de chiffres den,0est renvoyé.
length suit la logique suivante :
- Si
lengthest positif, il indique le nombre de chiffres à prendre à partir de l’offset - Si
lengthest négatif, il indique le nombre de chiffres à exclure depuis la droite du nombre
substring, qui effectue l’opération analogue sur des chaînes de caractères.
Syntaxe
n— Le nombre dont extraire les chiffres.(U)Int8or(U)Int16or(U)Int32or(U)Int64offset— La position de départ des chiffres dansn.(U)Int8or(U)Int16or(U)Int32or(U)Int64length— Facultatif. Le nombre maximal de chiffres.(U)Int8or(U)Int16or(U)Int32or(U)Int64
n, interprétés comme un UInt64. Renvoie 0 si la plage sélectionnée est vide. Les zéros initiaux ne sont pas conservés. UInt64
Exemples
Décalage positif
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
displayName
Introduit dans : v22.11.0 Renvoie la valeur dedisplay_name dans config ou, si elle n’est pas définie, le nom de domaine pleinement qualifié (FQDN) du serveur.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
display_name dans la config ou, si elle n’est pas définie, le FQDN du serveur. String
Exemples
Exemple d’utilisation
Query
Response
dumpColumnStructure
Introduit dans : v1.1.0 Affiche une description détaillée de la structure interne d’une colonne et de son type de données.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
x— Valeur dont il faut obtenir la description.Any
String
Exemples
Exemple d’utilisation
Query
Response
enabledProfiles
Introduit dans : v21.9.0 Renvoie un tableau contenant les noms des profils de paramètres activés pour l’utilisateur courant.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
enabledRoles
Introduit dans : v21.9.0 Renvoie un tableau des rôles activés pour l’utilisateur courant.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Array(String)
Exemples
Exemple d’utilisation
Query
Response
errorCodeToName
Introduit dans : v20.12.0 Renvoyer 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. Syntaxeerror_code. String
Exemples
Exemple d’utilisation
Query
Response
file
Introduit dans : v21.3.0 Lit 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 tablefile.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes 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ùNetMsont des nombres et'abc','def'des chaînes.Stringdefault— La valeur renvoyée si le fichier n’existe pas ou n’est pas accessible.StringouNULL
String
Exemples
Insérer des fichiers dans une table
Query
Response
filesystemAvailable
Introduit dans : v20.1.0 Renvoie 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.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes 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é.StringouFixedString
UInt64
Exemples
Exemple d’utilisation
Query
Response
filesystemCapacity
Introduit dans : v20.1.0 Renvoie la capacité du système de fichiers en octets. Nécessite que le path vers le répertoire de données soit configuré.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
disk_name— Facultatif. Nom du disque dont il faut obtenir la capacité. S’il est omis, le disque par défaut est utilisé.StringouFixedString
UInt64
Exemples
Exemple d’utilisation
Query
Response
filesystemUnreserved
Introduit dans : v22.12.0 Renvoie la quantité totale d’espace libre sur le système de fichiers qui héberge le stockage persistant de la base de données (anciennementfilesystemFree).
Voir aussi filesystemAvailable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
disk_name— Facultatif. Nom du disque pour lequel trouver la quantité totale d’espace libre. S’il est omis, le disque par défaut est utilisé.StringouFixedString
UInt64
Exemples
Exemple d’utilisation
Query
Response
finalizeAggregation
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é). Syntaxestate— État de l’agrégation.AggregateFunction
Any
Exemples
Exemple d’utilisation
Query
Response
Query
Response
flipCoordinates
Introduite dans : v25.11.0 Inverse 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 (MultiPoint, 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, MultiPoint, Ring, Polygon, MultiPolygon, LineString, MultiLineString) et le type Variant Geometry. Syntaxegeometry— Géométrie à transformer. Types pris en charge : Point (Tuple(Float64, Float64)), MultiPoint (Array(Point)), 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).
Point ou MultiPoint ou Ring ou Polygon ou MultiPolygon ou LineString ou MultiLineString ou Geometry
Exemples
basic_point
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
formatQuery
Introduit dans : v23.10.0 Renvoie 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] Syntaxequery— La requête SQL à formater. String
String
Exemples
multiligne
Query
Response
formatQueryFromJSON
Introduite dans : v26.8.0 Prend une représentation JSON d’un AST SQL (tel que produit parparseQueryToJSON) et la reformate en une chaîne de requête SQL.
Avec un argument, produit du SQL au format canonique.
Avec deux arguments (json, original_query), préserve au mieux les commentaires, les espaces et l’indentation de la requête d’origine.
L’AST désérialisé est limité par les paramètres max_ast_depth et max_ast_elements de la session en cours.
Associée à parseQueryToJSON, cette fonction permet d’inspecter et de transformer des requêtes par programmation
via leur représentation sous forme d’AST JSON.
Syntaxe
json— Chaîne JSON représentant un AST SQL.Stringoriginal_query— Facultatif. Requête SQL d’origine dont la mise en forme doit être préservée.String
String
Exemples
Aller-retour
Query
Response
Query
Response
formatQueryOrNull
Introduit dans : v23.11.0 Renvoie 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] Syntaxequery— La requête SQL à formater. String
String
Exemples
multiligne
Query
Response
formatQuerySingleLine
Introduit dans : v23.10.0 Comme 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] Syntaxequery— La requête SQL à formater. String
String
Exemples
multiligne
Query
Response
formatQuerySingleLineOrNull
Introduit dans : v23.11.0 Comme 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] Syntaxequery— La requête SQL à formater.String
String
Exemples
multiligne
Query
Response
formatReadableDecimalSize
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 sontparseReadableSize.
Syntaxe
value— Taille en octets.Int8ouInt16ouInt32ouInt64ouUInt8ouUInt16ouUInt32ouUInt64ouFloat32ouFloat64ouDecimalprecision— Facultatif. Nombre de chiffres après la virgule. La valeur par défaut est 2.const UInt8
String
Exemples
Formater les tailles de fichier
Query
Response
Query
Response
formatReadableQuantity
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 enFloat64.
Les résultats peuvent être moins précis pour les grandes valeurs.
Syntaxe
value— Un nombre à formater.Int8ouInt16ouInt32ouInt64ouUInt8ouUInt16ouUInt32ouUInt64ouFloat32ouFloat64ouDecimalprecision— Facultatif. Nombre de chiffres après le séparateur décimal. Valeur par défaut : 2.const UInt8
String
Exemples
Formater des nombres avec des suffixes
Query
Response
Query
Response
formatReadableSize
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 sontparseReadableSize, 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
FORMAT_BYTES
Arguments
value— Taille en octets.Int8ouInt16ouInt32ouInt64ouUInt8ouUInt16ouUInt32ouUInt64ouFloat32ouFloat64ouDecimalprecision— Facultatif. Nombre de chiffres après la virgule. La valeur par défaut est 2.const UInt8
String
Exemples
Formater les tailles de fichiers
Query
Response
Query
Response
formatReadableTimeDelta
Introduit dans : v20.12.0 Étant donné un intervalle de temps (delta) en secondes ou uneexpression INTERVAL, 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 expression INTERVAL 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 expressionINTERVAL. Les unités d’intervalleMONTHet supérieures ne sont pas prises en charge.Float64ouIntervalmaximum_unit— Facultatif. Unité maximale à afficher. Valeurs acceptables :nanoseconds,microseconds,milliseconds,seconds,minutes,hours,days,months,years. Valeur par défaut :years.const Stringminimum_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 :secondssimaximum_unitvautsecondsou une unité supérieure,nanosecondssinon.const String
String
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
fuzzQuery
Introduite dans : v26.2.0 Analyse 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écessiteallow_fuzz_query_functions = 1.
Syntaxe
query— La requête SQL à soumettre au fuzzing. String
String
Exemples
simple
Query
generateRandomStructure
Introduit dans : v23.5.0 Génère une structure de table aléatoire au formatcolumn1_name column1_type, column2_name column2_type, ....
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
number_of_columns— Le nombre souhaité de colonnes dans la structure de table générée. S’il est défini sur 0 ouNull, le nombre de colonnes sera choisi aléatoirement entre 1 et 128. Valeur par défaut :Null.UInt64seed— 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 surNull, elle est générée aléatoirement.UInt64
String
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
generateSerialID
Introduit dans : v25.1.0 Gé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é viaseries_keeper_path dans la configuration du serveur.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
series_identifier— Identifiant de sérieconst Stringstart_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*
UInt64
Exemples
premier appel
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
getClientHTTPHeader
Introduit dans : v24.5.0 Renvoie 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 en cours n’est pas effectuée via l’interface HTTP, la fonction renvoie une chaîne vide. Certains en-têtes HTTP (par ex.,Authorization, Authentication et X-ClickHouse-*) sont soumis à des restrictions.
La 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.getClientHTTPHeader lit les en-têtes de la requête en cours ; elle ne renvoie donc une valeur non vide que lorsque la requête est envoyée via l’interface HTTP.
Par exemple, fournissez l’en-tête dans la requête et relisez-le via HTTP :
application/x-www-form-urlencoded.
Syntaxe
name— Le nom de l’en-tête HTTP.String
String
Exemples
Exemple d’utilisation
Query
getMacro
Introduit dans : v20.1.0 Renvoie 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.
Nécessite le privilège SELECT sur system.macros, tout comme la lecture de cette table.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
name— Le nom de la macro à récupérer.const String
String
Exemples
Utilisation de base
Query
Response
getMaxTableNameLengthForDatabase
Introduit dans : v25.1.0 Renvoie la longueur maximale d’un nom de table dans une base de données donnée. Syntaxedatabase_name— Nom de la base de données spécifiée.String
Query
Response
getMergeTreeSetting
Introduit dans : v25.6.0 Renvoie la valeur actuelle d’un paramètre MergeTree. Nécessite le privilègeSELECT sur system.merge_tree_settings, tout comme la lecture de cette table.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
setting_name— Nom du paramètre.String
Query
Response
getOSKernelVersion
Introduit dans : v21.11.0 Renvoie une chaîne de caractères contenant la version du noyau du système d’exploitation.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
getServerPort
Introduit dans : v21.10.0 Renvoie le numéro de port du serveur pour un protocole donné.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
port_name— Le nom du port.String
UInt16
Exemples
Exemple d’utilisation
Query
Response
getServerSetting
Introduit dans : v25.6.0 Renvoie la valeur actuellement définie pour le paramètre serveur indiqué. Nécessite le privilègeSELECT sur system.server_settings, tout comme la lecture de cette table.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
setting_name— Le nom du paramètre du serveur.String
Any
Exemples
Exemple d’utilisation
Query
Response
getSetting
Introduit dans : v20.7.0 Renvoie la valeur actuelle d’un paramètre.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
setting_Name— Le nom du paramètre.const String
Any
Exemples
Exemple d’utilisation
Query
Response
getSettingOrDefault
Introduit dans : v24.10.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
setting_name— Le nom du paramètre.Stringdefault_value— Valeur à renvoyer si custom_setting n’est pas défini. La valeur peut être de n’importe quel type de données ou de NULL.
default_value si le paramètre n’est pas défini.
Exemples
Exemple d’utilisation
Query
Response
getSizeOfEnumType
Introduit dans : v1.1.0 Renvoie le nombre de champs de l’Enum donné.
Syntaxe
x— Valeur de typeEnum.Enum
Enum. UInt8/16
Exemples
Exemple d’utilisation
Query
Response
getSubcolumn
Introduit dans : v23.3.0 Reç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- Aucun.
Query
Response
getTypeSerializationStreams
Introduit dans : v22.6.0 Répertorie les chemins des flux de sérialisation d’un type de données. Cette fonction est destinée à un usage de développement. Syntaxecol— 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
Array(String)
Exemples
tuple
Query
Response
Query
Response
globalVariable
Introduit dans : v20.5.0 Prend 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. Syntaxename— Nom de variable globale.String
name. Any
Exemples
globalVariable
Query
Response
hasColumnInTable
Introduit dans : v1.1.0 Vé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 renvoie0.
La fonction nécessite le privilège
SHOW COLUMNS sur la table cible (le même privilège que celui requis par DESCRIBE et SHOW CREATE TABLE).
Sans ce privilège, l’appel échoue avec ACCESS_DENIED au lieu de renvoyer 1 ou 0, il n’est donc pas possible de tester des noms de colonnes sans y avoir accès.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
database— Nom de la base de données.const Stringtable— Nom de la table.const Stringcolumn— Nom de la colonne.const String
1 si la colonne indiquée existe, 0 sinon. UInt8
Exemples
Vérifier l’existence d’une colonne
Query
Response
Query
Response
hasThreadFuzzer
Introduit dans : v20.6.0 Indique si le thread fuzzer est activé. Cette fonction n’est utile que pour les tests et le débogage. Syntaxe- Aucun.
UInt8
Exemples
Vérifier le statut du Thread Fuzzer
Query
Response
highlightQuery
Introduit dans : v26.5.0 Analyse 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. Syntaxequery— Une chaîne de requête SQL ClickHouse. String.
(begin UInt64, end UInt64, type Enum8(...)) représentant des plages mises en évidence. Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
Exemples
simple
Query
Response
hostName
Introduit dans : v20.5.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
hostname
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
icebergBucket
Introduit dans : v25.5.0 Implémente la logique de la transformation bucket d’Iceberg SyntaxeN— Le nombre de buckets (modulo).const (U)Int*value— La valeur source à transformer.(U)Int*ouBoolouDecimalouFloat*ouStringouFixedStringouUUIDouDateouTimeouDateTime
Int32
Exemples
Exemple
Query
Response
icebergDay
Introduit dans : v26.9.0 Implémente la transformation de partition Icebergday : le nombre de jours écoulés depuis le 1970-01-01, calculé en UTC.
Voir https://iceberg.apache.org/spec/#partition-transforms.
Syntaxe
value— La valeur à transformer.DateouDate32ouDateTimeouDateTime64
Int32
Exemples
Exemple
Query
Response
icebergHour
Introduit dans : v26.9.0 Implémente la transformation de partition Iceberghour : le nombre d’heures écoulées depuis le 1970-01-01 00:00:00, calculé en UTC.
Voir https://iceberg.apache.org/spec/#partition-transforms.
Syntaxe
value— La valeur à transformer.DateTimeouDateTime64
Int32
Exemples
Exemple
Query
Response
icebergMonth
Introduit dans : v26.9.0 Implémente la transformation de partition Icebergmonth : le nombre de mois écoulés depuis le 1970-01-01, calculé en UTC.
Voir https://iceberg.apache.org/spec/#partition-transforms.
Syntaxe
value— La valeur à transformer.DateouDate32ouDateTimeouDateTime64
Int32
Exemples
Exemple
Query
Response
icebergTruncate
Introduit dans : v25.3.0 Implémente la logique de la transformation TRUNCATE d’Iceberg : https://iceberg.apache.org/spec/#truncate-transform-details. SyntaxeQuery
Response
icebergYear
Introduit dans : v26.9.0 Implémente la transformation de partition Icebergyear : le nombre d’années écoulées depuis 1970, calculé en UTC.
Voir https://iceberg.apache.org/spec/#partition-transforms.
Syntaxe
value— La valeur à transformer.DateouDate32ouDateTimeouDateTime64
Int32
Exemples
Exemple
Query
Response
identity
Introduit dans : v1.1.0 Cette 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. Syntaxex— Valeur d’entrée.Any
Any
Exemples
Exemple d’utilisation
Query
Response
ignore
Introduit dans : v1.1.0 Accepte n’importe quels arguments et renvoie toujours0.
Syntaxe
x— Une valeur d’entrée non utilisée, transmise uniquement pour éviter une erreur de syntaxe.Any
0. UInt8
Exemples
Exemple d’utilisation
Query
Response
indexHint
Introduit dans : v1.1.0 Cette 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é dansindexHint.
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
Explication
Lorsque vous exécutez :ClickHouse effectue deux opérations :ClickHouse n’effectue qu’une seule opération :
- 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
indexHint, lorsque vous exécutez :- Il utilise l’index pour trouver quelles granules peuvent contenir key = 123 et renvoie toutes les lignes de ces granules sans les filtrer.
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 ?
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
expression— Toute expression utilisée pour la sélection de plages d’index.Expression
1 dans tous les cas. UInt8
Exemples
Exemple d’utilisation avec filtrage sur la date
Query
Response
initialQueryID
Introduit dans : v1.1.0 Renvoie l’ID de la requête initiale en cours. D’autres paramètres d’une requête peuvent être extraits du champinitial_query_id de system.query_log.
Contrairement à la fonction queryID, initialQueryID renvoie les mêmes résultats sur différents shards.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
initial_query_id
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
initialQueryStartTime
Introduit dans : v25.4.0 Renvoie l’heure de début de la requête initiale en cours.initialQueryStartTime renvoie les mêmes résultats sur différents shards.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
initial_query_start_time
Arguments
- Aucun.
DateTime
Exemples
Exemple d’utilisation
Query
Response
initializeAggregation
Introduit dans : v20.6.0 Calcule 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 typeAggregateFunction, ou utiliser des agrégats initialisés comme valeurs par défaut.
Syntaxe
aggregate_function— Nom de la fonction d’agrégation à initialiser.Stringarg1[, arg2, ...]— Arguments de la fonction d’agrégation.Any
initializeAggregation prend le premier argument. Any
Exemples
Utilisation de base avec uniqState
Query
Response
Query
Response
isConstant
Introduit dans : v20.3.0 Indique 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
x— Une expression à vérifier.Any
1 si x est constante, 0 si x ne l’est pas. UInt8
Exemples
Expression constante
Query
Response
Query
Response
Query
Response
Query
Response
isDecimalOverflow
Introduit dans : v20.8.0 Vé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. Syntaxevalue— Valeur Decimal à vérifier.Decimalprecision— Facultatif. Précision du type Decimal. Si elle est omise, la précision initiale du premier argument est utilisée.UInt8
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. UInt8
Exemples
Exemple d’utilisation
Query
Response
joinGet
Introduit dans : v18.16.0 Permet 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
join_storage_table_name— Un identifiant qui indique où rechercher. L’identifiant est recherché dans la base de donnéesdefault(voir le paramètredefault_databasedans le fichier de configuration). Pour remplacer la base de données par défaut, utilisez la requêteUSE database_nameou précisez la base de données et la table en les séparant par un point, commedatabase_name.table_name.Stringvalue_column— Le nom de la colonne de la table qui contient les données requises.const Stringjoin_keys— Une liste de clés de jointure.Any
Any
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
joinGetOrNull
Introduit dans : v20.4.0 Permet 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’instruction
ENGINE = Join(ANY, LEFT, <join_keys>).Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
join_storage_table_name— Un identifiant qui indique où effectuer la recherche. L’identifiant est recherché dans la base de donnéesdefault(voir le paramètre default_database dans le fichier de configuration). Pour remplacer la base de données par défaut, utilisez la requêteUSE database_nameou indiquez la base de données et la table en les séparant par un point, commedatabase_name.table_name.Stringvalue_column— Le nom de la colonne de la table qui contient les données requises.const Stringjoin_keys— Une liste de clés de jointure.Any
NULL si une clé est introuvable. Any
Exemples
Exemple d’utilisation
Query
Response
lowCardinalityIndices
Introduit dans : v18.12.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
col— Une colonne à faible cardinalité.LowCardinality
UInt64
Exemples
Exemples d’utilisation
Query
Response
lowCardinalityKeys
Introduit dans : v18.12.0 Renvoyer 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
col— Une colonne à faible cardinalité.LowCardinality
UInt64
Exemples
lowCardinalityKeys
Query
Response
materialize
Introduit dans : v1.1.0 Transforme 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. Syntaxex— Une constante.Any
Any
Exemples
Exemple d’utilisation
Query
Response
Query
Response
minSampleSizeContinuous
Introduit dans : v23.10.0 Calcule 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. SyntaxeminSampleSizeContinous
Arguments
baseline— Valeur de référence d’une métrique.(U)Int*ouFloat*sigma— Écart type de référence d’une métrique.(U)Int*ouFloat*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*ouFloat*power— Puissance statistique requise d’un test (1 - probabilité d’une erreur de type II).(U)Int*ouFloat*alpha— Niveau de signification requis d’un test (probabilité d’une erreur de type I).(U)Int*ouFloat*
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)
Exemples
minSampleSizeContinuous
Query
Response
minSampleSizeConversion
Introduit dans : v22.6.0 Calcule 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). Syntaxebaseline— Conversion de référence.Float*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*
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)
Exemples
minSampleSizeConversion
Query
Response
neighbor
Introduit dans : v20.1.0 Renvoie 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éfinissantallow_deprecated_error_prone_window_functions = 1.
Syntaxe
column— La colonne source.Anyoffset— Le décalage par rapport à la ligne actuelle. Les valeurs positives portent vers l’avant, les valeurs négatives vers l’arrière.Integerdefault_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
Any
Exemples
Exemple d’utilisation
Query
Response
Query
Response
normalizeQuery
Introduit dans : v20.8.0 Remplace 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
x— Séquence de caractères.String
String
Exemples
Exemple d’utilisation
Query
Response
normalizeQueryKeepNames
Introduit dans : v21.2.0 Remplace 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
x— Séquence de caractères.String
String
Exemples
Exemple d’utilisation
Query
Response
normalizedQueryHash
Introduit dans : v20.8.0 Renvoie 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. Syntaxex— Suite de caractères.String
UInt64
Exemples
Exemple d’utilisation
Query
Response
normalizedQueryHashKeepNames
Introduit dans : v21.2.0 CommenormalizedQueryHash, 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
x— Séquence de caractères.String
UInt64
Exemples
Exemple d’utilisation
Query
Response
obfuscateQuery
Introduit dans : v26.4.0 Obfusque 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 facultatiftag 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
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
query— La requête SQL à obfusquer.Stringtag— Facultatif. Une valeur permettant d’éviter l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois.
String
Exemples
Utilisation de base
Query
Response
Query
Response
Query
Response
obfuscateQueryWithSeed
Introduite dans : v26.4.0 Obfusque 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()
- Cas de test reproductibles
- Anonymisation constante sur plusieurs exécutions
- Débogage avec des requêtes obfusquées cohérentes
query— La requête SQL à obfusquer.Stringseed— La seed pour l’obfuscation. La même seed produit des résultats déterministes.IntegerouString
String
Exemples
Obfuscation déterministe avec une seed entière
Query
Response
Query
Response
Query
Response
parseISO8601Duration
Introduit dans : v26.9.0 Analyse une chaîne de durée ISO 8601 et renvoie le nombre de secondes. La durée commence parP, suivi de composants de date facultatifs, puis d’une section horaire facultative
introduite par T :
W- semainesD- joursT- démarre la section horaireH- heuresM- minutes, uniquement aprèsTS- secondes
PT0.5H est valide et renvoie 1800.
Les désignateurs doivent apparaître dans l’ordre ci-dessus et chacun ne peut figurer qu’une seule fois. Le désignateur de semaine peut
être combiné avec les autres, contrairement à la norme ISO 8601:2004 où il est exclusif.
Le désignateur d’année (Y) et le désignateur de mois (M) placé avant T sont rejetés, car ni une
année ni un mois n’ont de longueur fixe en secondes. Convertissez plutôt ce type de durées par rapport à une date de référence.
Deux formes autorisées par la norme et ses extensions ne sont pas acceptées :
- une virgule comme séparateur décimal, comme dans
PT1,5S- utilisez un point - un signe en tête, comme dans
-PT1S, qui provient de la RFC 3339 et de XML Schema plutôt que de la grammaire de base
duration— Une chaîne de durée au format ISO 8601.String
Float64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
parseQueryToJSON
Introduite dans : v26.8.0 Analyse une chaîne de requête SQL en AST (arbre syntaxique abstrait) et renvoie une représentation JSON de cet arbre. Le JSON obtenu peut être transmis àformatQueryFromJSON pour reconstruire la requête SQL, ou envoyé directement
au serveur à l’aide de la valeur clickhouse_json du paramètre dialect (contrôlée par enable_json_ast_dialect).
Cette fonction est utile aux outils qui souhaitent inspecter ou transformer des requêtes par programmation sans passer par
la grammaire SQL.
Toutes les requêtes SQL ne possèdent pas de représentation JSON fidèle. Les requêtes contenant des données que le format JSON ne peut pas
reproduire (par exemple, des données intégrées INSERT ... VALUES / INSERT ... FORMAT) ainsi que les types de nœuds AST qui
n’implémentent pas encore la sérialisation JSON sont rejetés avec BAD_ARGUMENTS, plutôt que de produire du JSON que
formatQueryFromJSON ne pourrait pas relire.
Les limites d’analyse (max_query_size, max_parser_depth, max_parser_backtracks) sont déterminées par les
paramètres de la session actuelle.
Syntaxe
sql— Chaîne de requête SQL à analyser.String
String
Exemples
SELECT simple
Query
Response
parseReadableSize
Introduit dans : v24.6.0 À partir d’une chaîne contenant une taille en octets etB, 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
x— Taille dans un format lisible avec ISO/IEC 80000-13 ou une unité décimale d’octets.String
UInt64
Exemples
Exemple d’utilisation
Query
Response
parseReadableSizeOrNull
Introduit dans : v24.6.0 Étant donnée une chaîne contenant une taille en octets etB, 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
x— Taille en format lisible avec ISO/IEC 80000-13 ou une unité d’octets décimale.String
NULL si l’entrée ne peut pas être interprétée Nullable(UInt64)
Exemples
Exemple d’utilisation
Query
Response
parseReadableSizeOrZero
Introduit dans : v24.6.0 Étant donnée une chaîne contenant une taille en octets avecB, 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
x— Taille lisible avec une unité de taille ISO/IEC 80000-13 ou une unité de taille décimale.String
0 s’il est impossible d’analyser l’entrée. UInt64
Exemples
Exemple d’utilisation
Query
Response
parseTimeDelta
Introduit dans : v22.7.0 Analyse 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,ymonths,month,moweeks,week,wdays,day,dhours,hour,hr,hminutes,minute,min,mseconds,second,sec,smilliseconds,millisecond,millisec,msmicroseconds,microsecond,microsec,μs,µs,usnanoseconds,nanosecond,nanosec,ns
;, -, +, ,, :).
La durée des années et des mois est approximative : une année correspond à 365 jours et un mois à 30,5 jours.
Syntaxe
timestr— Une suite de nombres suivie d’un élément ressemblant à une unité de temps.String
Float64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
partitionId
Introduit dans : v21.4.0 Calcule l’identifiant de partition.Cette fonction est lente et ne doit pas être utilisée sur un grand nombre de lignes.
partitionID
Arguments
column1, column2, ...— Colonne pour laquelle l’identifiant de partition doit être renvoyé.
String
Exemples
Exemple d’utilisation
Query
Response
pgGetUserById
Introduite dans : v26.8.0 Fonction de compatibilité avec le protocole filaire PostgreSQL, analogue àpg_catalog.pg_get_userbyid.
Les clients PostgreSQL (par exemple, la commande \d dans psql) l’utilisent pour afficher le propriétaire d’une table.
ClickHouse ne gère pas la propriété des tables ; la fonction ignore donc l’argument et renvoie le nom de l’utilisateur courant.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
pg_get_userbyid
Arguments
oid— Identifiant d’objet du rôle. La valeur est ignorée.UInt32
String
Exemples
Exemple d’utilisation
Query
Response
pgTableIsVisible
Introduite dans : v26.8.0 Fonction de compatibilité avec le protocole filaire PostgreSQL, équivalente àpg_catalog.pg_table_is_visible.
Les clients PostgreSQL (par exemple, la commande \d dans psql) l’utilisent pour filtrer les tables visibles dans le chemin de recherche.
Comme la vue pg_class émulée par ClickHouse n’expose que les tables de la base de données courante, qui sont toutes visibles, la fonction renvoie toujours 1.
Syntaxe
pg_table_is_visible
Arguments
oid— Identifiant d’objet de la table, tel qu’exposé par la vuepg_classémulée. La valeur est ignorée.UInt32
1. UInt8
Exemples
Exemple d’utilisation
Query
Response
queryID
Introduit dans : v21.9.0 Renvoie l’ID de la requête en cours. Les autres paramètres d’une requête peuvent être extraits du champquery_id de la table system.query_log.
Contrairement à la fonction initialQueryID, queryID peut renvoyer des résultats différents selon les shards.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
query_id
Arguments
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
revision
Introduit dans : v22.7.0 Renvoie la révision actuelle du serveur ClickHouse.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt32
Exemples
Exemple d’utilisation
Query
Response
rowNumberInAllBlocks
Introduit dans : v1.1.0 Renvoie un numéro de ligne unique pour chaque ligne traitée.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
0. UInt64
Exemples
Exemple d’utilisation
Query
Response
rowNumberInBlock
Introduit dans : v1.1.0 Pour chaque bloc traité parrowNumberInBlock, renvoie le numéro de la ligne courante.
Le numéro renvoyé commence à 0 pour chaque bloc.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
0. UInt64
Exemples
Exemple d’utilisation
Query
Response
runningAccumulate
Introduit dans : v1.1.0 Accumule les états d’une fonction d’agrégation pour chaque ligne d’un bloc de données. Syntaxeagg_state— État de la fonction d’agrégation.AggregateFunctiongrouping— Facultatif. Clé de regroupement. L’état de la fonction est réinitialisé si la valeur degroupingchange. 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
Any
Exemples
Exemple d’utilisation avec initializeAggregation
Query
Response
runningConcurrency
Introduite dans : v21.3.0 Calcule le nombre d’événements simultanés. Chaque événement possède un horodatage de début et un horodatage de fin. L’horodatage de début est inclus dans l’événement, tandis que l’horodatage de fin ne l’est pas. Les colonnes contenant l’horodatage de début et l’horodatage 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 horodatage de début d’événement.Cette fonction n’est pas déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
start— Colonne contenant l’horodatage de début des événements.DateouDateTimeouDateTime64end— Colonne contenant l’horodatage de fin des événements.DateouDateTimeouDateTime64
UInt32
Exemples
Exemple d’utilisation
Query
Response
runningDifference
Introduit dans : v1.1.0 Calcule la différence entre les valeurs de deux lignes consécutives dans le bloc de données. Renvoie0 pour la première ligne, puis, pour les lignes suivantes, la différence par rapport à la ligne précédente.
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
x— Colonne pour laquelle calculer la différence entre valeurs consécutives.Any
Query
Response
Query
Response
runningDifferenceStartingWithFirstValue
Introduit dans : v1.1.0 Calcule 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.
Syntaxe
x— Colonne pour laquelle calculer la différence entre valeurs consécutives.Any
Any
Exemples
Exemple d’utilisation
Query
Response
serverUUID
Introduit dans : v20.1.0 Renvoie 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.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UUID
Exemples
Exemple d’utilisation
Query
Response
shardCount
Introduit dans : v21.9.0 Renvoyer le nombre total de shards pour une requête distribuée. Si une requête n’est pas distribuée, la valeur constante0 est renvoyée.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
0. UInt32
Exemples
Exemple d’utilisation
Query
Response
shardNum
Introduit dans : v21.9.0 Renvoie 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.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
0. UInt32
Exemples
Exemple d’utilisation
Query
Response
showCertificate
Introduit dans : v22.6.0 Affiche des informations sur le certificat Secure Sockets Layer (SSL) du serveur actuel, s’il est configuré. Une map vide est renvoyée si le serveur ne possède aucun certificat, par exemple lorsque le certificat est provisionné avec ACME et n’a pas encore été émis. 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
Map(String, String)
Exemples
Exemple d’utilisation
Query
Response
sleep
Introduit dans : v1.1.0 Suspend 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 fonctionsleep() 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.
allow_sleep activé).
Syntaxe
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*ouconst Float*
0. UInt8
Exemples
Exemple d’utilisation
Query
Response
sleepEachRow
Introduit dans : v1.1.0 Met en pause l’exécution d’une requête pendant un nombre donné de secondes pour chaque ligne du jeu de résultats. La fonctionsleepEachRow() 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.
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*ouconst Float*
0 pour chaque ligne. UInt8
Exemples
Exemple d’utilisation
Query
Response
structureToCapnProtoSchema
Introduit dans : v23.8.0 Fonction qui convertit la structure d’une table ClickHouse en schéma au format CapnProto Syntaxe- Aucun.
Query
Response
structureToProtobufSchema
Introduit dans : v23.8.0 Convertit 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. Syntaxestructure— Définition de la structure d’une table ClickHouse sous forme de chaîne de caractères (par ex. ‘column1 Type1, column2 Type2’).Stringmessage_name— Nom du type de message Protobuf dans le schéma généré.String
String
Exemples
Conversion d’une structure ClickHouse en schéma Protobuf
Query
Response
tcpPort
Introduit dans : v20.12.0 Renvoie 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.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt16
Exemples
Exemple d’utilisation
Query
Response
throwIf
Introduit dans : v1.1.0 Lève une exception si l’argument x est vrai. Pour utiliser l’argumenterror_code, le paramètre de configuration allow_custom_error_code_in_throw doit être activé.
Syntaxe
x— La condition à vérifier.Anymessage— Facultatif. Message d’erreur personnalisé.const Stringerror_code— Facultatif. Code d’erreur personnalisé.const Int8/16/32
0 si la condition est false, et lève une exception si la condition est true. UInt8
Exemples
Exemple d’utilisation
Query
Response
toColumnTypeName
Introduit dans : v1.1.0 Renvoie le nom interne du type de données de la valeur donnée. Contrairement à la fonctiontoTypeName, le type de données renvoyé peut inclure des colonnes d’encapsulation internes telles que Const et LowCardinality.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
value— Valeur pour laquelle renvoyer le type de données interne.Any
String
Exemples
Exemple d’utilisation
Query
Response
toTypeName
Introduit dans : v1.1.0 Renvoie le nom du type de l’argument passé. SiNULL est passé, la fonction renvoie le type Nullable(Nothing), qui correspond à la représentation interne de NULL dans ClickHouse.
Syntaxe
x— Une valeur de type arbitraire.Any
String
Exemples
Exemple d’utilisation
Query
Response
tokenizeQuery
Introduit dans : v26.5.0 Tokenise 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. Syntaxequery— Une chaîne de requête en ClickHouse SQL. String.
(begin UInt64, end UInt64, type Enum8(...)) représentant les jetons de la requête. Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))
Exemples
simple
Query
Response
transactionID
Introduit dans : v22.6.0 Renvoie 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 :Pour plus d’informations, consultez la page Prise en charge des transactions (ACID).
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
start_csn, local_tid, host_id et session_node_version.
start_csn: Numéro séquentiel global, correspondant au timestamp de commit le plus récent observé au moment où cette transaction a commencé.local_tid: Numéro séquentiel local, unique pour chaque transaction lancée par cet hôte pour unstart_csndonné.host_id: UUID de l’hôte qui a lancé cette transaction.session_node_version: Version du znode de session de l’hôte au démarrage de la transaction ; permet aux peers de détecter un TID de session morte entre les répliques.Tuple(UInt64, UInt64, UUID, Int64)
Query
Response
transactionLatestSnapshot
Introduit dans : v22.6.0 Renvoie l’instantané le plus récent (Commit Sequence Number) d’une transaction disponible en 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 :Pour plus d’informations, consultez la page Prise en charge des transactions (ACID).
- Aucun.
UInt64
Exemples
Exemple d’utilisation
Query
Response
transactionOldestSnapshot
Introduit dans : v22.6.0 Renvoie l’instantané le plus ancien (Commit Sequence Number) visible pour 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 :Pour plus d’informations, consultez la page Prise en charge des transactions (ACID).
- Aucun.
UInt64
Exemples
Exemple d’utilisation
Query
Response
transform
Introduite dans : v1.1.0 Transforme 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)- transformexà l’aide de tableaux de correspondance, avec une valeur par défaut pour les éléments sans correspondancetransform(x, array_from, array_to)- même transformation, mais renvoie la valeur d’origine dexsi aucune correspondance n’est trouvée
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_frometarray_todoivent contenir le même nombre d’éléments- Pour la version à 4 paramètres :
transform(T, Array(T), Array(U), U) -> UoùTetUpeuvent être des types compatibles différents - Pour la version à 3 paramètres :
transform(T, Array(T), Array(T)) -> Toù tous les types doivent être identiques
x— Valeur à transformer.(U)Int*ouDecimalouFloat*ouStringouDateouDateTimearray_from— Tableau constant de valeurs dans lequel rechercher des correspondances.Array((U)Int*)ouArray(Decimal)ouArray(Float*)ouArray(String)ouArray(Date)ouArray(DateTime)array_to— Tableau constant de valeurs à renvoyer pour les correspondances dansarray_from.Array((U)Int*)ouArray(Decimal)ouArray(Float*)ouArray(String)ouArray(Date)ouArray(DateTime)default— Facultatif. Valeur à renvoyer sixn’est pas trouvé dansarray_from. S’il est omis, renvoiexinchangé.(U)Int*ouDecimalouFloat*ouStringouDateouDateTime
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). Any
Exemples
transform(T, Array(T), Array(U), U) -> U
Query
Response
Query
Response
uniqThetaIntersect
Introduit dans : v22.9.0 Deux objets uniqThetaSketch permettent d’effectuer un calcul d’intersection (opération ensembliste ∩) ; le résultat est un nouvel objet uniqThetaSketch. SyntaxeuniqThetaSketch— objet uniqThetaSketch.TupleouArrayouDateouDateTimeouStringou(U)Int*ouFloat*ouDecimal
UInt64
Exemples
Exemple d’utilisation
Query
Response
uniqThetaNot
Introduit dans : v22.9.0 Deux objets uniqThetaSketch permettant d’effectuer un calcul a_not_b (opération ensembliste ×) ; le résultat est un nouvel objet uniqThetaSketch. SyntaxeuniqThetaSketch— objet uniqThetaSketch.TupleouArrayouDateouDateTimeouStringou(U)Int*ouFloat*ouDecimal
UInt64
Exemples
Exemple d’utilisation
Query
Response
uniqThetaUnion
Introduit dans : v22.9.0 Prend deux objets uniqThetaSketch pour effectuer une union (opération ensembliste ∪) ; le résultat est un nouvel objet uniqThetaSketch. SyntaxeuniqThetaSketch— objet uniqThetaSketch.TupleouArrayouDateouDateTimeouStringou(U)Int*ouFloat*ouDecimal
UInt64
Exemples
Exemple d’utilisation
Query
Response
durée de fonctionnement
Introduit dans : v1.1.0 Renvoie 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.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt32
Exemples
Exemple d’utilisation
Query
Response
variantElement
Introduit dans : v25.2.0 Extrait d’une colonneVariant une colonne du type spécifié.
Syntaxe
variant— Colonne Variant.Varianttype_name— Le nom du type de variante à extraire.Stringdefault_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
Any
Exemples
Exemple d’utilisation
Query
Response
variantType
Introduit dans : v24.2.0 Renvoie le nom du type de variante pour chaque ligne d’une colonneVariant. Si une ligne contient NULL, la fonction renvoie ‘None’.
Syntaxe
variant— colonne Variant.Variant
Enum
Exemples
Exemple d’utilisation
Query
Response
version
Introduite dans : v1.1.0 Renvoie 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.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
String
Exemples
Exemple d’utilisation
Query
Response
visibleWidth
Introduit dans : v1.1.0 Calcule 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
x— Une valeur de n’importe quel type de données.Any
UInt64
Exemples
Calcul de la largeur visible de NULL
Query
Response
zookeeperSessionUptime
Introduite dans : v21.11.0 Renvoie la durée de fonctionnement de la session ZooKeeper actuelle, en secondes.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
- Aucun.
UInt32
Exemples
Exemple d’utilisation
Query
Response