URL(URL [,Format] [,CompressionMethod])
-
O parâmetro
URLdeve estar em conformidade com a estrutura de um Uniform Resource Locator. A URL especificada deve apontar para um servidor que use HTTP ou HTTPS. Isso não requer cabeçalhos adicionais para obter uma resposta do servidor. -
O
Formatdeve ser um formato que o ClickHouse possa usar em consultasSELECTe, se necessário, emINSERT. Para a lista completa de formatos compatíveis, consulte Formats. Se esse argumento não for especificado, o ClickHouse detectará o formato automaticamente pelo sufixo do parâmetroURL. Se o sufixo do parâmetroURLnão corresponder a nenhum dos formatos compatíveis, a criação da tabela falhará. Por exemplo, para a expressão de motorURL('http://localhost/test.json'), o formatoJSONé aplicado. -
CompressionMethodindica se o corpo HTTP deve ser comprimido. Se a compressão estiver habilitada, os pacotes HTTP enviados pelo motor URL conterão o cabeçalho ‘Content-Encoding’ para indicar qual método de compressão está sendo usado.
URL oferece suporte ao algoritmo de compressão correspondente.
O CompressionMethod compatível deve ser um dos seguintes:
- gzip or gz
- deflate
- brotli or br
- lzma or xz
- zstd or zst
- lz4
- bz2
- snappy
- none
- auto
CompressionMethod não for especificado, o padrão será auto. Isso significa que o ClickHouse detecta automaticamente o método de compressão pelo sufixo do parâmetro URL. Se o sufixo corresponder a qualquer um dos métodos de compressão listados acima, a compressão correspondente será aplicada; caso contrário, nenhuma compressão será habilitada.
Por exemplo, para a expressão de motor URL('http://localhost/test.gzip'), o método de compressão gzip é aplicado, mas para URL('http://localhost/test.fr'), nenhuma compressão é habilitada porque o sufixo fr não corresponde a nenhum dos métodos de compressão acima.
Uso
INSERT e SELECT são transformadas em requisições POST e GET,
respectivamente. Para processar requisições POST, o servidor remoto deve oferecer
suporte a Chunked transfer encoding.
Você pode limitar o número máximo de redirecionamentos HTTP GET usando a configuração max_http_get_redirects.
Exemplo
url_engine_table no servidor:
Detalhes da implementação
- Leituras e gravações podem ocorrer em paralelo
- Não há suporte a:
- Operações
ALTEReSELECT...SAMPLE. - Índices.
- Replicação.
- Operações
Colunas virtuais
_path— Caminho daURL. Tipo:LowCardinality(String)._file— Nome do recurso daURL. Tipo:LowCardinality(String)._size— Tamanho do recurso em bytes. Tipo:Nullable(UInt64). Se o tamanho for desconhecido, o valor seráNULL._time— Hora da última modificação do arquivo. Tipo:Nullable(DateTime). Se a hora for desconhecida, o valor seráNULL._headers- Cabeçalhos da resposta HTTP. Tipo:Map(LowCardinality(String), LowCardinality(String)).
Resolução de URLs relativas
URL. Quando url_base está definido, a URL passada para o motor é resolvida com base nele, de acordo com a RFC 3986. Para ver uma descrição completa das regras de resolução, consulte a documentação da função de tabela url.
Exemplo
Configurações de armazenamento
- engine_url_skip_empty_files - permite ignorar arquivos vazios durante a leitura. Desativado por padrão.
- enable_url_encoding - permite ativar/desativar a decodificação/codificação do caminho na URI. Ativado por padrão.
- url_base - URL base para a resolução de URLs relativas passadas ao motor.