Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Integración de MySQL con ClickHouse

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

  1. Cree una base de datos en MySQL:
CREATE DATABASE db1;
  1. Cree una tabla:
CREATE TABLE db1.table1 (
  id INT,
  column1 VARCHAR(255)
);
  1. Inserte filas de ejemplo:
INSERT INTO db1.table1
  (id, column1)
VALUES
  (1, 'abc'),
  (2, 'def'),
  (3, 'ghi');
  1. Cree un usuario para conectarse desde ClickHouse:
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
  1. Conceda los privilegios necesarios. (Con fines de demostración, al usuario mysql_clickhouse se le conceden privilegios de administrador).
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';

Definir una tabla en ClickHouse

  1. 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

  1. En MySQL, inserte una fila de muestra:
INSERT INTO db1.table1
  (id, column1)
VALUES
  (4, 'jkl');
  1. 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_table1

Deberí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.
  1. Añadamos una fila a la tabla de ClickHouse:
INSERT INTO mysql_table1
  (id, column1)
VALUES
  (5,'mno')
  1. 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.

Navigation