使用Azure Synapse复制数据工具导入数据时,如何指定正确数据类型?
针对Synapse复制数据工具列类型问题的解决方案
方案一:先创建目标表再导入(微软推荐,稳定可靠)
这是最直接且不易出错的方式,操作步骤如下:
- 在Synapse工作区的「数据」hub中,找到目标数据库,新建表,根据TIOBE数据定义正确的列类型:
CREATE TABLE TiobeRatings ( PartitionKey VARCHAR(7), Year INT, Month TINYINT, Language VARCHAR(50), Rating DECIMAL(5,2) ) - 打开复制数据工具,选择ADLS Gen2中的TIOBE数据集作为源,目标选择刚创建的
TiobeRatings表 - 进入列映射步骤时,工具会自动匹配列并沿用目标表的类型,无需手动修改,直接完成后续配置即可
方案二:修改源数据集架构(无需提前建表,更简便)
如果不想提前编写SQL建表,可以通过修改源数据集的架构来指定正确类型,步骤如下:
- 在Synapse工作区的「数据」hub中,找到已连接的ADLS Gen2存储账户,定位到TIOBE的CSV文件
- 右键选择「新建数据集」,在数据集配置界面切换到「架构」选项卡
- 点击「导入架构」,工具会自动读取CSV表头,此时所有列默认是String类型
- 手动修改各列的类型:
- Year:设置为
Int32 - Month:设置为
Int16 - Rating:设置为
Decimal(精度设为5,2) - PartitionKey和Language保持
String即可
- Year:设置为
- 保存数据集后,打开复制数据工具,选择这个已修改架构的数据集作为源
- 在目标配置中选择「新建表」,工具会自动沿用源数据集的列类型创建目标表,完成后续映射即可
总结
- 若需要严格控制表结构、后续有复杂分析或查询需求,优先选方案一,提前建表能确保数据类型完全符合预期
- 若只是快速导入数据、不想编写SQL,方案二更高效,直接修改源数据集架构就能让复制工具自动识别正确类型
内容的提问来源于stack exchange,提问作者Shawn Eary
相关产品推荐
相关产品推荐

