
# 迁移MySql到DWS，TINYINT类型迁移报错
#### 问题描述
使用CDM从MySql迁移到DWS，运行作业报错"ERROR:value '-1'is out of range for 8 b-bit integer"。
![](https://support.huaweicloud.com/cdm_faq/zh-cn_image_0000001447778594.png "点击放大")
#### 故障分析
1. 根据问题现象，目的端类型不支持值为"-1"插入，检查目的端字段映射，排查映射问题。 ![](https://support.huaweicloud.com/cdm_faq/zh-cn_image_0000001497618617.png "点击放大")
   
2. 根据上一步字段映射情况判断，进一步排查建表语句。
![](https://support.huaweicloud.com/cdm_faq/zh-cn_image_0000001447458794.png "点击放大")
3. 根据以上截图分析，INT1就是DWS字段类型TINYINT的别名，确认字段映射是对的，没有问题。进一步确认DWS TINYINT是否支持范围，为什么报错提示不支持'-1'的原因，找到DWS字段类型介绍发现DWS TINYINT类型，支持范围为\[0,255\]，不支持负数，Mysql的TINYINT类型支持范围是\[-128,127\]。
![](https://support.huaweicloud.com/cdm_faq/zh-cn_image_0000001497618685.png "点击放大")
4. SMALLINT支持负数，建议目的端建表使用SMALLINT类型。
 
#### 解决方案
1. 根据问题分析，客户映射字段为INT1就是DWS的TINYINT类型别名，映射是没问题的。
2. 对于DWS来说，TINYINT类型，取值范围是 0 \~ 255，源端是Mysql，有"-1"这种负值，推荐客户使用 SMALLINT（取值范围：-32,768 \~ +32,767）建表。
![](https://support.huaweicloud.com/cdm_faq/public_sys-resources/note_3.0-zh-cn.png)
Hive和MySQL的TINYINT类型取值范围都是\[-128,127\]，而DWS的TINYINT类型取值范围是\[0,255\]。
