На этой странице описано использование движка таблицы MySQL для чтения данных из таблицы MySQL.
Подключение ClickHouse к MySQL с помощью движка таблицы MySQL
Движок таблицы MySQL позволяет подключить ClickHouse к MySQL. Операторы SELECT и INSERT можно выполнять как в ClickHouse, так и в таблице MySQL. В этой статье показаны основные способы использования движка таблицы MySQL.
Настройка MySQL
- Создайте базу данных в MySQL:
CREATE DATABASE db1;- Создайте таблицу:
CREATE TABLE db1.table1 (
id INT,
column1 VARCHAR(255)
);- Вставьте тестовые строки:
INSERT INTO db1.table1
(id, column1)
VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi');- Создайте пользователя для подключения из ClickHouse:
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';- Выдайте необходимые привилегии. (В демонстрационных целях пользователю
mysql_clickhouseвыдаются привилегии администратора.)
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';Определение таблицы в ClickHouse
- Теперь создадим таблицу 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 | имя базы данных MySQL | db1 |
| table | имя таблицы MySQL | table1 |
| user | имя пользователя для подключения к MySQL | mysql_clickhouse |
| password | пароль для подключения к MySQL | Password123! |
Протестируйте интеграцию
- В MySQL вставьте тестовую строку:
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');- Обратите внимание: в таблице 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.- Добавим строку в таблицу ClickHouse:
INSERT INTO mysql_table1
(id, column1)
VALUES
(5,'mno')- Обратите внимание, что в 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.