Esta página explica cómo usar el motor de tabla MySQL para leer desde una tabla de MySQL.
Conectar ClickHouse con MySQL usando el motor de tabla MySQL
El motor de tabla MySQL le permite conectar ClickHouse con MySQL. Las sentencias SELECT e INSERT se pueden ejecutar tanto en ClickHouse como en la tabla de MySQL. En este artículo se muestran los métodos básicos para usar el motor de tabla MySQL.
Configurar MySQL
- Cree una base de datos en MySQL:
CREATE DATABASE db1;- Cree una tabla:
CREATE TABLE db1.table1 (
id INT,
column1 VARCHAR(255)
);- Inserte filas de ejemplo:
INSERT INTO db1.table1
(id, column1)
VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi');- Cree un usuario para conectarse desde ClickHouse:
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';- Conceda los privilegios necesarios. (Con fines de demostración, al usuario
mysql_clickhousese le conceden privilegios de administrador).
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';Definir una tabla en ClickHouse
- Ahora, creemos una tabla de ClickHouse que use el motor de tabla
MySQL:
CREATE TABLE mysql_table1 (
id UInt64,
column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')Los parámetros mínimos son:
| parámetro | Descripción | ejemplo |
|---|---|---|
| host | nombre de host o IP | mysql-host.domain.com |
| database | nombre de la base de datos de MySQL | db1 |
| table | nombre de la tabla de MySQL | table1 |
| user | nombre de usuario para conectarse a MySQL | mysql_clickhouse |
| password | contraseña para conectarse a MySQL | Password123! |
Pruebe la integración
- En MySQL, inserte una fila de muestra:
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');- Observe que las filas existentes de la tabla de MySQL están en la tabla de ClickHouse, junto con la nueva fila que acaba de añadir:
SELECT
id,
column1
FROM mysql_table1Deberías ver 4 filas:
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.- Añadamos una fila a la tabla de ClickHouse:
INSERT INTO mysql_table1
(id, column1)
VALUES
(5,'mno')- Observa que la nueva fila aparece en MySQL:
mysql> select id,column1 from db1.table1;Deberías ver la nueva fila:
+------+---------+
| id | column1 |
+------+---------+
| 1 | abc |
| 2 | def |
| 3 | ghi |
| 4 | jkl |
| 5 | mno |
+------+---------+
5 rows in set (0.01 sec)Resumen
El motor de tabla MySQL le permite conectar ClickHouse a MySQL para intercambiar datos en ambos sentidos. Para obtener más información, consulte la página de documentación del motor de tabla MySQL.