Passer au contenu principal

Vue d’ensemble

Les fonctions mentionnées dans cette section sont optimisées pour offrir des performances maximales et, dans la plupart des cas, ne respectent pas la norme RFC-3986. Les fonctions qui implémentent la RFC-3986 ont RFC ajouté à leur nom et sont généralement plus lentes.
Vous pouvez généralement utiliser les variantes de fonction sans RFC lorsque vous travaillez avec des domaines enregistrés publiquement qui ne contiennent ni informations utilisateur ni symbole @. Le tableau ci-dessous indique quels symboles d’une URL peuvent () ou ne peuvent pas () être analysés par les variantes RFC et non-RFC correspondantes :
Symbolnon-RFCRFC
’ ’
\t
<
>
%✔*
{
}
\
^
~✔*
[
]
;✔*
=✔*
&✔*
les symboles marqués d’un * sont des sous-délimiteurs dans la RFC 3986 et sont autorisés dans les informations utilisateur après le symbole @. Il existe deux types de fonctions d’URL :
  • Les fonctions qui extraient des parties d’une URL. Si la partie concernée n’est pas présente dans l’URL, une chaîne vide est renvoyée.
  • Les fonctions qui suppriment une partie d’une URL. Si l’URL ne contient rien de tel, elle reste inchangée.
Les fonctions ci-dessous sont générées à partir de la table système system.functions.

URLHierarchy

Introduit dans : v1.1.0 Renvoie un tableau contenant l’URL, tronquée à la fin selon les symboles /, ? et # présents dans le chemin et la chaîne de requête. Les caractères séparateurs consécutifs sont comptés comme un seul. Le résultat inclut le protocole et l’hôte comme premier élément, puis des chemins de plus en plus longs formant une hiérarchie. Syntaxe
URLHierarchy(url)
Arguments
  • url — L’URL à traiter. String
Valeur renvoyée Renvoie un tableau d’URL de plus en plus longues formant une hiérarchie. Array(String) Exemples Utilisation de base
Query
SELECT URLHierarchy('https://example.com/a/b?c=1')
Response
['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1']

URLPathHierarchy

Introduit dans : v1.1.0 Renvoie un tableau contenant la partie chemin de l’URL, tronquée à la fin par les symboles /, ? et #. Contrairement à URLHierarchy, le résultat n’inclut ni le protocole ni l’hôte : il commence par le chemin. Les caractères séparateurs consécutifs sont comptés comme un seul. Syntaxe
URLPathHierarchy(url)
Arguments
  • url — L’URL à traiter. String
Valeur renvoyée Renvoie un tableau de composants du chemin de l’URL, de plus en plus longs, formant une hiérarchie. Array(String) Exemples Utilisation de base
Query
SELECT URLPathHierarchy('https://example.com/a/b?c=1')
Response
['/a/','/a/b','/a/b?c=1']

cutFragment

Introduit dans : v1.1.0 Supprime l’identifiant de fragment d’une URL, y compris le signe dièse. Syntaxe
cutFragment(url)
Arguments Valeur renvoyée Renvoie l’URL sans le fragment. String Exemples Exemple d’utilisation
Query
SELECT cutFragment('http://example.com/path?query=value#fragment123');
Response
┌─cutFragment('http://example.com/path?query=value#fragment123')─┐
│ http://example.com/path?query=value                            │
└────────────────────────────────────────────────────────────────┘

cutQueryString

