Tous les produits
Search
Centre de documentation

Hologres:keyvalue

Dernière mise à jour :Aug 11, 2026

La fonction KeyValue extrait une valeur d’une chaîne de paires clé-valeur délimitées. Elle permet d’analyser des lignes de journal, des paramètres de requête URL ou des attributs d’événement stockés sous forme de texte brut.

Limites

  • Hologres V2.1 ou une version ultérieure est requis. Pour mettre à niveau une instance antérieure, utilisez l’option de mise à niveau manuelle dans la console Hologres ou contactez le support technique Hologres via le groupe DingTalk. Consultez la section Mise à niveau manuelle (bêta) dans « Mises à niveau d’instance » et Obtenir une assistance en ligne pour Hologres.

  • Les instructions SQL qui appellent KeyValue doivent inclure une clause FROM <table>.

Syntaxe

keyvalue(text <str>, [text <split1>, text <split2>,] text <key>)

La fonction divise str en paires clé-valeur à l’aide de split1, puis sépare chaque paire en clé et valeur à l’aide de split2. Elle renvoie la valeur correspondant à la key spécifiée.

Paramètres

Paramètre Type Obligatoire Valeur par défaut Description
str TEXT Oui — Chaîne à analyser.
split1 TEXT Non ; (point-virgule) Délimiteur séparant les paires clé-valeur. S’il est spécifié, split2 doit également l’être. Si une paire contient plusieurs occurrences de split2, la valeur de retour est indéfinie.
split2 TEXT Non : (deux-points) Délimiteur séparant la clé de sa valeur au sein de chaque paire. S’il est spécifié, split1 doit également l’être.
key TEXT Oui — Clé dont la valeur doit être renvoyée.

Valeur de retour

Renvoie une valeur de type TEXT. Renvoie null dans les cas suivants :

  • split1 ou split2 est null.

  • str ou key est null.

  • Aucune clé correspondante n’est trouvée après la division.

Si plusieurs clés correspondent, la fonction renvoie la valeur de la première clé trouvée.

Exemples

Délimiteurs par défaut (point-virgule et deux-points)

Cet exemple illustre des recherches de clés basées sur des constantes et sur des colonnes, en utilisant les délimiteurs par défaut (; entre les paires, : entre la clé et la valeur).

BEGIN;
CREATE TABLE kvtest (
    a TEXT,
    b TEXT
);
COMMIT;

INSERT INTO kvtest VALUES ('0:1', 'a'), ('2:3', 'b'), ('1:2', '1'), ('1:4', '1');

-- Look up by a constant key
SELECT keyvalue(a, '1') FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- \N
-- \N
-- 2
-- 4

-- Look up by a column as the key
SELECT keyvalue(a, b) FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- \N
-- \N
-- 2
-- 4

Délimiteurs personnalisés

Cet exemple analyse une chaîne dont les paires sont séparées par && et la clé de la valeur par =. Il s’agit d’un format courant dans les paramètres de requête URL et les journaux d’événements analytiques.

BEGIN;
CREATE TABLE kvtest (
    a TEXT,
    b TEXT
);
COMMIT;

INSERT INTO kvtest VALUES ('sp=11&&xd=1&&B2C=12&&tf=219', 'key');

-- split1='&&' separates pairs; split2='=' separates key from value
SELECT keyvalue(a, '&&', '=', 'sp') FROM kvtest;
-- Result:
-- keyvalue
-- ----------
-- 11