Pular para o conteúdo principal
O mecanismo MySQL permite executar consultas SELECT e INSERT em dados armazenados em um servidor MySQL remoto.

Criando uma tabela

Veja uma descrição detalhada da consulta CREATE TABLE. A estrutura da tabela pode ser diferente da estrutura da tabela MySQL original:
  • Os nomes das colunas devem ser os mesmos da tabela MySQL original, mas você pode usar apenas algumas delas e em qualquer ordem.
  • Os tipos das colunas podem ser diferentes dos da tabela MySQL original. O ClickHouse tenta converter os valores para os tipos de dados do ClickHouse.
  • A configuração external_table_functions_use_nulls define como lidar com colunas Nullable. Valor padrão: 1. Se for 0, a função de tabela não cria colunas Nullable e insere valores padrão em vez de nulos. Isso também se aplica a valores NULL dentro de arrays.
Parâmetros do mecanismo
  • host:port — Endereço do servidor MySQL.
  • database — nome do banco de dados remoto.
  • table — Nome da tabela remota.
  • user — usuário MySQL.
  • password — Senha do usuário.
  • replace_query — Sinalizador que converte consultas INSERT INTO em REPLACE INTO. Se replace_query=1, a consulta é substituída.
  • on_duplicate_clause — A expressão ON DUPLICATE KEY on_duplicate_clause adicionada à consulta INSERT. Exemplo: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, em que on_duplicate_clause é UPDATE c2 = c2 + 1. Consulte a documentação do MySQL para ver qual on_duplicate_clause você pode usar com a cláusula ON DUPLICATE KEY. Para especificar on_duplicate_clause, você precisa passar 0 para o parâmetro replace_query. Se passar replace_query = 1 e on_duplicate_clause ao mesmo tempo, o ClickHouse gera uma exceção.
Os argumentos também podem ser passados usando coleções nomeadas. Nesse caso, host e port devem ser especificados separadamente. Essa abordagem é recomendada para o ambiente de produção. Cláusulas WHERE simples, como =, !=, >, >=, <, <=, são executadas no servidor MySQL. O restante das condições e a restrição de amostragem LIMIT são executados no ClickHouse somente após o término da consulta ao MySQL. Há suporte para várias réplicas, que devem ser listadas com |. Por exemplo:

Exemplo de uso

Criar tabela no MySQL:
Crie uma tabela no ClickHouse usando argumentos simples:
Ou use coleções nomeadas:
Recuperando dados da tabela do MySQL:

Configurações

As configurações padrão não são muito eficientes, pois nem sequer reutilizam as conexões. Essas configurações permitem aumentar o número de consultas que o servidor executa por segundo.

connection_auto_close

Permite fechar automaticamente a conexão após a execução da consulta, ou seja, desativa a reutilização da conexão. Valores possíveis:
  • 1 — O fechamento automático da conexão é permitido, portanto a reutilização da conexão fica desativada
  • 0 — O fechamento automático da conexão não é permitido, portanto a reutilização da conexão fica ativada
Valor padrão: 1.

connection_max_tries

Define o número de novas tentativas para o pool com failover. Valores possíveis:
  • Inteiro positivo.
  • 0 — Não há novas tentativas para o pool com failover.
Valor padrão: 3.

connection_pool_size

Tamanho do pool de conexões (se todas as conexões estiverem em uso, a consulta aguardará até que alguma seja liberada). Valores possíveis:
  • Inteiro positivo.
Valor padrão: 16.

connection_wait_timeout

Tempo limite (em segundos) para aguardar uma conexão livre (caso já haja connection_pool_size conexões ativas); 0 - não aguardar. Valores possíveis:
  • Inteiro positivo.
Valor padrão: 5.

connect_timeout

Tempo limite de conexão (em segundos). Valores possíveis:
  • Inteiro positivo.
Valor padrão: 10.

read_write_timeout

Tempo limite de leitura e gravação (em segundos). Valores possíveis:
  • Inteiro positivo.
Valor padrão: 300.

enable_compression

Habilita a compressão para a conexão do protocolo MySQL. Valor padrão: false. Esta configuração se aplica a:
  • o mecanismo de tabela MySQL;
  • o mecanismo de banco de dados MySQL;
  • a função de tabela mysql;
  • coleções nomeadas usadas por integrações do MySQL.
Quando habilitada, o ClickHouse solicita compressão para a conexão. Exemplo:

Veja também

Última modificação em 29 de junho de 2026