Introduit dans : v1.1.0 Supprime la chaîne de requête, y compris le point d’interrogation, d’une URL. Syntaxe
cutQueryString(url)
Arguments Valeur renvoyée Renvoie l’URL sans la chaîne de requête. String Exemples Exemple d’utilisation
Query
SELECT cutQueryString('http://example.com/path?query=value&param=123#fragment');
Response
┌─cutQueryString('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path#fragment                                         │
└──────────────────────────────────────────────────────────────────────────┘

cutQueryStringAndFragment

Introduit dans : v1.1.0 Supprime d’une URL la chaîne de requête et l’identifiant de fragment, y compris le point d’interrogation et le signe dièse. Syntaxe
cutQueryStringAndFragment(url)
Arguments Valeur renvoyée Renvoie l’URL sans la chaîne de requête ni l’identifiant de fragment. String Exemples Exemple d’utilisation
Query
SELECT cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment');
Response
┌─cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment')─┐
│ http://example.com/path                                                             │
└─────────────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomain

Introduite dans : v1.1.0 Renvoie la partie du domaine qui comprend les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif. Syntaxe
cutToFirstSignificantSubdomain(url)
Arguments
  • url — URL ou chaîne de domaine sous forme de chaîne à traiter. String
Valeur renvoyée Renvoie la partie du domaine qui inclut les sous-domaines de premier niveau jusqu’au premier sous-domaine significatif, si possible ; sinon, renvoie une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT
    cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomain('www.tr'),
    cutToFirstSignificantSubdomain('tr');
Response
┌─cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomain('www.tr')─┬─cutToFirstSignificantSubdomain('tr')─┐
│ clickhouse.com.tr                                                 │ tr                                       │                                      │
└───────────────────────────────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────┘

cutToFirstSignificantSubdomainCustom

Introduit dans : v21.1.0 Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif. Accepte le nom d’une liste de TLD personnalisée. Cette fonction peut être utile si vous avez besoin d’une liste de TLD à jour ou si vous disposez d’une liste personnalisée. Exemple de configuration
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
Syntaxe
cutToFirstSignificantSubdomainCustom(url, tld_list_name)
Arguments
  • url — URL ou chaîne de domaine à traiter. String
  • tld_list_name — Nom de la liste de TLD personnalisée configurée dans ClickHouse. const String
Valeur renvoyée Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur, jusqu’au premier sous-domaine significatif. String Exemples Utilisation d’une liste de TLD personnalisée pour les domaines non standard
Query
SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list')
Response
foo.there-is-no-such-domain

cutToFirstSignificantSubdomainCustomRFC

Introduit dans : v22.10.0 Renvoie la partie du domaine qui comprend les sous-domaines de plus haut niveau jusqu’au premier sous-domaine significatif. Accepte un nom personnalisé de liste de TLD. Cette fonction peut être utile si vous avez besoin d’une liste de TLD récente ou si vous utilisez une liste personnalisée. Semblable à cutToFirstSignificantSubdomainCustom, mais conforme à la RFC 3986. Exemple de configuration
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
Syntaxe
cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)
Arguments
  • url — URL ou chaîne de domaine à traiter conformément à la RFC 3986. - tld_list_name — Nom de la liste de TLD personnalisée configurée dans ClickHouse.
Valeur renvoyée Renvoie la partie du domaine qui comprend les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif. String Exemples Exemple d’utilisation
Query
SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─────┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWW

Introduit dans : v21.1.0 Renvoie la partie du domaine qui inclut les sous-domaines de plus haut niveau jusqu’au premier sous-domaine significatif, sans supprimer ‘www’. Accepte le nom d’une liste de TLD personnalisée. Cela peut être utile si vous avez besoin d’une liste de TLD à jour ou si vous utilisez une liste personnalisée. Exemple de configuration
<!-- <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> -->
<top_level_domains_lists>
    <!-- https://publicsuffix.org/list/public_suffix_list.dat -->
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    <!-- NOTE: path is under top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)
Arguments
  • url — URL ou chaîne de domaine à traiter. - tld_list_name — Nom de la liste de TLD personnalisée configurée dans ClickHouse.
Valeur renvoyée Partie du domaine incluant les sous-domaines de plus haut niveau jusqu’au premier sous-domaine significatif, sans supprimer ‘www’. String Exemples Exemple d’utilisation
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
Response
┌─cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list')─┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWWRFC

