SELECT e INSERT em dados armazenados em um servidor MySQL remoto.
Criando uma tabela
- 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.
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 consultasINSERT INTOemREPLACE INTO. Sereplace_query=1, a consulta é substituída.on_duplicate_clause— A expressãoON DUPLICATE KEY on_duplicate_clauseadicionada à consultaINSERT. Exemplo:INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, em queon_duplicate_clauseéUPDATE c2 = c2 + 1. Consulte a documentação do MySQL para ver qualon_duplicate_clausevocê pode usar com a cláusulaON DUPLICATE KEY. Para especificaron_duplicate_clause, você precisa passar0para o parâmetroreplace_query. Se passarreplace_query = 1eon_duplicate_clauseao mesmo tempo, o ClickHouse gera uma exceção.
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
Configurações
connection_auto_close
- 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
1.
connection_max_tries
- Inteiro positivo.
- 0 — Não há novas tentativas para o pool com failover.
3.
connection_pool_size
- Inteiro positivo.
16.
connection_wait_timeout
connection_pool_size conexões ativas); 0 - não aguardar.
Valores possíveis:
- Inteiro positivo.
5.
connect_timeout
- Inteiro positivo.
10.
read_write_timeout
- Inteiro positivo.
300.