
# MySQL数据源
本数据集成服务全面支持云上RDS-MySQL及线下自建MySQL数据源，同时兼容华为云DDM产品以及开源TIDB数据源，可满足不同用户在多种部署环境下的数据同步需求。
#### 使用前准备及限制
- **网络要求**
  MySQL数据源必须与CDM网络进行通讯，以确保数据传输的顺畅性详情请参见[网络打通](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7765.html)。
  
- **权限要求**
  - **离线读取MySQL时**：账号需具备对同步表的只读权限（SELECT），以确保数据能够被安全、准确地读取。
  
  - **离线写入MySQL时**：账号需具备对同步表的写入权限（INSERT、DELETE、UPDATE），以便能够将数据正确写入目标表。
  
  - **涉及表操作时**：如新建表、删除表等，账号需具备对同步表的写入权限（CREATE、DROP），以支持数据集成过程中对表结构的灵活调整。
  
  - **特殊说明**：当数据源为华为云DDM产品时，由于DDM不支持跨库查询元数据，连接中选择的库应与任务中的库保持一致，以避免因库不一致导致的元数据查询错误。
   
 
#### 驱动选择
| 驱动名称  | 获取地址                                                    | 建议版本     |
|:---|:---|:---|
| MYSQL | [MySQL 驱动下载](https://downloads.mysql.com/archives/c-j/) | 5.1.48版本 |
   
#### 支持的数据类型
以MySQL社区版5.7/8.0为基准，本数据集成服务兼容以下字段类型及其常见变体，确保在读写操作中能够准确处理各类数据：
| 类型分类 | 字段类型            | MySQL读取 | MySQL写入 |
|:---|:---|:---|:---|
| 整数型  | TINYINT         | √       | √       |
| 整数型  | SMALLINT        | √       | √       |
| 整数型  | INTEGER         | √       | √       |
| 整数型  | BIGINT          | √       | √       |
| 浮点数  | FLOAT           | √       | √       |
| 浮点数  | DOUBLE          | √       | √       |
| 浮点数  | DECIMAL/NUMERIC | √       | √       |
| 浮点数  | REAL            | √       | √       |
| 字符型  | VARCHAR         | √       | √       |
| 字符型  | JSON            | √       | √       |
| 字符型  | TEXT            | √       | √       |
| 字符型  | MEDIUMTEXT      | √       | √       |
| 字符型  | LONGTEXT        | √       | √       |
| 二进制  | VARBINARY       | √       | √       |
| 二进制  | BINARY          | √       | √       |
| 二进制  | TINYBLOB        | √       | √       |
| 二进制  | MEDIUMBLOB      | √       | √       |
| 二进制  | LONGBLOB        | √       | √       |
| 枚举   | ENUM            | √       | √       |
| 枚举   | SET             | √       | √       |
| 布尔   | BOOLEAN         | √       | √       |
| 比特   | BIT             | √       | √       |
| 时间   | DATE            | √       | √       |
| 时间   | DATETIME        | √       | √       |
| 时间   | TIMESTAMP       | √       | √       |
| 时间   | TIME            | √       | √       |
| 时间   | YEAR            | √       | √       |
   
#### 支持的迁移场景
数据集成离线同步支持以下三种同步方式，以满足不同数据迁移场景的需求：
- **单表同步**
  适用于数据入湖和数据上云场景下，表或文件级别的数据同步。
  
- **分库分表同步**
  适用于数据入湖和数据上云场景下，多库多表同步场景。
  
- **整库迁移**
  适用于数据入湖和数据上云场景下，离线或自建数据库整体同步场景。
  
云场景下，离线或自建数据库整体同步场景。支持的数据源类型请参考整库同步支持的数据源类型。
需要注意的是，分库分表与整库迁移能力会根据不同region的上线支持情况有所不同，具体支持情况以页面为准。以下是针对MySQL的支持迁移场景概览：
| 支持迁移场景 | Mysql单表读取 | Mysql单表写入 | Mysql分库分表读取 | Mysql分库分表写入 | Mysql整库读取 | Mysql整库写入 |
|:---|:---|:---|:---|:---|:---|:---|
| 是否支持   | √         | √         | √           | √           | √         | x         |
   
#### 核心能力速览
- **连接配置**
  
  | 配置项     | 支持情况 | 说明                                     |
  |:---|:---|:---|
  | 用户/AK   | √    | 支持用户认证，确保连接安全。                         |
  | SSL加密   | √    | 支持SSL加密，保障数据传输安全，当前仅支持云上RDS开启SSL认证。    |
  | SSL认证支持 | √    | 当前仅支持云上RDS开启SSL认证，通过标准华为云CA证书进行认证。     |
  | 私有证书支持  | x    | 不支持私有证书。                               |
  | 连接配置调优  | √    | 支持connectTimeout等连接配置调优，可根据实际需求优化连接性能。 |
  | 自定义驱动   | √    | 支持自定义驱动，提供更高的灵活性。                      |
     
  
- **读取能力**
  
  | 配置项    | 支持情况 | 说明                                |
  |:---|:---|:---|
  | 分片并发   | √    | 支持按主键或常见字段做水平分片，多线程并行抽取，显著提升吞吐效率。 |
  | 脏数据处理  | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。     |
  | 自定义字段  | √    | 可在任务级追加计算列、常量列或脱敏函数，满足个性化业务需求。    |
  | 增量读取   | √    | 支持where条件和SQL模式，可实现增量读取。          |
  | 流批读取方式 | 流读   | 支持流式读取，适用于大数据量场景。                 |
  | 视图读取   | √    | 支持从视图中读取数据，实现灵活的数据集成与处理。          |
     
  
- **写入能力**
  
  | 配置项    | 支持情况 | 说明                                                         |
  |:---|:---|:---|
  | 脏数据处理  | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。                              |
  | 冲突解决   | √    | 支持insert into/replace into/duplicate key等多种写入方式，可灵活处理数据冲突。 |
  | 导入前后处理 | √    | 支持 preSql/delete 等操作，可在数据导入前后进行数据清洗和处理。                    |
  | 并发写入   | √    | 支持并发写入，提升写入效率。                                             |
  | 写入行数调优 | √    | 支持在连接中配置【单次提交行数】和【单次写入行数】参数调优，可根据实际需求优化写入性能。               |
     
  
 
#### 创建数据源
在DataArts Studio管理中心新建相应的数据源，详情请参见[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)。
#### 创建数据集成离线作业
在DataArts Studio数据开发中新建MySQL集成作业，详情请参见[新建离线处理集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1458.html)。
#### 常见问题
- [MySQL迁移时报错"JDBC连接超时"怎么办？](https://support.huaweicloud.com/dataartsstudio_faq/dataartsstudio_03_0110.html)
- [如何使用CDM服务将MySQL的数据导出成SQL文件，然后上传到OBS桶？](https://support.huaweicloud.com/dataartsstudio_faq/dataartsstudio_03_0122.html)
- [MySQL迁移时报错：invalid input syntax for integer: "true"](https://support.huaweicloud.com/dataartsstudio_faq/dataartsstudio_03_0341.html)
 
#### 最佳实践
[MySQL连接属性配置指南](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1529.html)
[关系型数据库增量迁移](https://support.huaweicloud.com/bestpractice-dataartsstudio/dataartsstudio_05_0005.html)