Introduit dans : v22.10.0 Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif sans supprimer www. Accepte le nom d’une liste TLD personnalisée. Cela peut être utile si vous avez besoin d’une liste TLD à jour ou si vous disposez d’une liste personnalisée. Semblable à cutToFirstSignificantSubdomainCustomWithWWW, mais conforme à la RFC 3986. Exemple de configuration
{/* <top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path> */}
<top_level_domains_lists>
    {/* https://publicsuffix.org/list/public_suffix_list.dat */}
    <public_suffix_list>public_suffix_list.dat</public_suffix_list>
    {/* NOTE: path is under top_level_domains_path */}
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name)
Arguments
  • url — URL ou chaîne de domaine à traiter conformément à la RFC 3986. - tld_list_name — Nom de la liste de TLD personnalisée configurée dans ClickHouse.
Valeur renvoyée Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif, sans supprimer www. String Exemples Analyse RFC 3986 avec conservation de www et liste de TLD personnalisée
Query
SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
Response
www.example.custom

cutToFirstSignificantSubdomainRFC

Introduit dans : v22.10.0 Renvoyer la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au “premier sous-domaine significatif”. Semblable à cutToFirstSignificantSubdomain, mais conforme à la RFC 3986. Syntaxe
cutToFirstSignificantSubdomainRFC(url)
Arguments
  • url — URL ou chaîne de domaine à traiter conformément à la RFC 3986. String
Valeur renvoyée Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif, lorsque cela est possible ; sinon, renvoie une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT
    cutToFirstSignificantSubdomain('http://user:password@example.com:8080'),
    cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080');
Response
┌─cutToFirstSignificantSubdomain('http://user:password@example.com:8080')─┬─cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080')─┐
│                                                                         │ example.com                                                                │
└─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainWithWWW

Introduit dans : v20.12.0 Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au “premier sous-domaine significatif”, sans supprimer ‘www.’. Semblable à cutToFirstSignificantSubdomain, mais conserve le préfixe ‘www.’ s’il est présent. Syntaxe
cutToFirstSignificantSubdomainWithWWW(url)
Arguments
  • url — URL ou chaîne de domaine à traiter. String
Valeur renvoyée Renvoie la partie du domaine qui comprend les sous-domaines de premier niveau jusqu’au premier sous-domaine significatif (y compris www) lorsque c’est possible ; sinon, renvoie une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT
    cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomainWithWWW('www.tr'),
    cutToFirstSignificantSubdomainWithWWW('tr');
Response
┌─cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/')─┬─cutToFirstSignificantSubdomainWithWWW('www.tr')─┬─cutToFirstSignificantSubdomainWithWWW('tr')─┐
│ clickhouse.com.tr                                                        │ www.tr                                          │                                             │
└──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘

cutToFirstSignificantSubdomainWithWWWRFC

Introduit dans : v22.10.0 Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au « premier sous-domaine significatif », sans supprimer ‘www’. Similaire à cutToFirstSignificantSubdomainWithWWW, mais conforme à la RFC 3986. Syntaxe
cutToFirstSignificantSubdomainWithWWWRFC(url)
Arguments
  • url — URL ou chaîne de domaine à traiter conformément à la RFC 3986.
Valeur renvoyée Renvoie la partie du domaine qui inclut les sous-domaines de niveau supérieur jusqu’au premier sous-domaine significatif (avec ‘www’) si possible ; sinon, renvoie une chaîne vide String Exemples Exemple d’utilisation
Query
SELECT
    cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy'),
    cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy');
Response
┌─cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┬─cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy')─┐
│                                                                                       │ mail.ru                                                                                  │
└───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘

cutURLParameter

Introduit dans : v1.1.0 Supprime le paramètre name d’une URL, s’il est présent. Cette fonction n’encode ni ne décode les caractères des noms de paramètres. Par exemple, Client ID et Client%20ID sont traités comme des noms de paramètres distincts. Syntaxe
cutURLParameter(url, name)
Arguments Valeur renvoyée URL dont le paramètre name a été supprimé. String Exemples Exemple d’utilisation
Query
SELECT
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', 'a') AS url_without_a,
    cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', ['c', 'e']) AS url_without_c_and_e;
