Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funciones para trabajar con URL

Descripción general

Por lo general, puedes usar las variantes de función sin RFC al trabajar con dominios registrados públicamente que no contienen ni cadenas de información de usuario ni símbolos @. La tabla siguiente detalla qué símbolos de una URL pueden () o no pueden () analizarse con las respectivas variantes RFC y sin RFC:

Símbolo non-RFC RFC
' '
\t
<
>
% ✔*
{
}
\
^
~ ✔*
[
]
; ✔*
= ✔*
& ✔*

Los símbolos marcados con * son subdelimitadores en RFC 3986 y están permitidos en la información de usuario después del símbolo @.

Hay dos tipos de funciones de URL:

  • Funciones que extraen partes de una URL. Si la parte correspondiente no está presente en una URL, se devuelve una cadena vacía.
  • Funciones que eliminan una parte de una URL. Si la URL no tiene nada parecido, la URL permanece sin cambios.

URLHierarchy

Introducido en: v1.1.0

Devuelve un array que contiene la URL truncada al final en los símbolos /, ? y # de la ruta y la cadena de consulta. Los caracteres separadores consecutivos se consideran uno solo. El resultado incluye el protocolo y el host como primer elemento, seguido de rutas cada vez más largas que forman una jerarquía.

Sintaxis

URLHierarchy(url)

Argumentos

  • url — La URL que se debe procesar. String

Valor devuelto

Devuelve un array de URL cada vez más largas que forman una jerarquía. Array(String)

Ejemplos

Uso básico

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

Introducido en: v1.1.0

Devuelve un array que contiene el componente de ruta de la URL, truncado al final por los símbolos /, ? y #. A diferencia de URLHierarchy, el resultado no incluye el protocolo ni el host; empieza en la ruta. Los caracteres separadores consecutivos se cuentan como uno.

Sintaxis

URLPathHierarchy(url)

Argumentos

  • url — La URL que se va a procesar. String

Valor devuelto

Devuelve un array de componentes de la ruta de la URL cada vez más largos que forman una jerarquía. Array(String)

Ejemplos

Uso básico

SELECT URLPathHierarchy('https://example.com/a/b?c=1')
['/a/','/a/b?','/a/b?c=1']

cutFragment

Introducido en: v1.1.0

Elimina el identificador de fragmento, incluida la almohadilla, de una URL.

Sintaxis

cutFragment(url)

Argumentos

Valor devuelto

Devuelve la URL sin el identificador de fragmento. String

Ejemplos

Ejemplo de uso

SELECT cutFragment('http://example.com/path?query=value#fragment123');
┌─cutFragment('http://example.com/path?query=value#fragment123')─┐
│ http://example.com/path?query=value                            │
└────────────────────────────────────────────────────────────────┘

cutQueryString

Introducido en: v1.1.0

Elimina la cadena de consulta de una URL, incluido el signo de interrogación.

Sintaxis

cutQueryString(url)

Argumentos

Valor devuelto

Devuelve la URL sin la cadena de consulta. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Elimina la cadena de consulta y el identificador de fragmento de una URL, incluidos el signo de interrogación y el signo #.

Sintaxis

cutQueryStringAndFragment(url)

Argumentos

Valor devuelto

Devuelve la URL sin la cadena de consulta ni el identificador del fragmento. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo.

Sintaxis

cutToFirstSignificantSubdomain(url)

Argumentos

  • url — URL o cadena de dominio para procesar. String

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, si es posible; de lo contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v21.1.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. Acepta el nombre de una lista de TLD personalizada. Esta función puede resultar útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada.

Ejemplo de configuración

<!-- <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>
    <!-- NOTA: la ruta está bajo top_level_domains_path -->
</top_level_domains_lists>

Sintaxis

cutToFirstSignificantSubdomainCustom(url, tld_list_name)

Argumentos

  • url — URL o cadena de dominio que se va a procesar. String
  • tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse. const String

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. String

Ejemplos

Uso de una lista de TLD personalizada para dominios no estándar

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

cutToFirstSignificantSubdomainCustomRFC

Introducido en: v22.10.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. Acepta el nombre de una lista de TLD personalizada. Esta función puede ser útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada. Similar a cutToFirstSignificantSubdomainCustom, pero conforme con RFC 3986.

Ejemplo de configuración

<!-- <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>

Sintaxis

cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)

Argumentos

  • url — URL o cadena de dominio que se procesará según la RFC 3986. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo. String

Ejemplos

Ejemplo de uso

SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list');
┌─cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list')─┐
│ foo                                                                      │
└──────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWW

Introducido en: v21.1.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar 'www'. Acepta el nombre de una lista de TLD personalizada. Puede ser útil si necesita una lista de TLD actualizada o si tiene una lista personalizada.

Ejemplo de configuración

<!-- <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>
    <!-- NOTA: path está bajo top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)

