# MySQL 迁移到 ClickHouse
UDTS 支持 从 MySQL 迁移到 ClickHouse。
 MySQL 支持版本有 MySQL(包含Percona版)5.5/5.6/5.7/8.0; MariaDB 10.1.2 及以上，以及PolarDB(MySQL兼容版本)。
 ClickHouse 支持版本 21.3 至 22.8。

## 功能限制
1. 支持单库迁移，可迁移整库或指定表，不支持迁移存储过程、触发器、视图等。
2. 不支持迁移 DDL 语句，不支持 delete 语句。
3. 增量/全+增迁移时，源库需要开启 binlog，且格式设置为ROW, image设置为FULL。

查询方式：
```
show global variables like 'binlog_format';
show global variables like 'binlog_row_image';
```

设置方式：
```
set global binlog_format = "ROW" ;
set global binlog_row_image = "FULL" ;
```

4. 目标库仅支持集群版的 ClickHouse，迁移库表也仅支持集群表。
5. 选择“手动创建库表”时，UDTS 将不会在目标库创建库表，请您在目标库中提前创建待迁移库表，再启动迁移任务。
6. 选择“自动创建库表”时，如果待迁移的库表在目标库中不存在，UDTS 将在目标库中自动创建待迁移的库表；如果待迁移的库表在目标库中已经存在，UDTS 不会重新创建表结构。
7. 选择“自动创建库表”时，要求待迁移的库表必须有主键或唯一索引，如果不满足要求，请选择“手动创建库表”，并在目标库中提前创建待迁移库表。
8. 增量任务只能选择“手动创建库表”。


## 迁移内容

| 迁移内容 | 说明                                                                |
| -------- | ------------------------------------------------------------------- |
| 迁移结构 | 1. Database、Table 结构及数据<br>  2. 迁移开始前不会清理目标库已存在的库表，如果自动建表不满足要求，客户可以提前在目标库手动建表 |
| 迁移范围 | 仅迁移创建任务时可以查到的库表， 任务运行中新增的表暂时不会自动迁移 |
| DDL      | 不支持                                                              |
| DML      | insert/update                                                       |

## 填写表单

数据源表单

| 参数名   | 说明                                                                                                                                                                                      |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 地址类型 | 支持内网地址，外网地址，专线地址三种方式。内网地址需要填写VPC和子网信息；外网地址支持IP和域名两种方式；专线地址既支持IP，也支持域名，如果使用域名需要用户网络有外网出口。                 |
| 端口     | MySQL连接端口                                                                                                                                                                             |
| 用户名   | MySQL连接用户名                                                                                                                                                                           |
| 密码     | MySQL数据库对应用户密码                                                                                                                                                                   |
| 数据库名 | MySQL数据库名称。 所有库传输请填写 *； 指定一个数据库传输，请填写数据库名；指定多个数据库传输，依次输入多个数据库名，库名之间使用英文逗号隔开。(如果数据库名称中包含空格则无法做增量迁移) |  |
| 表名     | MySQL传输表名。 只有当“数据库名”为指定一个数据库时有效。 若不填，默认为迁移指定库中的所有表； 指定一张表传输， 请填写表名； 指定多张表传输，依次输入多张表名，表名之间使用英文逗号隔开    |
| 最大速率 | 外网/专线的速率范围为 1-56 MB/s; 内网的速率范围为 1-1024 MB/s                                                                                                                             |
| Nolocks  | 默认关闭，对于无法获取 SUPER 权限的友商RDS服务需要开启，UDB获取 SUPER 权限详见FAQ                                                                                                         |


传输目标表单

| 参数名       | 说明                                                                                                                           |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| TCP 地址     | ClickHouse 集群的 TCP 连接地址，默认端口为 9000 ，多个地址用","相连，示例：192.168.1.100:9000,192.168.1.120:9000                  |
| HTTP 地址    | ClickHouse 集群的 HTTP 连接地址，默认端口为 8123 ，多个地址用","相连，示例：192.168.1.100:8123,192.168.1.120:8123                  |
| 用户名       | ClickHouse 连接用户名                                                                                                                |
| 密码         | ClickHouse 数据库对应用户密码                                                                                                        |