Response
┌─url_without_a────────────────┬─url_without_c_and_e──────┐
│ http://bigmir.net/?c=d&e=f#g │ http://bigmir.net/?a=b#g │
└──────────────────────────────┴──────────────────────────┘

cutWWW

Introduit dans : v1.1.0 Supprime le préfixe www. du domaine de l’URL, s’il est présent. Syntaxe
cutWWW(url)
Arguments Valeur renvoyée Renvoie l’URL dont le domaine est dépourvu du préfixe www.. String Exemples Exemple d’utilisation
Query
SELECT cutWWW('http://www.example.com/path?query=value#fragment');
Response
┌─cutWWW('http://www.example.com/path?query=value#fragment')─┐
│ http://example.com/path?query=value#fragment               │
└────────────────────────────────────────────────────────────┘

decodeURLComponent

Introduit dans : v1.1.0 Prend en entrée une chaîne encodée dans une URL et la décode pour la restituer dans sa forme d’origine, lisible. Syntaxe
decodeURLComponent(url)
Arguments Valeur renvoyée Renvoie l’URL décodée. String Exemples Exemple d’utilisation
Query
SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
Response
┌─DecodedURL─────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1; │
└────────────────────────────────────────┘

decodeURLFormComponent

Introduit dans : v1.1.0 Décode les chaînes encodées dans l’URL selon les règles d’encodage des formulaires (RFC-1866) : les signes + sont convertis en espaces et les caractères encodés en pourcentage sont décodés. Syntaxe
decodeURLFormComponent(url)
Arguments Valeur renvoyée Renvoie l’URL décodée. String Exemples Exemple d’utilisation
Query
SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') AS DecodedURL;
Response
┌─DecodedURL────────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1 2+3 │
└───────────────────────────────────────────┘

domain

Introduit dans : v1.1.0 Extrait le nom d’hôte d’une URL. L’URL peut être spécifiée avec ou sans protocole. Syntaxe
domain(url)
Arguments Valeur renvoyée Renvoie le nom d’hôte si la chaîne d’entrée peut être interprétée comme une URL, sinon une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk');
Response
┌─domain('svn+ssh://some.svn-hosting.com:80/repo/trunk')─┐
│ some.svn-hosting.com                                   │
└────────────────────────────────────────────────────────┘

domainRFC

Introduit dans : v22.10.0 Extrait le nom d’hôte d’une URL. Similaire à domain, mais conforme à la RFC 3986. Syntaxe
domainRFC(url)
Arguments Valeur renvoyée Renvoie le nom d’hôte si la chaîne d’entrée peut être interprétée comme une URL, sinon une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT
    domain('http://user:password@example.com:8080/path?query=value#fragment'),
    domainRFC('http://user:password@example.com:8080/path?query=value#fragment');
Response
┌─domain('http://user:password@example.com:8080/path?query=value#fragment')─┬─domainRFC('http://user:password@example.com:8080/path?query=value#fragment')─┐
│                                                                           │ example.com                                                                  │
└───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘

domainWithoutWWW

Introduit dans : v1.1.0 Renvoie le domaine d’une URL sans le www. initial, s’il est présent. Syntaxe
domainWithoutWWW(url)
Arguments Valeur renvoyée Renvoie le nom de domaine si la chaîne d’entrée peut être interprétée comme une URL (sans le préfixe www.), sinon une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT domainWithoutWWW('http://paul@www.example.com:80/');
Response
┌─domainWithoutWWW('http://paul@www.example.com:80/')─┐
│ example.com                                         │
└─────────────────────────────────────────────────────┘

domainWithoutWWWRFC

Introduit dans : v1.1.0 Renvoie le domaine sans le préfixe www. s’il est présent. Similaire à domainWithoutWWW, mais conforme à la RFC 3986. Syntaxe
domainWithoutWWWRFC(url)
Arguments Valeur renvoyée Renvoie le nom de domaine si la chaîne d’entrée peut être analysée comme une URL (sans www. au début), sinon une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT
    domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment'),
    domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment');
