
# MySQL与ClickHouse字段类型映射
Migration会根据源端的字段类型按默认规则转换成目的端字段类型，并以此完成自动建表和实时同步。
#### 字段类型映射规则
当源端为MySQL，目的端为ClickHouse时，支持的字段类型请参见下表，以确保数据完整同步到目的端。
表1MySQL \> ClickHouse支持的字段类型 
| 类别                                                   | 数据类型（MySQL）        | 数据类型（ClickHouse） | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| 字符串                                                  | CHAR(M)            | FixedString      | 对于有明确长度的字符串可以使用，使用Null字节填充末尾字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 字符串                                                  | VARCHAR(M)         | String           | 字符串可以是任意长度的。它可以包含任意的字节集，包含空字节。因此，字符串类型可以代替其他 DBMSs 中的VARCHAR、BLOB、CLOB 等类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 数值                                                   | BOOLEAN            | UInt8            | ClickHouse没有单独的类型来存储布尔值。可以使用UInt8 类型，取值限制为0或 1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 数值                                                   | TINYINT            | Int8             | 取值范围：-128 - 127。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 数值                                                   | TINYINT UNSIGNED   | UInt8            | 取值范围：0 - 255。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 数值                                                   | SMALLINT           | Int16            | 取值范围 ：-32768 - 32767。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 数值                                                   | SMALLINT UNSIGNED  | UInt16           | 取值范围：0 - 65535。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 数值                                                   | MEDIUMINT          | Int32            | 取值范围： -2147483648 - 2147483647。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 数值                                                   | MEDIUMINT UNSIGNED | UInt32           | 取值范围：0 - 4294967295。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 数值                                                   | INT                | Int32            | 取值范围： -2147483648 - 2147483647。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 数值                                                   | INT UNSIGNED       | UInt32           | 取值范围：0 - 4294967295。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 数值                                                   | BIGINT             | Int64            | 取值范围 ：-9223372036854775808 - 9223372036854775807。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 数值                                                   | BIGINT UNSIGNED    | UInt64           | 取值范围：0 - 18446744073709551615。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 数值                                                   | REAL               | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 数值                                                   | DECIMAL(M,D)       | Decimal(P, S)    | 有符号的定点数，可在加、减和乘法运算过程中保持精度。支持几种写法： - Decimal(P, S)  - Decimal32(S)  - Decimal64(S)  - Decimal128(S)   |
| 数值                                                   | NUMERIC            | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 数值                                                   | FLOAT(M,D)         | Float32          | 大小4字节，有效精度7位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 数值                                                   | DOUBLE(M,D)        | Float64          | 大小8字节，有效精度16位。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 数值                                                   | DOUBLE PRECISION   | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 位                                                    | BIT(M)             | -                | ClickHouse不支持BIT类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 日期时间  | DATE               | Date             | 用两个字节存储，表示从 1970-01-01（无符号）到当前的日期值。日期中没有存储时区信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 日期时间  | TIME               | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 日期时间  | DATETIME           | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 日期时间  | TIMESTAMP          | DateTime64       | 包含时分秒，可以记录亚秒，支持用字符串形式插入，最小值为 1970-01-01 00:00:00。时区使用启动客户端或服务器时的系统时区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 日期时间  | YEAR(M)            | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | BINARY(M)          | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | VARBINARY(M)       | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | TEXT               | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | TINYTEXT           | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | MEDIUMTEXT         | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | LONGTEXT           | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | BLOB               | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | TINYBLOB           | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | MEDIUMBLOB         | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 多媒体（二进制）                                             | LONGBLOB           | String           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 特殊类型                                                 | SET                | -                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 特殊类型                                                 | JSON               | JSON             | 22.8 版本开始支持。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 特殊类型                                                 | ENUM               | Enum             | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
