Перейти к основному содержанию
На этой странице описано использование движка таблицы MySQL для чтения данных из таблицы MySQL.
В ClickHouse Cloud вы также можете использовать MySQL ClickPipe (сейчас в публичной бете), чтобы легко переносить данные из таблиц MySQL в ClickHouse.

Подключение ClickHouse к MySQL с помощью движка таблицы MySQL

Движок таблицы MySQL позволяет подключить ClickHouse к MySQL. Команды SELECT и INSERT можно выполнять как в ClickHouse, так и в таблице MySQL. В этой статье рассматриваются основные способы работы с движком таблицы MySQL.

1. Настройте MySQL

  1. Создайте базу данных в MySQL:
  CREATE DATABASE db1;
  1. Создайте таблицу:
  CREATE TABLE db1.table1 (
    id INT,
    column1 VARCHAR(255)
  );
  1. Вставьте строки с примерными данными:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi');
  1. Создайте пользователя, через которого ClickHouse будет подключаться:
  CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
  1. Назначьте необходимые привилегии. (В демонстрационных целях пользователю mysql_clickhouse назначаются права администратора.)
  GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
Если вы используете эту возможность в ClickHouse Cloud, вам может потребоваться разрешить доступ к вашему экземпляру MySQL с IP-адресов ClickHouse Cloud. Подробные сведения об исходящем трафике см. в ClickHouse Cloud Endpoints API.

2. Создайте таблицу в ClickHouse

  1. Теперь создадим таблицу в ClickHouse, использующую движок таблицы MySQL:
  CREATE TABLE mysql_table1 (
    id UInt64,
    column1 String
  )
  ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')
Минимальные параметры:
параметрОписаниепример
hostимя хоста или IP-адресmysql-host.domain.com
databaseимя базы данных MySQLdb1
tableимя таблицы MySQLtable1
userимя пользователя для подключения к MySQLmysql_clickhouse
passwordпароль для подключения к MySQLPassword123!
Полный список параметров см. на странице документации движка таблицы MySQL.

3. Протестируйте интеграцию

  1. В MySQL вставьте тестовую строку:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (4, 'jkl');
  1. Обратите внимание: в таблице ClickHouse уже есть существующие строки из таблицы MySQL, а также новая строка, которую вы только что добавили:
  SELECT
      id,
      column1
  FROM mysql_table1
Вы должны увидеть 4 строки:
  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. Добавим строку в таблицу ClickHouse:
  INSERT INTO mysql_table1
    (id, column1)
  VALUES
    (5,'mno')
  1. Обратите внимание, что в MySQL появилась новая строка:
  mysql> select id,column1 from db1.table1;
Вы увидите новую строку:
  +------+---------+
  | id   | column1 |
  +------+---------+
  |    1 | abc     |
  |    2 | def     |
  |    3 | ghi     |
  |    4 | jkl     |
  |    5 | mno     |
  +------+---------+
  5 rows in set (0.01 sec)

Краткое описание

Движок таблицы MySQL позволяет подключить ClickHouse к MySQL и обмениваться данными в обоих направлениях. Подробнее см. в документации по движку таблицы MySQL.
Последнее изменение 10 июня 2026 г.