Response
┌─domainWithoutWWW('http://user:password@www.example.com:8080/path?query=value#fragment')─┬─domainWithoutWWWRFC('http://user:password@www.example.com:8080/path?query=value#fragment')─┐
│                                                                                         │ example.com                                                                                │
└─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘

encodeURLComponent

Introduit dans : v22.3.0 Prend une chaîne classique et la convertit au format encodé pour les URL (encodage en pourcentage), dans lequel les caractères spéciaux sont remplacés par leurs équivalents encodés en pourcentage. Syntaxe
encodeURLComponent(url)
Arguments Valeur renvoyée Renvoie l’URL encodée. String Exemples Exemple d’utilisation
Query
SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedURL;
Response
┌─EncodedURL───────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT%201%3B │
└──────────────────────────────────────────────────────────┘

encodeURLFormComponent

Introduit dans : v22.3.0 Encode les chaînes selon les règles d’encodage des formulaires (RFC-1866), où les espaces sont convertis en signes + et les caractères spéciaux sont encodés en pourcentage. Syntaxe
encodeURLFormComponent(url)
Arguments Valeur renvoyée Renvoie l’URL encodée. String Exemples Exemple d’utilisation
Query
SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS EncodedURL;
Response
┌─EncodedURL────────────────────────────────────────────────┐
│ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT+1+2%2B3 │
└───────────────────────────────────────────────────────────┘

extractURLParameter

Introduit dans : v1.1.0 Renvoyer la valeur du paramètre name dans l’URL, s’il est présent ; sinon, une chaîne vide est renvoyée. S’il existe plusieurs paramètres portant ce nom, la première occurrence est renvoyée. La fonction suppose que le paramètre dans url est encodé de la même manière que l’argument name. Syntaxe
extractURLParameter(url, name)
Arguments Valeur renvoyée Renvoie la valeur du paramètre d’URL du nom spécifié. String Exemples Exemple d’utilisation
Query
SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
Response
┌─extractURLPa⋯, 'param1')─┐
│ value1                   │
└──────────────────────────┘

extractURLParameterNames

Introduit dans : v1.1.0 Renvoie un tableau de chaînes contenant les noms des paramètres d’URL. Les valeurs ne sont pas décodées. Syntaxe
extractURLParameterNames(url)
Arguments Valeur renvoyée Renvoie un tableau de chaînes correspondant aux noms des paramètres d’URL. Array(String) Exemples Exemple d’utilisation
Query
SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2']      │
└──────────────────────────┘

extractURLParameters

Introduit dans : v1.1.0 Renvoie un tableau de chaînes name=value correspondant aux paramètres d’URL. Les valeurs ne sont pas décodées. Syntaxe
extractURLParameters(url)
Arguments Valeur renvoyée Tableau de chaînes name=value correspondant aux paramètres d’URL. Array(String) Exemples Exemple d’utilisation
Query
SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
Response
┌─extractURLParame⋯&param2=value2')─┐
│ ['param1=value1','param2=value2'] │
└───────────────────────────────────┘

firstSignificantSubdomain

