Las funciones mencionadas en esta sección están optimizadas para ofrecer el máximo rendimiento y, en su mayor parte, no siguen el estándar RFC-3986.
Las funciones que implementan RFC-3986 llevan RFC al final del nombre y, por lo general, son más lentas.
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.
Las funciones que aparecen a continuación se generan a partir de la tabla del sistema system.functions.
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
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']
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
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']
Introducido en: v1.1.0
Elimina el identificador de fragmento, incluida la almohadilla, de una URL.
Sintaxis
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 │
└────────────────────────────────────────────────────────────────┘
Introducido en: v1.1.0
Elimina la cadena de consulta de una URL, incluido el signo de interrogación.
Sintaxis
Argumentos
Valor devuelto
Devuelve la URL sin la cadena de consulta. String
Ejemplos
Ejemplo de uso
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
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¶m=123#fragment');
┌─cutQueryStringAndFragment('http://example.com/path?query=value¶m=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>
<!-- NOTA: la ruta está bajo 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')─────┐
│ www.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>
{/* NOTA: path está dentro de 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')
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 │
└───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘
Introducido en: v1.1.0
Elimina el parámetro name de una URL, si está presente.
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 el parámetro name eliminado. 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 │
└──────────────────────────────┴──────────────────────────┘
Introducido en: v1.1.0
Elimina el prefijo www. del dominio de la URL, si está presente.
Sintaxis
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 │
└────────────────────────────────────────────────────────────┘
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
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; │
└────────────────────────────────────────┘
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 │
└───────────────────────────────────────────┘
Introducido en: v1.1.0
Extrae el hostname de una URL.
La URL puede especificarse con o sin protocolo.
Sintaxis
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 │
└────────────────────────────────────────────────────────┘
Introducido en: v22.10.0
Extrae el hostname de una URL.
Similar a domain, pero cumple con RFC 3986.
Sintaxis
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 │
└───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘
Introducido en: v1.1.0
Devuelve el dominio de una URL sin el prefijo www., si está presente.
Sintaxis
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 │
└─────────────────────────────────────────────────────┘
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
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 │
└─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘
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
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 │
└──────────────────────────────────────────────────────────┘
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 │
└───────────────────────────────────────────────────────────┘
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
Valor devuelto
Devuelve el valor del parámetro de la URL con el nombre indicado. String
Ejemplos
Ejemplo de uso
SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'param1');
┌─extractURLPa⋯, 'param1')─┐
│ value1 │
└──────────────────────────┘
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 la URL. Array(String)
Ejemplos
Ejemplo de uso
SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2');
┌─extractURLPa⋯m2=value2')─┐
│ ['param1','param2'] │
└──────────────────────────┘
Introducido en: v1.1.0
Devuelve un array de cadenas name=value correspondientes a los parámetros de la 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¶m2=value2');
┌─extractURLParame⋯¶m2=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/') = ‘clickhouse’, firstSignificantSubdomain(‘https://news.clickhouse.com.tr/') = ‘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
Valor devuelto
Ejemplos
firstSignificantSubdomain
SELECT firstSignificantSubdomain('https://news.clickhouse.com/')
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')
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')
firstSignificantSubdomainRFC
Introducido en: v22.10.0
Devuelve el “primer subdominio significativo” de acuerdo con la RFC 1034.
Sintaxis
firstSignificantSubdomainRFC(url)
Argumentos
Valor devuelto
Ejemplos
Introducido en: v1.1.0
Devuelve el identificador del fragmento sin el símbolo hash inicial.
Sintaxis
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/getting-started/quick-start/cloud#1-create-a-clickhouse-service');
┌─fragment('http⋯ouse-service')─┐
│ 1-create-a-clickhouse-service │
└───────────────────────────────┘
Introducido en: v20.5.0
Extrae la ubicación de red (username:password@host:port) de una URL.
Sintaxis
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⋯e.com:80/')─┐
│ paul@www.example.com:80 │
└──────────────────────────┘
Introducido en: v1.1.0
Devuelve la ruta de una URL sin la cadena de consulta.
Sintaxis
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/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/ │
└──────────────────────────────────────────────────────────────────────────────────────┘
Introducido en: v1.1.0
Igual que path, pero incluye la cadena de consulta y el fragmento de la URL.
Sintaxis
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/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 │
└──────────────────────────────────────────────────────────────────┘
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 │
└──────────────────────────────────────────┴──────────────────────────────────────────┘
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:/⋯com:8080/')─┬─portRFC('htt⋯com:8080/')─┐
│ 0 │ 8080 │
└──────────────────────────┴──────────────────────────┘
Introducido en: v1.1.0
Extrae el protocolo de una URL.
Ejemplos de valores devueltos habituales: http, https, ftp, mailto, tel, magnet.
Sintaxis
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 │
└─────────────────────────────────────┘
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
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¶m=123#section');
┌─queryString(⋯3#section')─┐
│ query=value¶m=123 │
└──────────────────────────┘
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¶m=123#section');
┌─queryStringAnd⋯=123#section')─┐
│ query=value¶m=123#section │
└───────────────────────────────┘
Introducido en: v1.1.0
Extrae el dominio de nivel superior de una URL.
La URL puede especificarse con o sin protocolo.
Por ejemplo:svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://clickhouse.com/time/
Sintaxis
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
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 │
└────────────────────────────────────────────────┴───────────────────────────────────────────────────┘