Перейти к основному содержимому
Перейти к основному содержимому

Интеграция MySQL с ClickHouse

Эта страница охватывает использование движка таблиц 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, вам может потребоваться разрешить IP-адресам ClickHouse Cloud доступ к вашему экземпляру MySQL. Проверьте API конечных точек Cloud ClickHouse для получения подробностей о исходящем трафике.

2. Определите таблицу в ClickHouse

  1. Теперь давайте создадим таблицу ClickHouse, которая использует движок таблиц MySQL:
CREATE TABLE mysql_table1 (
  id UInt64,
  column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')

Минимальные параметры:

parameterОписаниепример
hostимя хоста или IPmysql-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. Обратите внимание, что существующие строки из таблицы MySQL находятся в таблице ClickHouse вместе с новой строкой, которую вы только что добавили:
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.