SELECT e INSERT em dados armazenados em um servidor MySQL remoto.
Sintaxe
Argumentos
| Argumento | Descrição |
|---|---|
host:port | Endereço do servidor MySQL. |
database | Nome do banco de dados remoto. |
table | Nome da tabela remota. |
user | Usuário do MySQL. |
password | Senha do usuário. |
replace_query | Sinalizador que converte consultas INSERT INTO em REPLACE INTO. Valores possíveis:- 0 - A consulta é executada como INSERT INTO.- 1 - A consulta é executada como REPLACE INTO. |
on_duplicate_clause | A expressão ON DUPLICATE KEY on_duplicate_clause adicionada à consulta INSERT. Ela só pode ser especificada com replace_query = 0 (se você passar replace_query = 1 e on_duplicate_clause ao mesmo tempo, o ClickHouse gerará uma exceção).Exemplo: INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1;Aqui, on_duplicate_clause é UPDATE c2 = c2 + 1. Consulte a documentação do MySQL para ver quais valores de on_duplicate_clause podem ser usados com a cláusula ON DUPLICATE KEY. |
host e port devem ser especificados separadamente. Essa abordagem é recomendada para ambientes de produção.
Cláusulas WHERE simples, como =, !=, >, >=, <, <=, atualmente 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 a conclusão da consulta ao MySQL.
Há suporte a múltiplas réplicas, que devem ser listadas com |. Por exemplo:
Valor retornado
Alguns tipos de dados do MySQL podem ser mapeados para diferentes tipos do ClickHouse — isso é controlado pela configuração em nível de consulta mysql_datatypes_support_level
Na consulta
INSERT, para distinguir a função de tabela mysql(...) do nome da tabela com uma lista de nomes de colunas, você deve usar as palavras-chave FUNCTION ou TABLE FUNCTION. Veja os exemplos abaixo.