7.6 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
54 | Trabajar con URL |
Funciones para trabajar con URL
Todas estas funciones no siguen el RFC. Se simplifican al máximo para mejorar el rendimiento.
Funciones que extraen partes de una URL
Si la parte relevante no está presente en una URL, se devuelve una cadena vacía.
protocolo
Extrae el protocolo de una URL.
Examples of typical returned values: http, https, ftp, mailto, tel, magnet…
dominio
Extrae el nombre de host de una dirección URL.
domain(url)
Parámetros
url
— URL. Type: Cadena.
La URL se puede especificar con o sin un esquema. Ejemplos:
svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://yandex.com/time/
Para estos ejemplos, el domain
función devuelve los siguientes resultados:
some.svn-hosting.com
some.svn-hosting.com
yandex.com
Valores devueltos
- Nombre de host. Si ClickHouse puede analizar la cadena de entrada como una URL.
- Cadena vacía. Si ClickHouse no puede analizar la cadena de entrada como una URL.
Tipo: String
.
Ejemplo
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 │
└────────────────────────────────────────────────────────┘
Nuestros servicios
Devuelve el dominio y no elimina más de uno ‘www.’ desde el principio de la misma, si está presente.
topLevelDomain
Extrae el dominio de nivel superior de una URL.
topLevelDomain(url)
Parámetros
url
— URL. Type: Cadena.
La URL se puede especificar con o sin un esquema. Ejemplos:
svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://yandex.com/time/
Valores devueltos
- Nombre de dominio. Si ClickHouse puede analizar la cadena de entrada como una URL.
- Cadena vacía. Si ClickHouse no puede analizar la cadena de entrada como una URL.
Tipo: String
.
Ejemplo
SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')
┌─topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')─┐
│ com │
└────────────────────────────────────────────────────────────────────┘
FirstSignificantSubdomain
Devuelve el “first significant subdomain”. Este es un concepto no estándar específico de Yandex.Métrica. El primer subdominio significativo es un dominio de segundo nivel si es ‘com’, ‘net’, ‘org’, o ‘co’. De lo contrario, es un dominio de tercer nivel. Por ejemplo, firstSignificantSubdomain (‘https://news.yandex.ru/’) = ‘yandex’, firstSignificantSubdomain (‘https://news.yandex.com.tr/’) = ‘yandex’
. La lista de “insignificant” dominios de segundo nivel y otros detalles de implementación pueden cambiar en el futuro.
cutToFirstSignificantSubdomain
Devuelve la parte del dominio que incluye subdominios de nivel superior “first significant subdomain” (véase la explicación anterior).
Por ejemplo, cutToFirstSignificantSubdomain('https://news.yandex.com.tr/') = 'yandex.com.tr'
.
camino
Devuelve la ruta de acceso. Ejemplo: /top/news.html
La ruta de acceso no incluye la cadena de consulta.
pathFull
Lo mismo que el anterior, pero incluyendo cadena de consulta y fragmento. Ejemplo: /top/news.html?Página = 2 # comentarios
queryString
Devuelve la cadena de consulta. Ejemplo: page=1&lr=213. query-string no incluye el signo de interrogación inicial, así como # y todo después de #.
fragmento
Devuelve el identificador de fragmento. el fragmento no incluye el símbolo hash inicial.
queryStringAndFragment
Devuelve la cadena de consulta y el identificador de fragmento. Ejemplo: page=1#29390.
extractURLParameter(URL, nombre)
Devuelve el valor de la ‘name’ parámetro en la URL, si está presente. De lo contrario, una cadena vacía. Si hay muchos parámetros con este nombre, devuelve la primera aparición. Esta función funciona bajo el supuesto de que el nombre del parámetro está codificado en la URL exactamente de la misma manera que en el argumento pasado.
extractURLParameters (URL)
Devuelve una matriz de cadenas name=value correspondientes a los parámetros de URL. Los valores no se decodifican de ninguna manera.
ExtractURLParameterNames (URL)
Devuelve una matriz de cadenas de nombre correspondientes a los nombres de los parámetros de URL. Los valores no se decodifican de ninguna manera.
URLJerarquía (URL)
Devuelve una matriz que contiene la URL, truncada al final por los símbolos /,? en la ruta y la cadena de consulta. Los caracteres separadores consecutivos se cuentan como uno. El corte se realiza en la posición después de todos los caracteres separadores consecutivos.
URLPathHierarchy (URL)
Lo mismo que el anterior, pero sin el protocolo y el host en el resultado. El elemento / (raíz) no está incluido. Ejemplo: la función se utiliza para implementar informes de árbol de la URL en Yandex. Métrica.
URLPathHierarchy('https://example.com/browse/CONV-6788') =
[
'/browse/',
'/browse/CONV-6788'
]
decodeURLComponent (URL)
Devuelve la dirección URL decodificada. Ejemplo:
SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
┌─DecodedURL─────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1; │
└────────────────────────────────────────┘
Funciones que eliminan parte de una URL
Si la URL no tiene nada similar, la URL permanece sin cambios.
Sistema abierto
Elimina no más de uno ‘www.’ desde el principio del dominio de la URL, si está presente.
cutQueryString
Quita la cadena de consulta. El signo de interrogación también se elimina.
cutFragment
Quita el identificador de fragmento. El signo de número también se elimina.
cutQueryStringAndFragment
Quita la cadena de consulta y el identificador de fragmento. El signo de interrogación y el signo de número también se eliminan.
cutURLParameter(URL, nombre)
Elimina el ‘name’ Parámetro URL, si está presente. Esta función funciona bajo el supuesto de que el nombre del parámetro está codificado en la URL exactamente de la misma manera que en el argumento pasado.