从MySQL导入和同步

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
所有文档
menu
没有找到结果,请重新输入

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
  • 文档中心
  • arrow
  • MapReduceBMR
  • arrow
  • 开源组件介绍
  • arrow
  • ClickHouse
  • arrow
  • 数据迁移同步
  • arrow
  • 从MySQL导入和同步
本页目录
  • 使用MySQL表引擎将ClickHouse连接到MySQL
  • 配置MySQL
  • 在ClickHouse中定义表
  • 测试集成
  • 在ClickHouse中复制MySQL数据库
  • 配置MySQL
  • 配置ClickHouse
  • 测试集成

从MySQL导入和同步

更新时间:2025-08-21

本页介绍了MySQL与ClickHouse集成的两个方面:

  • 使用MySQL表引擎,从MySQL表中读取
  • 使用MaterializedMySQL数据库引擎,将MySQL中的数据库与ClickHouse中的数据库同步

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

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

配置MySQL

  1. 在MySQL中创建一个数据库:
Plain Text
1CREATE DATABASE db1;
  1. 创建表:
Plain Text
1CREATE TABLE db1.table1 (
2  id INT,
3  column1 VARCHAR(255)
4);
  1. 插入示例行:
Plain Text
1INSERT INTO db1.table1
2  (id, column1)
3VALUES
4  (1, 'abc'),
5  (2, 'def'),
6  (3, 'ghi');

4.创建一个用户以从ClickHouse连接:

Plain Text
1CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';

5.根据需要授予特权。(出于演示目的,mysql_clickhouse用户被授予管理员权限。)

Plain Text
1GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';

在ClickHouse中定义表

  1. 创建一个使用MySQL表引擎的ClickHouse表:
Plain Text
1CREATE TABLE mysql_table1 (
2  id UInt64,
3  column1 String
4)
5ENGINE = 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的密码 密码123!

测试集成

  1. 在MySQL中,插入一个示例行:
Plain Text
1INSERT INTO db1.table1
2  (id, column1)
3VALUES
4  (4, 'jkl');
  1. 请注意,MySQL表中的现有行以及您刚才添加的新行都在ClickHouse表中:
Plain Text
1SELECT
2    id,
3    column1
4FROM mysql_table1

您可以看有四行:

Plain Text
1Query id: 6d590083-841e-4e95-8715-ef37d3e95197
2
3┌─id─┬─column1─┐
4│  1 │ abc     │
5│  2 │ def     │
6│  3 │ ghi     │
7│  4 │ jkl     │
8└────┴─────────┘
9
104 rows in set. Elapsed: 0.044 sec.
  1. 在ClickHouse表中添加一行:
Plain Text
1INSERT INTO mysql_table1
2  (id, column1)
3VALUES
4  (5,'mno')
  1. 请注意,MySQL中出现了新行:
Plain Text
1mysql> select id,column1 from db1.table1;

可以看到新的一行:

Plain Text
1+------+---------+
2| id   | column1 |
3+------+---------+
4|    1 | abc     |
5|    2 | def     |
6|    3 | ghi     |
7|    4 | jkl     |
8|    5 | mno     |
9+------+---------+
105 rows in set (0.01 sec)

在ClickHouse中复制MySQL数据库

MaterializedMySQL数据库引擎允许您在ClickHouse中定义一个数据库,该数据库包含MySQL数据库中的所有现有表以及这些表中的所有数据。在MySQL方面,DDL和DML操作可以继续进行,ClickHouse检测到这些更改并充当MySQL数据库的副本。

本文演示了如何配置MySQL和ClickHouse来实现。

配置MySQL

  1. 配置MySQL数据库以允许复制和本机身份验证。ClickHouse仅适用于本机密码身份验证。将以下条目添加到/etc/my.cnf:
Plain Text
1default_authentication_plugin = mysql_native_password
2gtid_mode = ON
3enforce_gtid_consistency = ON
  1. 创建一个用户从ClickHouse连接:
Plain Text
1CREATE USER clickhouse_user IDENTIFIED BY 'ClickHouse_123';
  1. 向新用户授予所需的权限。出于演示目的,此处授予了完全管理员权限:
Plain Text
1GRANT ALL PRIVILEGES ON *.* TO 'clickhouse_user'@'%';
  1. 在MySQL中创建一个数据库:
Plain Text
1CREATE DATABASE db1;
  1. 创建一个表:
Plain Text
1CREATE TABLE db1.table_1 (
2    id INT,
3    column1 VARCHAR(10),
4    PRIMARY KEY (`id`)
5) ENGINE = InnoDB;
  1. 插入一些示例行:
Plain Text
1INSERT INTO db1.table_1
2  (id, column1)
3VALUES
4  (1, 'abc'),
5  (2, 'def'),
6  (3, 'ghi');

配置ClickHouse

  1. 设置参数:
Plain Text
1set allow_experimental_database_materialized_mysql = 1;
  1. 创建一个使用MaterializedMySQL数据库引擎的数据库:
Plain Text
1CREATE DATABASE db1_mysql
2ENGINE = MaterializedMySQL(
3  'mysql-host.domain.com:3306',
4  'db1',
5  'clickhouse_user',
6  'ClickHouse_123'
7);

表二 参数说明

参数 描述 举例
host 主机名或 IP mysql-host.domain.com
database mysql 数据库名称 db1
table mysql 表名 table1
user 连接 mysql 的用户名 mysql_clickhouse
password 连接mysql的密码 密码123!

测试集成

  1. 在MySQL中,插入一个示例行:
Plain Text
1INSERT INTO db1.table_1
2  (id, column1)
3VALUES
4  (4, 'jkl');
  1. 请注意,ClickHouse表中出现了新行:
Plain Text
1SELECT
2    id,
3    column1
4FROM db1_mysql.table_1

响应如下:

Plain Text
1Query id: d61a5840-63ca-4a3d-8fac-c93235985654
2
3┌─id─┬─column1─┐
4│  1 │ abc     │
5└────┴─────────┘
6┌─id─┬─column1─┐
7│  4 │ jkl     │
8└────┴─────────┘
9┌─id─┬─column1─┐
10│  2 │ def     │
11└────┴─────────┘
12┌─id─┬─column1─┐
13│  3 │ ghi     │
14└────┴─────────┘
15
164 rows in set. Elapsed: 0.030 sec.

3.假设MySQL中的表被修改了。在MySQL中为db1.table_1添加一列:

Plain Text
1alter table db1.table_1 add column column2 varchar(10) after column1;
  1. 在修改后的表中插入一行:
Plain Text
1INSERT INTO db1.table_1
2  (id, column1, column2)
3VALUES
4  (5, 'mno', 'pqr');

5.ClickHouse中的表格现在有了新列和新行:

Plain Text
1SELECT
2    id,
3    column1,
4    column2
5FROM db1_mysql.table_1

前几行第2列将为NULL:

Plain Text
1Query id: 2c32fd15-3c83-480b-9bfc-cba5d932d674
2
3Connecting to localhost:9000 as user default.
4Connected to ClickHouse server version 22.2.2 revision 54455.
5
6┌─id─┬─column1─┬─column2─┐
7│  3 │ ghi     │ ᴺᵁᴸᴸ    │
8└────┴─────────┴─────────┘
9┌─id─┬─column1─┬─column2─┐
10│  2 │ def     │ ᴺᵁᴸᴸ    │
11└────┴─────────┴─────────┘
12┌─id─┬─column1─┬─column2─┐
13│  1 │ abc     │ ᴺᵁᴸᴸ    │
14│  5 │ mno     │ pqr     │
15└────┴─────────┴─────────┘
16┌─id─┬─column1─┬─column2─┐
17│  4 │ jkl     │ ᴺᵁᴸᴸ    │
18└────┴─────────┴─────────┘
19
205 rows in set. Elapsed: 0.017 sec.

上一篇
从Flink导入
下一篇
从本地数据导入