Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções para trabalhar com URLs

Visão geral

Em geral, você pode usar as variantes de função sem 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:

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

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.

URLHierarchy

Introduzido em: v1.1.0

Retorna um array contendo a URL, truncada no final pelos símbolos /, ? 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

URLHierarchy(url)

Argumentos

  • url — A URL a ser processada. String

Valor retornado

Retorna um array de URLs progressivamente mais longas, que formam uma hierarquia. Array(String)

Exemplos

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

Introduzido em: v1.1.0

Retorna um array que contém o componente caminho da URL, truncado no final pelos símbolos /, ? e #. Diferentemente de URLHierarchy, o resultado não inclui o protocolo nem o host — ele começa no caminho. Caracteres separadores consecutivos são considerados como um só.

Sintaxe

URLPathHierarchy(url)

Argumentos

  • url — A URL a ser processada. String

Valor retornado

Retorna um array de componentes do caminho da URL progressivamente mais longos, formando uma hierarquia. Array(String)

Exemplos

Uso básico

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

cutFragment

Introduzido em: v1.1.0

Remove o identificador de fragmento, incluindo o caractere #, de uma URL.

Sintaxe

cutFragment(url)

Argumentos

Valor retornado

Retorna a URL sem o identificador de fragmento. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Remove a string de consulta, incluindo o ponto de interrogação, de uma URL.

Sintaxe

cutQueryString(url)

Argumentos

Valor retornado

Retorna a URL sem a string de consulta. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Remove a string de consulta e o identificador de fragmento de uma URL, incluindo o ponto de interrogação e o sinal de cerquilha (#).

Sintaxe

cutQueryStringAndFragment(url)

Argumentos

Valor retornado

Retorna a URL sem a string de consulta e o identificador de fragmento. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Retorna a parte do domínio que abrange os subdomínios de nível superior até o primeiro subdomínio significativo.

Sintaxe

cutToFirstSignificantSubdomain(url)

Argumentos

  • url — URL ou string de domínio a ser processada. String

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, quando possível; caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v21.1.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. Aceita o nome de uma lista de TLD personalizada. Esta função pode ser útil se você precisar de uma lista de TLD atualizada ou se tiver uma lista personalizada.

Exemplo de configuração

<!-- <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: o caminho está sob top_level_domains_path -->
</top_level_domains_lists>

Sintaxe

cutToFirstSignificantSubdomainCustom(url, tld_list_name)

Argumentos

  • url — String de URL ou de domínio a ser processada. String
  • tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse. const String

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. String

Exemplos

Usando uma lista personalizada de TLD para domínios não padrão

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

cutToFirstSignificantSubdomainCustomRFC

Introduzido em: v22.10.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. Aceita o nome de uma lista de TLDs personalizada. Essa função pode ser útil se você precisar de uma lista de TLDs atualizada ou se tiver uma lista personalizada. Semelhante a cutToFirstSignificantSubdomainCustom, mas em conformidade com a RFC 3986.

Exemplo de configuração

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

Sintaxe

cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name)

Argumentos

  • url — URL ou string de domínio a ser processada de acordo com a RFC 3986. - tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse.

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo. String

Exemplos

Exemplo de uso

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

cutToFirstSignificantSubdomainCustomWithWWW

Introduzido na versão: v21.1.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover 'www'. Aceita o nome de uma lista personalizada de TLDs. Pode ser útil se você precisar de uma lista de TLDs mais atualizada ou se tiver uma lista personalizada.

Exemplo de configuração

<!-- <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: o path está dentro de top_level_domains_path -->
</top_level_domains_lists>
    

**Syntax**