Argumentos

  • url — URL o cadena de dominio que se procesará. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.

Valor devuelto

Parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar 'www'. String

Ejemplos

Ejemplo de uso

SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list');
┌─cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list')─┐
│ www.foo                                                                      │
└──────────────────────────────────────────────────────────────────────────────┘

cutToFirstSignificantSubdomainCustomWithWWWRFC

Introducido en: v22.10.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar www. Acepta un nombre de lista de TLD personalizada. Puede resultar útil si necesitas una lista de TLD actualizada o si tienes una lista personalizada. Es similar a cutToFirstSignificantSubdomainCustomWithWWW, pero cumple con RFC 3986.

Ejemplo de configuración

{/* <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)

Argumentos

  • url — URL o cadena de dominio que se procesará conforme a RFC 3986. - tld_list_name — Nombre de la lista de TLD personalizada configurada en ClickHouse.

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, sin eliminar www. String

Ejemplos

Análisis según RFC 3986 que conserva www con una lista de TLD personalizada

SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list')
example.custom

cutToFirstSignificantSubdomainRFC

Introducido en: v22.10.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el "primer subdominio significativo". Es similar a cutToFirstSignificantSubdomain, pero cumple con RFC 3986.

Sintaxis

cutToFirstSignificantSubdomainRFC(url)

Argumentos

  • url — URL o cadena de dominio que se va a procesar según la RFC 3986. String

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo, si es posible; en caso contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v20.12.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el "primer subdominio significativo", sin eliminar 'www.'.

Es similar a cutToFirstSignificantSubdomain, pero conserva el prefijo 'www.' si está presente.

Sintaxis

cutToFirstSignificantSubdomainWithWWW(url)

Argumentos

  • url — URL o cadena de dominio que se va a procesar. String

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo (con www), si es posible; de lo contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v22.10.0

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el "primer subdominio significativo", sin eliminar 'www'. Es similar a cutToFirstSignificantSubdomainWithWWW, pero cumple con RFC 3986.

Sintaxis

cutToFirstSignificantSubdomainWithWWWRFC(url)

Argumentos

  • url — URL o cadena de dominio que se procesará según la RFC 3986.

Valor devuelto

Devuelve la parte del dominio que incluye los subdominios de nivel superior hasta el primer subdominio significativo (con 'www'), si es posible; de lo contrario, devuelve una cadena vacía String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Elimina la primera aparición de name=value de cada parámetro solicitado de una URL. Solo se buscan parámetros escritos como name=, por lo que un parámetro de indicador sin valor se deja intacto; por ejemplo, cutURLParameter('http://bigmir.net/?a&c=d', 'a') devuelve la URL sin cambios. Esta función no codifica ni descodifica los caracteres de los nombres de los parámetros; por ejemplo, Client ID y Client%20ID se tratan como nombres de parámetro distintos.

Sintaxis

cutURLParameter(url, name)

Argumentos

Valor devuelto

URL con la primera aparición de name=value de cada parámetro solicitado eliminada. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Elimina el prefijo www. del dominio de la URL, si está presente.

Sintaxis

cutWWW(url)

Argumentos

Valor devuelto

Devuelve la URL con el prefijo www. eliminado del dominio. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Toma una cadena codificada en URL como entrada y la decodifica para devolverla a su forma original y legible.

Sintaxis

decodeURLComponent(url)

Argumentos

Valor devuelto

Devuelve la URL decodificada. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Decodifica cadenas codificadas en URL según las reglas de codificación de formularios (RFC-1866), donde los signos + se convierten en espacios y se decodifican los caracteres codificados mediante porcentaje.

Sintaxis

decodeURLFormComponent(url)

Argumentos

Valor devuelto

Devuelve la URL decodificada. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Extrae el hostname de una URL.

La URL puede especificarse con o sin protocolo.

Sintaxis

domain(url)

Argumentos

Valor devuelto

Devuelve el nombre del host si la cadena de entrada se puede analizar como una URL; de lo contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v22.10.0

Extrae el hostname de una URL. Similar a domain, pero cumple con RFC 3986.

Sintaxis

domainRFC(url)

Argumentos

Valor devuelto

Devuelve el nombre del host si la cadena de entrada puede interpretarse como una URL; de lo contrario, una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Devuelve el dominio de una URL sin el prefijo www., si está presente.

Sintaxis

domainWithoutWWW(url)

Argumentos

Valor devuelto

Devuelve el nombre de dominio si la cadena de entrada puede analizarse como una URL (sin www. al principio); de lo contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

SELECT domainWithoutWWW('http://paul@www.example.com:80/');
┌─domainWithoutWWW('http://paul@www.example.com:80/')─┐
│ example.com                                         │
└─────────────────────────────────────────────────────┘

domainWithoutWWWRFC

Introducido en: v1.1.0

Devuelve el dominio sin www. al principio, si está presente. Es similar a domainWithoutWWW, pero cumple con la RFC 3986.

Sintaxis

domainWithoutWWWRFC(url)

Argumentos

Valor devuelto

Devuelve el nombre de dominio si la cadena de entrada puede analizarse como una URL (sin www. al principio); de lo contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v22.3.0

Toma una cadena normal y la convierte a un formato codificado para URL (codificación porcentual), en el que los caracteres especiales se reemplazan por sus equivalentes de codificación porcentual.

Sintaxis

encodeURLComponent(url)

Argumentos

Valor devuelto

Devuelve la URL codificada. String

Ejemplos

Ejemplo de uso

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

Introducido en: v22.3.0

Codifica cadenas según las reglas de codificación de formularios (RFC-1866), donde los espacios se convierten en signos + y los caracteres especiales se codifican mediante codificación porcentual.

Sintaxis

encodeURLFormComponent(url)

Argumentos

Valor devuelto

Devuelve la URL codificada. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Devuelve el valor del parámetro name de la URL, si está presente; de lo contrario, devuelve una cadena vacía. Si hay varios parámetros con este nombre, se devuelve la primera coincidencia. La función asume que el parámetro del argumento url está codificado de la misma forma que el argumento name.

Sintaxis

extractURLParameter(url, name)

Argumentos

  • url — URL. String
  • name — Nombre del parámetro. String

Valor devuelto

Devuelve el valor del parámetro de URL con el nombre indicado. String

Ejemplos

Ejemplo de uso

SELECT extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1');
┌─extractURLParameter('http://example.com/?param1=value1&param2=value2', 'param1')─┐
│ value1                                                                           │
└──────────────────────────────────────────────────────────────────────────────────┘

extractURLParameterNames

Introducido en: v1.1.0

Devuelve un array con las cadenas correspondientes a los nombres de los parámetros de URL. Los valores no se decodifican.

Sintaxis

extractURLParameterNames(url)

Argumentos

Valor devuelto

Devuelve un array de cadenas con los nombres de los parámetros de URL. Array(String)

Ejemplos

Ejemplo de uso

SELECT extractURLParameterNames('http://example.com/?param1=value1&param2=value2');
┌─extractURLParameterNames('http://example.com/?param1=value1&param2=value2')─┐
│ ['param1','param2']                                                         │
└─────────────────────────────────────────────────────────────────────────────┘

extractURLParameters

Introducido en: v1.1.0

Devuelve un array de cadenas name=value correspondientes a los parámetros de URL. Los valores no se decodifican.

Sintaxis

extractURLParameters(url)

Argumentos

Valor devuelto

Devuelve un array de cadenas con formato name=value correspondiente a los parámetros de URL. Array(String)

Ejemplos

Ejemplo de uso

SELECT extractURLParameters('http://example.com/?param1=value1&param2=value2');
┌─extractURLParameters('http://example.com/?param1=value1&param2=value2')─┐
│ ['param1=value1','param2=value2']                                       │
└─────────────────────────────────────────────────────────────────────────┘

firstSignificantSubdomain

Introducido en: v1.1.0

Devuelve el "primer subdominio significativo".

El primer subdominio significativo es un dominio de segundo nivel si es 'com', 'net', 'org' o 'co'. En caso contrario, es un dominio de tercer nivel.

Por ejemplo, firstSignificantSubdomain('https://news.clickhouse.com/&#39;) = 'clickhouse', firstSignificantSubdomain ('https://news.clickhouse.com.tr/&#39;) = 'clickhouse'.

La lista de dominios de segundo nivel "insignificantes" y otros detalles de implementación podrían cambiar en el futuro.

Sintaxis

firstSignificantSubdomain(url)

Argumentos

  • Ninguno.

Valor devuelto

Ejemplos

firstSignificantSubdomain

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

firstSignificantSubdomainCustom

Introducido en: v21.1.0

Devuelve el primer subdominio significativo de una URL a partir de una lista personalizada de TLD (dominios de nivel superior). El nombre de la lista personalizada de TLD hace referencia a una configuración que define qué sufijos de dominio deben tratarse como dominios de nivel superior. Esto resulta útil para jerarquías de TLD no estándar. La función utiliza un algoritmo simplificado de análisis de URL que asume que se han eliminado el protocolo y todo lo que le sigue.

Sintaxis

firstSignificantSubdomainCustom(url, tld_list_name)

Argumentos

  • url — La URL de la que se extrae el subdominio. String
  • tld_list_name — Nombre de la lista personalizada de TLD de la configuración. String

Valor devuelto

Devuelve el primer subdominio significativo. String

Ejemplos

Uso básico

SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list')
example

firstSignificantSubdomainCustomRFC

Introducido en: v22.10.0

Similar a firstSignificantSubdomainCustom, pero utiliza un análisis de URL compatible con RFC 3986 en lugar del algoritmo simplificado.

Sintaxis

firstSignificantSubdomainCustomRFC(url, tld_list_name)

Argumentos

  • url — La URL de la que extraer el subdominio. String
  • tld_list_name — Nombre de la lista de TLD personalizada de la configuración. String

Valor devuelto

Devuelve el primer subdominio significativo. String

Ejemplos

Uso básico

SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list')
example

firstSignificantSubdomainRFC

Introducido en: v22.10.0

Devuelve el "primer subdominio significativo" de acuerdo con la RFC 1034.

Sintaxis

firstSignificantSubdomainRFC(url)

Argumentos

  • Ninguno.

Valor devuelto

Ejemplos

fragment

Introducido en: v1.1.0

Devuelve el identificador del fragmento sin el símbolo hash inicial.

Sintaxis

fragment(url)

Argumentos

Valor devuelto

Devuelve el identificador del fragmento sin el símbolo hash inicial. String

Ejemplos

Ejemplo de uso

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

Introducido en: v20.5.0

Extrae la ubicación de red (username:password@host:port) de una URL.

Sintaxis

netloc(url)

Argumentos

Valor devuelto

Devuelve username:password@host:port a partir de una URL dada. String

Ejemplos

Ejemplo de uso

SELECT netloc('http://paul@www.example.com:80/');
┌─netloc('http://paul@www.example.com:80/')─┐
│ paul@www.example.com:80                   │
└───────────────────────────────────────────┘

path

Introducido en: v1.1.0

Devuelve la ruta de una URL sin la cadena de consulta.

Sintaxis

path(url)

Argumentos

Valor devuelto

Devuelve la ruta de la URL sin la cadena de consulta. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Igual que path, pero incluye la cadena de consulta y el fragmento de la URL.

Sintaxis

pathFull(url)

Argumentos

Valor devuelto

Devuelve la ruta de la URL, incluida la cadena de consulta y el fragmento. String

Ejemplos

Ejemplo de uso

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

Introducido en: v20.5.0

Devuelve el puerto de una URL, o default_port si la URL no incluye ningún puerto o no se puede analizar.

Sintaxis

port(url[, default_port])

Argumentos

  • url — URL. String
  • default_port — Opcional. Número de puerto predeterminado que se devolverá. 0 de forma predeterminada. UInt16

Valor devuelto

Devuelve el puerto de la URL o el puerto predeterminado si la URL no incluye un puerto o en caso de error de validación. UInt16

Ejemplos

Ejemplo de uso

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

Introducido en: v22.10.0

Devuelve el puerto o default_port si la URL no contiene ningún puerto o no se puede analizar. Similar a port, pero conforme a RFC 3986.

Sintaxis

portRFC(url[, default_port])

Argumentos

  • url — URL. String
  • default_port — Opcional. Número de puerto predeterminado que se devuelve. 0 de forma predeterminada. UInt16

Valor devuelto

Devuelve el puerto o el puerto predeterminado si la URL no contiene ningún puerto o en caso de error de validación. UInt16

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Extrae el protocolo de una URL.

Ejemplos de valores devueltos habituales: http, https, ftp, mailto, tel, magnet.

Sintaxis

protocol(url)

Argumentos

Valor devuelto

Devuelve el protocolo de la URL o una cadena vacía si no se puede determinar. String

Ejemplos

Ejemplo de uso

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

queryString

Introducido en: v1.1.0

Devuelve la cadena de consulta de una URL sin el signo de interrogación inicial, el # ni nada de lo que aparece después de #.

Sintaxis

queryString(url)

Argumentos

Valor devuelto

Devuelve la cadena de consulta de la URL, sin el signo de interrogación inicial ni el fragmento. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Devuelve la cadena de consulta y el identificador de fragmento de una URL.

Sintaxis

queryStringAndFragment(url)

Argumentos

Valor devuelto

Devuelve la cadena de consulta y el identificador de fragmento de la URL. String

Ejemplos

Ejemplo de uso

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

Introducido en: v1.1.0

Extrae el dominio de nivel superior de una URL.

Sintaxis

topLevelDomain(url)

Argumentos

Valor devuelto

Devuelve el nombre de dominio si la cadena de entrada puede interpretarse como una URL. En caso contrario, devuelve una cadena vacía. String

Ejemplos

Ejemplo de uso

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

Introducido en: v22.10.0

Extrae el dominio de nivel superior de una URL. Similar a topLevelDomain, pero conforme con la RFC 3986.

Sintaxis

topLevelDomainRFC(url)

Argumentos

Valor devuelto

Nombre de dominio si la cadena de entrada puede interpretarse como una URL. En caso contrario, una cadena vacía. String

Ejemplos

Ejemplo de uso

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