Pular para o conteúdo principal
A função de tabela remote permite acessar servidores remotos dinamicamente, ou seja, sem criar uma tabela Distributed. A função de tabela remoteSecure é igual à remote, mas por meio de uma conexão segura. Ambas as funções podem ser usadas em consultas SELECT e INSERT.

Sintaxe

Parâmetros

Os argumentos também podem ser passados por meio de coleções nomeadas.

Valor retornado

Uma tabela localizada em um servidor remoto.

Uso

Como as funções de tabela remote e remoteSecure restabelecem a conexão a cada solicitação, recomenda-se usar uma tabela Distributed em vez delas. Além disso, se os hostnames estiverem definidos, os nomes serão resolvidos, e os erros não serão contabilizados ao trabalhar com várias réplicas. Ao processar um grande número de consultas, sempre crie a tabela Distributed com antecedência e não use a função de tabela remote. A função de tabela remote pode ser útil nos seguintes casos:
  • Migração pontual de dados de um sistema para outro
  • Acesso a um servidor específico para comparação de dados, depuração e testes, ou seja, conexões ad hoc.
  • Consultas entre vários clusters do ClickHouse para fins de pesquisa.
  • Solicitações distribuídas pouco frequentes feitas manualmente.
  • Solicitações distribuídas em que o conjunto de servidores é redefinido a cada vez.

Endereços

Vários endereços podem ser informados separados por vírgulas. Nesse caso, o ClickHouse usará processamento distribuído e enviará a consulta para todos os endereços especificados (como shards com dados diferentes). Exemplo:

Exemplos

Selecionando dados de um servidor remoto:

Ou usando coleções nomeadas:

Inserindo dados em uma tabela em um servidor remoto:

Migração de tabelas de um sistema para outro:

Este exemplo usa uma tabela de um conjunto de dados de amostra. O banco de dados é imdb, e a tabela é actors.

No sistema ClickHouse de origem (o sistema que hospeda os dados atualmente)

  • Verifique o banco de dados de origem e o nome da tabela (imdb.actors)
  • Obtenha a instrução CREATE TABLE na origem:
Resposta

No sistema de destino do ClickHouse

  • Crie o banco de dados de destino:
  • Usando a instrução CREATE TABLE da origem, crie a tabela no destino:

De volta à implantação de origem

Insira dados no novo banco de dados e na nova tabela criados no sistema remoto. Você precisará do host, da porta, do nome de usuário, da senha, do banco de dados de destino e da tabela de destino.

Globbing

Padrões em { } são usados para gerar um conjunto de shards e para especificar réplicas. Se houver vários pares de { }, o produto cartesiano dos conjuntos correspondentes será gerado. Os seguintes tipos de padrão são suportados.
  • {a,b,c} - Representa qualquer uma das strings alternativas a, b ou c. O padrão é substituído por a no endereço do primeiro shard, por b no endereço do segundo shard e assim por diante. Por exemplo, example0{1,2}-1 gera os endereços example01-1 e example02-1.
  • {N..M} - Um intervalo de números. Esse padrão gera endereços de shard com índices crescentes de N até M (inclusive). Por exemplo, example0{1..2}-1 gera example01-1 e example02-1.
  • {0n..0m} - Um intervalo de números com zeros à esquerda. Esse padrão preserva os zeros à esquerda nos índices. Por exemplo, example{01..03}-1 gera example01-1, example02-1 e example03-1.
  • {a|b} - Qualquer número de variantes separadas por |. O padrão especifica réplicas. Por exemplo, example01-{1|2} gera as réplicas example01-1 e example01-2.
A consulta será enviada para a primeira réplica saudável. No entanto, para remote, as réplicas são iteradas na ordem atualmente definida na configuração load_balancing. O número de endereços gerados é limitado pela configuração table_function_remote_max_addresses.
Última modificação em 2 de julho de 2026