将 MySQL 与 ClickHouse 集成
本页介绍如何使用 MySQL
表引擎,从 MySQL 表中读取数据
使用 MySQL 表引擎将 ClickHouse 连接到 MySQL
MySQL
表引擎允许您将 ClickHouse 连接到 MySQL。 可以在 ClickHouse 或 MySQL 表中执行 SELECT 和 INSERT 语句。 本文阐述了如何使用 MySQL
表引擎的基本方法。
1. 配置 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 Cloud 中使用此功能,您可能需要允许 ClickHouse Cloud IP 地址访问您的 MySQL 实例。 请查看 ClickHouse Cloud Endpoints API 以获取出口流量详情。
2. 在 ClickHouse 中定义表
- 现在让我们创建一个使用
MySQL
表引擎的 ClickHouse 表
CREATE TABLE mysql_table1 (
id UInt64,
column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')
最小参数为
参数 | 描述 | 示例 |
---|---|---|
主机名 | 主机名或 IP | mysql-host.domain.com |
数据库 | mysql 数据库名称 | db1 |
表 | mysql 表名 | table1 |
用户 | 连接到 mysql 的用户名 | mysql_clickhouse |
密码 | 连接到 mysql 的密码 | Password123! |
注意
查看 MySQL 表引擎 文档页面,获取完整参数列表。
3. 测试集成
- 在 MySQL 中,插入一个示例行
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');
- 请注意,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.
- 让我们向 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 表引擎 的文档页面。