Visão geral
As funções mencionadas nesta seção são otimizadas para máximo desempenho e, em sua maior parte, não seguem o padrão RFC-3986.
As funções que implementam a RFC-3986 têm
RFC acrescentado ao nome da função e, em geral, são mais lentas.RFC ao trabalhar com domínios registrados publicamente que não contenham informações de usuário nem símbolos @.
A tabela abaixo detalha quais símbolos em uma URL podem (✔) ou não podem (✗) ser interpretados pelas respectivas variantes com RFC e sem RFC:
os símbolos marcados com
* são subdelimitadores na RFC 3986 e permitidos para informações do usuário após o símbolo @.
Há dois tipos de funções de URL:
- Funções que extraem partes de uma URL. Se a parte relevante não estiver presente em uma URL, uma string vazia será retornada.
- Funções que removem parte de uma URL. Se a URL não tiver nada equivalente, ela permanecerá inalterada.
As funções abaixo são geradas a partir da tabela de sistema
system.functions.URLHierarchy
/, ? e # no caminho e na string de consulta. Caracteres separadores consecutivos são considerados como um só. O resultado inclui o protocolo e o host como primeiro elemento, com caminhos progressivamente mais longos formando uma hierarquia.
Sintaxe
url— A URL a ser processada.String
Array(String)
Exemplos
Uso básico
Query
Response
URLPathHierarchy
/, ? e #. Diferentemente de URLHierarchy, o resultado não inclui o protocolo nem o host — ele começa no path. Caracteres separadores consecutivos são considerados como um só.
Sintaxe
url— A URL a ser processada.String
Array(String)
Exemplos
Uso básico
Query
Response
cutFragment
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
cutQueryString
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
cutQueryStringAndFragment
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomain
url— URL ou string de domínio a ser processada.String
String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomainCustom
url— String de URL ou de domínio a ser processada.Stringtld_list_name— Nome da lista personalizada de TLD configurada no ClickHouse.const String
String
Exemplos
Usando uma lista personalizada de TLD para domínios não padrão
Query
Response
cutToFirstSignificantSubdomainCustomRFC
url— String de URL ou de domínio a ser processada de acordo com a RFC 3986. -tld_list_name— Nome da lista personalizada de TLD configurada no ClickHouse.
String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomainCustomWithWWW
url— URL ou string de domínio a ser processada. -tld_list_name— Nome da lista personalizada de TLD configurada no ClickHouse.
String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomainCustomWithWWWRFC
www.
Aceita o nome de uma lista personalizada de TLDs.
Pode ser útil se você precisar de uma lista de TLDs atualizada ou se tiver uma lista personalizada.
Semelhante a cutToFirstSignificantSubdomainCustomWithWWW, mas está em conformidade com a RFC 3986.
Exemplo de configuração
url— URL ou string de domínio a ser processado de acordo com a RFC 3986. -tld_list_name— Nome da lista de TLD personalizada configurada no ClickHouse.
www. String
Exemplos
Processamento RFC 3986 preservando www com lista de TLD personalizada
Query
Response
cutToFirstSignificantSubdomainRFC
cutToFirstSignificantSubdomain, mas está em conformidade com a RFC 3986.
Sintaxe
url— URL ou string de domínio a ser processado de acordo com a RFC 3986.String
String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomainWithWWW
cutToFirstSignificantSubdomain, mas preserva o prefixo ‘www.’, se presente.
Sintaxe
url— URL ou string de domínio a ser processada.String
www), quando possível; caso contrário, retorna uma string vazia. String
Exemplos
Exemplo de uso
Query
Response
cutToFirstSignificantSubdomainWithWWWRFC
cutToFirstSignificantSubdomainWithWWW, mas em conformidade com a RFC 3986.
Sintaxe
url— URL ou string de domínio a ser processado de acordo com a RFC 3986.
String
Exemplos
Exemplo de uso
Query
Response
cutURLParameter
name de uma URL, se ele estiver presente.
Esta função não codifica nem decodifica caracteres nos nomes dos parâmetros; por exemplo, Client ID e Client%20ID são tratados como nomes de parâmetros diferentes.
Sintaxe
url— URL.Stringname— Nome do parâmetro da URL.StringouArray(String)
name removido. String
Exemplos
Exemplo de uso
Query
Response
cutWWW
www., se presente, do domínio da URL.
Sintaxe
url— URL.String
www. removido do domínio. String
Exemplos
Exemplo de uso
Query
Response
decodeURLComponent
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
decodeURLFormComponent
+ são convertidos em espaços e os caracteres codificados por percentual são decodificados.
Sintaxe
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
domain
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
domainRFC
domain, mas compatível com a RFC 3986.
Sintaxe
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
domainWithoutWWW
www. inicial, se houver.
Sintaxe
url— URL.String
www. no início); caso contrário, retorna uma string vazia. String
Exemplos
Exemplo de uso
Query
Response
domainWithoutWWWRFC
www. no início, se houver. Semelhante a domainWithoutWWW, mas em conformidade com a RFC 3986.
Sintaxe
url— URL.String
www. no início); caso contrário, retorna uma string vazia. String
Exemplos
Exemplo de uso
Query
Response
encodeURLComponent
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
encodeURLFormComponent
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
extractURLParameter
name na URL, se ele estiver presente; caso contrário, retorna uma string vazia.
Se houver vários parâmetros com esse nome, a primeira ocorrência será retornada.
A função pressupõe que o parâmetro no argumento url esteja codificado da mesma forma que no argumento name.
Sintaxe
String
Exemplos
Exemplo de uso
Query
Response
extractURLParameterNames
url— URL.String
Array(String)
Exemplos
Exemplo de uso
Query
Response
extractURLParameters
name=value correspondente aos parâmetros da URL.
Os valores não são decodificados.
Sintaxe
url— URL.String
name=value correspondentes aos parâmetros da URL. Array(String)
Exemplos
Exemplo de uso
Query
Response
firstSignificantSubdomain
- Nenhum.
Query
Response
firstSignificantSubdomainCustom
url— A URL da qual o subdomínio será extraído.Stringtld_list_name— Nome da lista de TLD personalizada da configuração.String
String
Exemplos
Uso básico
Query
Response
firstSignificantSubdomainCustomRFC
firstSignificantSubdomainCustom, mas usa parsing de URL compatível com a RFC 3986 em vez do algoritmo simplificado.
Sintaxe
url— URL da qual o subdomínio será extraído.Stringtld_list_name— Nome da lista de TLD personalizada da configuração.String
String
Exemplos
Uso básico
Query
Response
firstSignificantSubdomainRFC
- Nenhum.
fragment
url— URL.String
hash inicial. String
Exemplos
Exemplo de uso
Query
Response
netloc
username:password@host:port) de uma URL.
Sintaxe
url— URL.String
username:password@host:port a partir de uma determinada URL. String
Exemplos
Exemplo de uso
Query
Response
path
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
pathFull
path, mas inclui a string de consulta e o fragmento da URL.
Sintaxe
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
port
default_port se a URL não contiver uma porta ou não puder ser analisada.
Sintaxe
url— URL.Stringdefault_port— Opcional. O número da porta padrão a ser retornado.0por padrão.UInt16
UInt16
Exemplos
Exemplo de uso
Query
Response
portRFC
default_port se a URL não contiver uma porta ou não puder ser analisada.
Semelhante a port, mas em conformidade com a RFC 3986.
Sintaxe
url— URL.Stringdefault_port— Opcional. Número da porta padrão a ser retornado.0por padrão.UInt16
UInt16
Exemplos
Exemplo de uso
Query
Response
protocol
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
queryString
# nem nada após o #.
Sintaxe
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
queryStringAndFragment
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
topLevelDomain
A URL pode ser especificada com ou sem protocolo.
Por exemplo:
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response
topLevelDomainRFC
Introduzido em: v22.10.0 Extrai o domínio de nível superior de uma URL. Semelhante atopLevelDomain, mas em conformidade com a RFC 3986.
Sintaxe
url— URL.String
String
Exemplos
Exemplo de uso
Query
Response