跳至主要内容
跳至主要内容

将 MySQL 与 ClickHouse 集成

本页介绍使用 MySQL 表引擎,用于从 MySQL 表读取数据。

注意

对于 ClickHouse Cloud,您还可以使用 MySQL ClickPipe(目前处于公开测试阶段)来轻松地将数据从您的 MySQL 表移动到 ClickHouse。

使用 MySQL 表引擎将 ClickHouse 连接到 MySQL

MySQL 表引擎允许您将 ClickHouse 连接到 MySQL。可以在 ClickHouse 或 MySQL 表中执行 SELECTINSERT 语句。本文档说明了如何使用 MySQL 表引擎的基本方法。

1. 配置 MySQL

  1. 在 MySQL 中创建数据库
CREATE DATABASE db1;
  1. Create a table
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 中使用此功能,您可能需要允许 ClickHouse Cloud 的 IP 地址访问您的 MySQL 实例。请查阅 ClickHouse Cloud Endpoints API 以获取外发流量的详细信息。

2. 在 ClickHouse 中定义表

  1. 现在让我们创建一个使用 MySQL 表引擎的 ClickHouse 表
CREATE TABLE mysql_table1 (
  id UInt64,
  column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')

最小参数是

参数描述示例
host主机名或 IPmysql-host.domain.com
数据库MySQL 数据库名称db1
tableMySQL 表名称table1
用户连接到 mysql 的用户名mysql_clickhouse
password连接到 mysql 的密码Password123!
注意

查看 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 表引擎 的文档页面。

    © . This site is unofficial and not affiliated with ClickHouse, Inc.