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 :
| 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.
Les fonctions ci-dessous sont générées à partir de la table système system.functions.
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
Arguments
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']
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
Arguments
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']
Introduit dans : v1.1.0
Supprime l’identifiant de fragment d’une URL, y compris le signe dièse.
Syntaxe
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 │
└────────────────────────────────────────────────────────────────┘
Introduit dans : v1.1.0
Supprime la chaîne de requête, y compris le point d’interrogation, d’une URL.
Syntaxe
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¶m=123#fragment');
┌─cutQueryString('http://example.com/path?query=value¶m=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¶m=123#fragment');
┌─cutQueryStringAndFragment('http://example.com/path?query=value¶m=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-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
SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
┌─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
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 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
SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
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 │
└───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘
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
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 │
└──────────────────────────────┴──────────────────────────┘
Introduit dans : v1.1.0
Supprime le préfixe www. du domaine de l’URL, s’il est présent.
Syntaxe
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 │
└────────────────────────────────────────────────────────────┘
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
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; │
└────────────────────────────────────────┘
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 │
└───────────────────────────────────────────┘
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
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 │
└────────────────────────────────────────────────────────┘
Introduit dans : v22.10.0
Extrait le nom d’hôte d’une URL.
Similaire à domain, mais conforme à la RFC 3986.
Syntaxe
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 │
└───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘
Introduit dans : v1.1.0
Renvoie le domaine d’une URL sans le www. initial, s’il est présent.
Syntaxe
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 │
└─────────────────────────────────────────────────────┘
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
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 │
└─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘
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
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 │
└──────────────────────────────────────────────────────────┘
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 │
└───────────────────────────────────────────────────────────┘
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¶m2=value2', 'param1');
┌─extractURLPa⋯, 'param1')─┐
│ value1 │
└──────────────────────────┘
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¶m2=value2');
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2'] │
└──────────────────────────┘
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¶m2=value2');
┌─extractURLParame⋯¶m2=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/') = ‘clickhouse’, firstSignificantSubdomain (‘https://news.clickhouse.com.tr/') = ‘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
Valeur renvoyée
Exemples
firstSignificantSubdomain
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
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')
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')
firstSignificantSubdomainRFC
Introduit dans : v22.10.0
Renvoie le “premier sous-domaine significatif” conformément à la RFC 1034.
Syntaxe
firstSignificantSubdomainRFC(url)
Arguments
Valeur renvoyée
Exemples
Introduit dans : v1.1.0
Renvoie l’identifiant de fragment sans le caractère # initial.
Syntaxe
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/getting-started/quick-start/cloud#1-create-a-clickhouse-service');
┌─fragment('http⋯ouse-service')─┐
│ 1-create-a-clickhouse-service │
└───────────────────────────────┘
Introduit dans : v20.5.0
Extrait l’emplacement réseau (username:password@host:port) d’une URL.
Syntaxe
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⋯e.com:80/')─┐
│ paul@www.example.com:80 │
└──────────────────────────┘
Introduit dans : v1.1.0
Renvoie le chemin d’une URL, sans la chaîne de requête.
Syntaxe
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/sql-reference/functions/url-functions/?query=value');
┌─path('https://clickhouse.com/en/sql-reference/functions/url-functions/?query=value')─┐
│ /docs/sql-reference/functions/url-functions/ │
└──────────────────────────────────────────────────────────────────────────────────────┘
Introduit dans : v1.1.0
Comme path, mais inclut la chaîne de requête et le fragment de l’URL.
Syntaxe
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/sql-reference/functions/url-functions/?query=value#section');
┌─pathFull('https://clickhouse.com⋯unctions/?query=value#section')─┐
│ /docs/sql-reference/functions/url-functions/?query=value#section │
└──────────────────────────────────────────────────────────────────┘
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 │
└──────────────────────────────────────────┴──────────────────────────────────────────┘
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:/⋯com:8080/')─┬─portRFC('htt⋯com:8080/')─┐
│ 0 │ 8080 │
└──────────────────────────┴──────────────────────────┘
Introduit dans : v1.1.0
Extrait le protocole d’une URL.
Exemples de valeurs renvoyées : http, https, ftp, mailto, tel, magnet.
Syntaxe
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 │
└─────────────────────────────────────┘
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
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¶m=123#section');
┌─queryString(⋯3#section')─┐
│ query=value¶m=123 │
└──────────────────────────┘
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¶m=123#section');
┌─queryStringAnd⋯=123#section')─┐
│ query=value¶m=123#section │
└───────────────────────────────┘
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
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
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 │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