Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions de manipulation des URL

Vue d’ensemble

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 :

Symbol non-RFC RFC
' '
\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.

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

SELECT URLHierarchy('https://example.com/a/b?c=1')
['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

SELECT URLPathHierarchy('https://example.com/a/b?c=1')
['/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

SELECT cutFragment('http://example.com/path?query=value#fragment123');
┌─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

SELECT cutQueryString('http://example.com/path?query=value&param=123#fragment');
┌─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

SELECT cutQueryStringAndFragment('http://example.com/path?query=value&param=123#fragment');
┌─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

SELECT
    cutToFirstSignificantSubdomain('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomain('www.tr'),
    cutToFirstSignificantSubdomain('tr');
┌─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

SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list')
foo.there-is-no-such-domain

cutToFirstSignificantSubdomainCustomRFC

Introduit dans : v22.10.0

Renvoie la partie du domaine qui comprend les sous-domaine de niveau supérieur 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-domaine de niveau supérieur jusqu’au premier sous-domaine significatif. String

Exemples

Exemple d'utilisation

SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─┐
│ 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

SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
┌─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 de TLD personnalisée. Cela peut être utile si vous avez besoin d’une liste de 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

SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
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

SELECT
    cutToFirstSignificantSubdomain('http://user:password@example.com:8080'),
    cutToFirstSignificantSubdomainRFC('http://user:password@example.com:8080');
┌─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

SELECT
    cutToFirstSignificantSubdomainWithWWW('https://news.clickhouse.com.tr/'),
    cutToFirstSignificantSubdomainWithWWW('www.tr'),
    cutToFirstSignificantSubdomainWithWWW('tr');
┌─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

SELECT
    cutToFirstSignificantSubdomainWithWWW('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy'),
    cutToFirstSignificantSubdomainWithWWWRFC('http:%2F%2Fwwwww.nova@mail.ru/economicheskiy');
┌─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 la première occurrence name=value de chaque paramètre demandé d’une URL. Seuls les paramètres écrits sous la forme name= sont pris en compte ; un paramètre indicateur sans valeur reste donc intact. Par exemple, cutURLParameter('http://bigmir.net/?a&c=d', 'a') renvoie l’URL inchangée. 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 la première occurrence name=value de chaque paramètre demandé a été supprimée. String

Exemples

Exemple d’utilisation

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;
┌─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

SELECT cutWWW('http://www.example.com/path?query=value#fragment');
┌─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

SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
┌─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

SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') AS DecodedURL;
┌─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

SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk');
┌─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

SELECT
    domain('http://user:password@example.com:8080/path?query=value#fragment'),
    domainRFC('http://user:password@example.com:8080/path?query=value#fragment');
┌─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

SELECT domainWithoutWWW('http://paul@www.example.com:80/');
┌─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

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');
┌─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

SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedURL;
┌─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

SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS EncodedURL;
┌─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

SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
┌─extractURLParameter('http://example.com/?param1=value1&param2=value2', '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

SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
┌─extractURLParameterNames('http://example.com/?param1=value1&param2=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

SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
┌─extractURLParameters('http://example.com/?param1=value1&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

SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
┌─firstSignificantSubdomain('https://news.clickhouse.com/')─┐
│ clickhouse                                                │
└───────────────────────────────────────────────────────────┘

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

SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
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

SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
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

SELECT fragment('https://clickhouse.com/docs/get-started/setup/cloud#1-create-a-clickhouse-service');
┌─fragment('https://clickhouse.com/docs/get-started/setup/cloud#1-create-a-clickhouse-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

SELECT netloc('http://paul@www.example.com:80/');
┌─netloc('http://paul@www.example.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

SELECT path('https://clickhouse.com/docs/reference/functions/regular-functions/url-functions?query=value');
┌─path('https://clickhouse.com/docs/reference/functions/regular-functions/url-functions?query=value')─┐
│ /docs/reference/functions/regular-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

SELECT pathFull('https://clickhouse.com/docs/reference/functions/regular-functions/url-functions?query=value#section');
┌─pathFull('https://clickhouse.com/docs/reference/functions/regular-functions/url-functions?query=value#section')─┐
│ /docs/reference/functions/regular-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

SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/docs', 443);
┌─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

SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:password@example.com:8080/');
┌─port('http://user:password@example.com:8080/')─┬─portRFC('http://user:password@example.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

SELECT protocol('https://clickhouse.com/');
┌─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

SELECT queryString('https://clickhouse.com/docs?query=value&param=123#section');
┌─queryString('https://clickhouse.com/docs?query=value&param=123#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

SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section');
┌─queryStringAndFragment('https://clickhouse.com/docs?query=value&param=123#section')─┐
│ query=value&param=123#section                                                       │
└─────────────────────────────────────────────────────────────────────────────────────┘

topLevelDomain

Introduit dans : v1.1.0

Extrait le domaine de premier niveau d’une URL.

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

SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk');
┌─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

SELECT topLevelDomain('http://foo:foo%41bar@foo.com'), topLevelDomainRFC('http://foo:foo%41bar@foo.com');
┌─topLevelDomain('http://foo:foo%41bar@foo.com')─┬─topLevelDomainRFC('http://foo:foo%41bar@foo.com')─┐
│                                                │ com                                               │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘
Navigation