Introduit dans : v1.1.0 Renvoie le « premier sous-domaine significatif ». Le « premier sous-domaine significatif » est un domaine de deuxième niveau s’il s’agit de « com », « net », « org » ou « co ». Sinon, il s’agit d’un domaine de troisième niveau. Par exemple, firstSignificantSubdomain(‘https://news.clickhouse.com/&#39;) = ‘clickhouse’, firstSignificantSubdomain (‘https://news.clickhouse.com.tr/&#39;) = ‘clickhouse’. La liste des domaines de deuxième niveau « non significatifs » et d’autres détails d’implémentation peuvent changer à l’avenir. Syntaxe
firstSignificantSubdomain(url)
Arguments
  • Aucun.
Valeur renvoyée Exemples firstSignificantSubdomain
Query
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
Response

firstSignificantSubdomainCustom

Introduit dans : v21.1.0 Renvoie le premier sous-domaine significatif d’une URL à l’aide d’une liste personnalisée de TLD (Top-Level Domain). Le nom de cette liste personnalisée de TLD désigne une configuration qui définit quels suffixes de domaine doivent être traités comme des domaines de premier niveau. Cela est utile pour les hiérarchies de TLD non standard. La fonction utilise un algorithme simplifié d’analyse d’URL, en supposant que le protocole et tout ce qui suit ont été supprimés. Syntaxe
firstSignificantSubdomainCustom(url, tld_list_name)
Arguments
  • url — L’URL dont extraire le sous-domaine. String
  • tld_list_name — Nom de la liste de TLD personnalisée définie dans la configuration. String
Valeur renvoyée Renvoie le premier sous-domaine significatif. String Exemples Utilisation de base
Query
SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainCustomRFC

Introduit dans : v22.10.0 Semblable à firstSignificantSubdomainCustom, mais utilise une analyse d’URL conforme à la RFC 3986 plutôt que l’algorithme simplifié. Syntaxe
firstSignificantSubdomainCustomRFC(url, tld_list_name)
Arguments
  • url — L’URL à partir de laquelle extraire le sous-domaine. String
  • tld_list_name — Nom de la liste de TLD personnalisée définie dans la configuration. String
Valeur renvoyée Renvoie le premier sous-domaine significatif. String Exemples Utilisation de base
Query
SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
Response
example

firstSignificantSubdomainRFC

Introduit dans : v22.10.0 Renvoie le “premier sous-domaine significatif” conformément à la RFC 1034. Syntaxe
firstSignificantSubdomainRFC(url)
Arguments
  • Aucun.
Valeur renvoyée Exemples

fragment

Introduit dans : v1.1.0 Renvoie l’identifiant de fragment sans le caractère # initial. Syntaxe
fragment(url)
Arguments Valeur renvoyée Renvoie l’identifiant de fragment sans le caractère # initial. String Exemples Exemple d’utilisation
Query
SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1-create-a-clickhouse-service');
Response
┌─fragment('http⋯ouse-service')─┐
│ 1-create-a-clickhouse-service │
└───────────────────────────────┘

netloc

Introduit dans : v20.5.0 Extrait l’emplacement réseau (username:password@host:port) d’une URL. Syntaxe
netloc(url)
Arguments Valeur renvoyée Renvoie username:password@host:port à partir de l’URL donnée. String Exemples Exemple d’utilisation
Query
SELECT netloc('http://paul@www.example.com:80/');
Response
┌─netloc('http⋯e.com:80/')─┐
│ paul@www.example.com:80  │
└──────────────────────────┘

path

Introduit dans : v1.1.0 Renvoie le chemin d’une URL, sans la chaîne de requête. Syntaxe
path(url)
Arguments Valeur renvoyée Renvoie le chemin de l’URL sans chaîne de requête. String Exemples Exemple d’utilisation
Query
SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value');
Response
┌─path('https://clickhouse.com/en/sql-reference/functions/url-functions/?query=value')─┐
│ /docs/sql-reference/functions/url-functions/                                         │
└──────────────────────────────────────────────────────────────────────────────────────┘

pathFull

Introduit dans : v1.1.0 Comme path, mais inclut la chaîne de requête et le fragment de l’URL. Syntaxe
pathFull(url)
Arguments Valeur renvoyée Renvoie le chemin de l’URL, y compris la chaîne de requête et le fragment. String Exemples Exemple d’utilisation
Query
SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value#section');
Response
┌─pathFull('https://clickhouse.com⋯unctions/?query=value#section')─┐
│ /docs/sql-reference/functions/url-functions/?query=value#section │
└──────────────────────────────────────────────────────────────────┘

port

Introduit dans : v20.5.0 Renvoie le port d’une URL, ou default_port si l’URL ne contient pas de port ou si elle ne peut pas être analysée. Syntaxe
port(url[, default_port])
Arguments
  • url — URL. String
  • default_port — Facultatif. Numéro de port par défaut à renvoyer. 0 par défaut. UInt16
Valeur renvoyée Renvoie le port de l’URL, ou le port par défaut si l’URL ne contient pas de port ou en cas d’erreur de validation. UInt16 Exemples Exemple d’utilisation
Query
SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/docs', 443);
Response
┌─port('https://clickhouse.com:8443/docs')─┬─port('https://clickhouse.com/docs', 443)─┐
│                                     8443 │                                      443 │
└──────────────────────────────────────────┴──────────────────────────────────────────┘

portRFC

Introduit dans : v22.10.0 Renvoie le port ou default_port si l’URL ne contient pas de port ou ne peut pas être analysée. Semblable à port, mais conforme à la RFC 3986. Syntaxe
portRFC(url[, default_port])
Arguments
  • url — URL. String
  • default_port — Facultatif. Le numéro de port par défaut à renvoyer. 0 par défaut. UInt16
Valeur renvoyée Renvoie le port, ou le port par défaut s’il n’y a pas de port dans l’URL ou en cas d’erreur de validation. UInt16 Exemples Exemple d’utilisation
Query
SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:password@example.com:8080/');
Response
┌─port('http:/⋯com:8080/')─┬─portRFC('htt⋯com:8080/')─┐
│                        0 │                     8080 │
└──────────────────────────┴──────────────────────────┘

protocol

Introduit dans : v1.1.0 Extrait le protocole d’une URL. Exemples de valeurs renvoyées : http, https, ftp, mailto, tel, magnet. Syntaxe
protocol(url)
Arguments Valeur renvoyée Renvoye le protocole de l’URL, ou une chaîne vide s’il ne peut pas être déterminé. String Exemples Exemple d’utilisation
Query
SELECT protocol('https://clickhouse.com/');
Response
┌─protocol('https://clickhouse.com/')─┐
│ https                               │
└─────────────────────────────────────┘

queryString

Introduit dans : v1.1.0 Renvoie la chaîne de requête d’une URL, sans le point d’interrogation initial, ni #, ni ce qui suit #. Syntaxe
queryString(url)
Arguments Valeur renvoyée Renvoie la chaîne de requête de l’URL sans le point d’interrogation initial ni le fragment. String Exemples Exemple d’utilisation
Query
SELECT queryString('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryString(⋯3#section')─┐
│ query=value&param=123    │
└──────────────────────────┘

queryStringAndFragment

Introduit dans : v1.1.0 Renvoie la chaîne de requête et l’identifiant de fragment d’une URL. Syntaxe
queryStringAndFragment(url)
Arguments Valeur renvoyée Renvoie la chaîne de requête et l’identifiant de fragment de l’URL. String Exemples Exemple d’utilisation
Query
SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section');
Response
┌─queryStringAnd⋯=123#section')─┐
│ query=value&param=123#section │
└───────────────────────────────┘

topLevelDomain

Introduit dans : v1.1.0 Extrait le domaine de premier niveau d’une URL.
L’URL peut être spécifiée avec ou sans protocole. Par exemple :
svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://clickhouse.com/time/
Syntaxe
topLevelDomain(url)
Arguments Valeur renvoyée Renvoie le nom de domaine si la chaîne d’entrée peut être interprétée comme une URL. Sinon, une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk');
Response
┌─topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')─┐
│ com                                                                │
└────────────────────────────────────────────────────────────────────┘

topLevelDomainRFC

Introduit dans : v22.10.0 Extrait le domaine de premier niveau d’une URL. Similaire à topLevelDomain, mais conforme à la RFC 3986. Syntaxe
topLevelDomainRFC(url)
Arguments Valeur renvoyée Nom de domaine si la chaîne d’entrée peut être interprétée comme une URL. Sinon, une chaîne vide. String Exemples Exemple d’utilisation
Query
SELECT topLevelDomain('http://foo:foo%41bar@foo.com'), topLevelDomainRFC('http://foo:foo%41bar@foo.com');
Response
┌─topLevelDomain('http://foo:foo%41bar@foo.com')─┬─topLevelDomainRFC('http://foo:foo%41bar@foo.com')─┐
│                                                │ com                                               │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
Dernière modification le 25 juin 2026