```sql
cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name)

Argumentos

  • url — URL ou string de domínio a ser processada. - tld_list_name — Nome da lista personalizada de TLD configurada no ClickHouse.

Valor retornado

Parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover 'www'. String

Exemplos

Exemplo de uso

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

cutToFirstSignificantSubdomainCustomWithWWWRFC

Introduzido em: v22.10.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover 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

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

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, sem remover www. String

Exemplos

Processamento RFC 3986 preservando www com lista de TLD personalizada

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

cutToFirstSignificantSubdomainRFC

Introduzido em: v22.10.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o "primeiro subdomínio significativo". É semelhante a cutToFirstSignificantSubdomain, mas está em conformidade com a RFC 3986.

Sintaxe

cutToFirstSignificantSubdomainRFC(url)

Argumentos

  • url — URL ou string de domínio a ser processado de acordo com a RFC 3986. String

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo, se possível; caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v20.12.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o "primeiro subdomínio significativo", sem remover 'www.'.

Semelhante a cutToFirstSignificantSubdomain, mas preserva o prefixo 'www.', se presente.

Sintaxe

cutToFirstSignificantSubdomainWithWWW(url)

Argumentos

  • url — URL ou string de domínio a ser processada. String

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo (incluindo www), quando possível; caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v22.10.0

Retorna a parte do domínio que inclui os subdomínios de nível superior até o "primeiro subdomínio significativo", sem remover 'www'. Semelhante a cutToFirstSignificantSubdomainWithWWW, mas em conformidade com a RFC 3986.

Sintaxe

cutToFirstSignificantSubdomainWithWWWRFC(url)

Argumentos

  • url — URL ou string de domínio a ser processado de acordo com a RFC 3986.

Valor retornado

Retorna a parte do domínio que inclui os subdomínios de nível superior até o primeiro subdomínio significativo (com 'www'), se possível; caso contrário, retorna uma string vazia String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Remove a primeira ocorrência de name=value de cada parâmetro solicitado de uma URL. Somente são correspondidos parâmetros escritos como name=, portanto, um parâmetro de flag sem valor permanece intacto; por exemplo, cutURLParameter('http://bigmir.net/?a&c=d', 'a') retorna a URL inalterada. 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

cutURLParameter(url, name)

Argumentos

Valor retornado

URL com a primeira ocorrência de name=value de cada parâmetro solicitado removida. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Remove o prefixo www., se presente, do domínio da URL.

Sintaxe

cutWWW(url)

Argumentos

Valor retornado

Retorna a URL com o prefixo www. removido do domínio. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Recebe como entrada uma string codificada em URL e a decodifica para sua forma original e legível.

Sintaxe

decodeURLComponent(url)

Argumentos

Valor retornado

Retorna a URL decodificada. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Decodifica strings codificadas em URL usando regras de codificação de formulários (RFC-1866), em que os sinais de + são convertidos em espaços e os caracteres codificados por percentual são decodificados.

Sintaxe

decodeURLFormComponent(url)

Argumentos

Valor retornado

Retorna a URL decodificada. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Extrai o nome do host de uma URL.

A URL pode ser especificada com ou sem protocolo.

Sintaxe

domain(url)

Argumentos

Valor retornado

Retorna o nome do host se a string de entrada puder ser interpretada como uma URL; caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v22.10.0

Extrai o hostname de uma URL. Semelhante a domain, mas compatível com a RFC 3986.

Sintaxe

domainRFC(url)

Argumentos

Valor retornado

Retorna o nome do host se a string de entrada puder ser interpretada como uma URL; caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Retorna o domínio de uma URL sem o www. inicial, se houver.

Sintaxe

domainWithoutWWW(url)

Argumentos

Valor retornado

Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL (sem www. no início); caso contrário, retorna uma string vazia. String

Exemplos

Exemplo de uso

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

domainWithoutWWWRFC

Introduzido em: v1.1.0

Retorna o domínio sem www. no início, se houver. Semelhante a domainWithoutWWW, mas em conformidade com a RFC 3986.

Sintaxe

domainWithoutWWWRFC(url)

Argumentos

Valor retornado

Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL (sem www. no início); caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v22.3.0

Recebe uma string comum e a converte para o formato codificado para URL (percent-encoded), no qual caracteres especiais são substituídos por seus equivalentes codificados por porcentagem.

Sintaxe

encodeURLComponent(url)

Argumentos

Valor retornado

Retorna a URL codificada. String

Exemplos

Exemplo 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

Introduzido na versão: v22.3.0

Codifica strings usando regras de codificação de formulários (RFC-1866), em que os espaços são convertidos em sinais de + e os caracteres especiais são codificados por percentual.

Sintaxe

encodeURLFormComponent(url)

Argumentos

Valor retornado

Retorna a URL codificada. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Retorna o valor do parâmetro 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

extractURLParameter(url, name)

Argumentos

Valor retornado

Retorna o valor do parâmetro da URL com o nome especificado. String

Exemplos

Exemplo de uso

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

extractURLParameterNames

Introduzido em: v1.1.0

Retorna um array de strings com os nomes correspondentes aos parâmetros de URL. Os valores não são decodificados.

Sintaxe

extractURLParameterNames(url)

Argumentos

Valor retornado

Retorna um array de strings com os nomes dos parâmetros de URL. Array(String)

Exemplos

Exemplo de uso

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

extractURLParameters

Introduzido em: v1.1.0

Retorna um array de strings name=value correspondente aos parâmetros da URL. Os valores não são decodificados.

Sintaxe

extractURLParameters(url)

Argumentos

Valor retornado

Retorna um array de strings name=value correspondentes aos parâmetros da URL. Array(String)

Exemplos

Exemplo de uso

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

firstSignificantSubdomain

Introduzido em: v1.1.0

Retorna o "subdomínio significativo".

O subdomínio significativo é um domínio de segundo nível se for 'com', 'net', 'org' ou 'co'. Caso contrário, é um domínio de terceiro nível.

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

A lista de domínios de segundo nível "insignificantes" e outros detalhes de implementação poderão mudar no futuro.

Sintaxe

firstSignificantSubdomain(url)

Argumentos

  • Nenhum.

Valor retornado

Exemplos

firstSignificantSubdomain

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

firstSignificantSubdomainCustom

Introduzido em: v21.1.0

Retorna o subdomínio significativo de uma URL usando uma lista personalizada de TLDs (Top-Level Domains). O nome dessa lista personalizada de TLDs se refere a uma configuração que define quais sufixos de domínio devem ser tratados como domínios de nível superior. Isso é útil para hierarquias de TLDs não padrão. A função usa um algoritmo simplificado de parsing de URL, que pressupõe que o protocolo e tudo o que vem depois já foram removidos.

Sintaxe

firstSignificantSubdomainCustom(url, tld_list_name)

Argumentos

  • url — A URL da qual o subdomínio será extraído. String
  • tld_list_name — Nome da lista de TLD personalizada da configuração. String

Valor retornado

Retorna o subdomínio significativo. String

Exemplos

Uso básico

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

firstSignificantSubdomainCustomRFC

Introduzido na versão: v22.10.0

Semelhante a firstSignificantSubdomainCustom, mas usa parsing de URL compatível com a RFC 3986 em vez do algoritmo simplificado.

Sintaxe

firstSignificantSubdomainCustomRFC(url, tld_list_name)

Argumentos

  • url — URL da qual o subdomínio será extraído. String
  • tld_list_name — Nome da lista de TLD personalizada da configuração. String

Valor retornado

Retorna o primeiro subdomínio significativo. String

Exemplos

Uso básico

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

firstSignificantSubdomainRFC

Introduzido em: v22.10.0

Retorna o "primeiro subdomínio significativo" de acordo com a RFC 1034.

Sintaxe

firstSignificantSubdomainRFC(url)

Argumentos

  • Nenhum.

Valor de retorno

Exemplos

fragment

Introduzido em: v1.1.0

Retorna o identificador de fragmento sem o símbolo hash inicial.

Sintaxe

fragment(url)

Argumentos

Valor retornado

Retorna o identificador de fragmento sem o símbolo hash inicial. String

Exemplos

Exemplo 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

Introduzido em: v20.5.0

Extrai a parte de rede (username:password@host:port) de uma URL.

Sintaxe

netloc(url)

Argumentos

Valor retornado

Retorna username:password@host:port a partir de uma determinada URL. String

Exemplos

Exemplo de uso

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

path

Introduzido em: v1.1.0

Retorna o caminho de uma URL sem a string de consulta.

Sintaxe

path(url)

Argumentos

Valor retornado

Retorna o caminho da URL, sem a string de consulta. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Igual a path, mas inclui a string de consulta e o fragmento da URL.

Sintaxe

pathFull(url)

Argumentos

Valor retornado

Retorna o caminho da URL, incluindo a string de consulta e o fragmento. String

Exemplos

Exemplo 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

Introduzido em: v20.5.0

Retorna a porta de uma URL ou default_port se a URL não contiver uma porta ou não puder ser analisada.

Sintaxe

port(url[, default_port])

Argumentos

  • url — URL. String
  • default_port — Opcional. O número da porta padrão a ser retornado. 0 por padrão. UInt16

Valor retornado

Retorna a porta da URL ou a porta padrão caso não haja porta na URL ou ocorra um erro de validação. UInt16

Exemplos

Exemplo 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

Introduzido em: v22.10.0

Retorna a porta ou 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

portRFC(url[, default_port])

Argumentos

  • url — URL. String
  • default_port — Opcional. Número da porta padrão a ser retornado. 0 por padrão. UInt16

Valor retornado

Retorna a porta ou a porta padrão se não houver uma porta na URL ou em caso de erro de validação. UInt16

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Extrai o protocolo de uma URL.

Exemplos de valores retornados comuns: http, https, ftp, mailto, tel, magnet.

Sintaxe

protocol(url)

Argumentos

Valor retornado

Retorna o protocolo da URL ou uma string vazia, caso não seja possível determiná-lo. String

Exemplos

Exemplo de uso

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

queryString

Introduzido em: v1.1.0

Retorna a string de consulta de uma URL, sem o ponto de interrogação inicial, o # nem nada após o #.

Sintaxe

queryString(url)

Argumentos

Valor retornado

Retorna a string de consulta da URL sem o ponto de interrogação inicial e o fragmento. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Retorna a string de consulta e o identificador de fragmento de uma URL.

Sintaxe

queryStringAndFragment(url)

Argumentos

Valor retornado

Retorna a string de consulta e o identificador de fragmento da URL. String

Exemplos

Exemplo 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

Introduzido em: v1.1.0

Extrai o domínio de nível superior de uma URL.

Sintaxe

topLevelDomain(url)

Argumentos

Valor retornado

Retorna o nome de domínio se a string de entrada puder ser interpretada como uma URL. Caso contrário, retorna uma string vazia. String

Exemplos

Exemplo 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

Introduzido em: v22.10.0

Extrai o domínio de nível superior de uma URL. Semelhante a topLevelDomain, mas em conformidade com a RFC 3986.

Sintaxe

topLevelDomainRFC(url)

Argumentos

Valor retornado

Nome de domínio, se a string de entrada puder ser interpretada como uma URL. Caso contrário, uma string vazia. String

Exemplos

Exemplo 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