Esta página aborda o uso do motor de tabela MySQL para ler dados de uma tabela MySQL.
Conectando o ClickHouse ao MySQL usando o motor de tabela MySQL
O motor de tabela MySQL permite conectar o ClickHouse ao MySQL. Instruções SELECT e INSERT podem ser executadas tanto no ClickHouse quanto na tabela do MySQL. Este artigo mostra os métodos básicos de uso do motor de tabela MySQL.
Configure o MySQL
- Crie um banco de dados no MySQL:
CREATE DATABASE db1;- Crie uma tabela:
CREATE TABLE db1.table1 (
id INT,
column1 VARCHAR(255)
);- Insira linhas de exemplo:
INSERT INTO db1.table1
(id, column1)
VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi');- Crie um usuário para se conectar a partir do ClickHouse:
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';- Conceda os privilégios necessários. (Para fins de demonstração, o usuário
mysql_clickhouserecebe privilégios de administrador.)
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';Defina uma tabela no ClickHouse
- Agora, vamos criar uma tabela no ClickHouse que usa o motor de tabela
MySQL:
CREATE TABLE mysql_table1 (
id UInt64,
column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')Os parâmetros mínimos são:
| parâmetro | Descrição | exemplo |
|---|---|---|
| host | hostname ou IP | mysql-host.domain.com |
| database | nome do banco de dados MySQL | db1 |
| table | nome da tabela MySQL | table1 |
| user | nome de usuário para conexão com o MySQL | mysql_clickhouse |
| password | senha para conexão com o MySQL | Password123! |
Teste a integração
- No MySQL, insira uma linha de teste:
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');- Observe que as linhas existentes da tabela do MySQL estão na tabela do ClickHouse, junto com a nova linha que você acabou de adicionar:
SELECT
id,
column1
FROM mysql_table1Você verá 4 linhas:
Query id: 6d590083-841e-4e95-8715-ef37d3e95197
┌─id─┬─column1─┐
│ 1 │ abc │
│ 2 │ def │
│ 3 │ ghi │
│ 4 │ jkl │
└────┴─────────┘
4 rows in set. Elapsed: 0.044 sec.- Vamos adicionar uma linha à tabela do ClickHouse:
INSERT INTO mysql_table1
(id, column1)
VALUES
(5,'mno')- Observe que a nova linha aparece no MySQL:
mysql> select id,column1 from db1.table1;Você verá a nova linha:
+------+---------+
| id | column1 |
+------+---------+
| 1 | abc |
| 2 | def |
| 3 | ghi |
| 4 | jkl |
| 5 | mno |
+------+---------+
5 rows in set (0.01 sec)Resumo
O motor de tabela MySQL permite conectar o ClickHouse ao MySQL para trocar dados entre os dois sistemas. Para mais detalhes, consulte a página de documentação sobre o motor de tabela MySQL.