Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Intégration de MySQL avec ClickHouse

Cette page décrit l’utilisation du moteur de table MySQL pour lire les données d’une table MySQL.

Connecter ClickHouse à MySQL à l’aide du moteur de table MySQL

Le moteur de table MySQL vous permet de connecter ClickHouse à MySQL. Les instructions SELECT et INSERT peuvent être exécutées soit dans ClickHouse, soit sur la table MySQL. Cet article présente les méthodes de base pour utiliser le moteur de table MySQL.

Configurer MySQL

  1. Créez une base de données dans MySQL :
CREATE DATABASE db1;
  1. Créez une table :
CREATE TABLE db1.table1 (
  id INT,
  column1 VARCHAR(255)
);
  1. Insérez quelques lignes d’exemple :
INSERT INTO db1.table1
  (id, column1)
VALUES
  (1, 'abc'),
  (2, 'def'),
  (3, 'ghi');
  1. Créez un utilisateur pour se connecter depuis ClickHouse :
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
  1. Accordez les privilèges nécessaires. (À des fins de démonstration, des privilèges d’administration sont accordés à l’utilisateur mysql_clickhouse.)
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';

Définir une Table dans ClickHouse

  1. Créons maintenant une table ClickHouse qui utilise le moteur de table MySQL :
CREATE TABLE mysql_table1 (
  id UInt64,
  column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')

Les paramètres minimaux sont :

parameter Description example
host nom d’hôte ou IP mysql-host.domain.com
database nom de la base de données MySQL db1
table nom de la table MySQL table1
user nom d’utilisateur pour se connecter à MySQL mysql_clickhouse
password mot de passe pour se connecter à MySQL Password123!

Tester l’intégration

  1. Dans MySQL, insérez une ligne d’exemple :
INSERT INTO db1.table1
  (id, column1)
VALUES
  (4, 'jkl');
  1. Constatez que les lignes existantes de la table MySQL se trouvent dans la table ClickHouse, ainsi que la nouvelle ligne que vous venez d’ajouter :
SELECT
    id,
    column1
FROM mysql_table1

Vous devriez voir 4 lignes :

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. Ajoutons une ligne à la table ClickHouse :
INSERT INTO mysql_table1
  (id, column1)
VALUES
  (5,'mno')
  1. Remarquez que la nouvelle ligne apparaît dans MySQL :
mysql> select id,column1 from db1.table1;

Vous devriez voir la nouvelle ligne :

+------+---------+
| id   | column1 |
+------+---------+
|    1 | abc     |
|    2 | def     |
|    3 | ghi     |
|    4 | jkl     |
|    5 | mno     |
+------+---------+
5 rows in set (0.01 sec)

Résumé

Le moteur de table MySQL vous permet de connecter ClickHouse à MySQL pour échanger des données dans les deux sens. Pour en savoir plus, consultez la page de documentation du moteur de table MySQL.

Navigation