我通过使用子字符串函数并指定3999的长度在Hive中选择列数据。我将所选列存储在Azure上的Blob文件中,然后尝试使用Azure Data Factory将文件加载到Azure DataWarehouse中。现在我遇到了几行错误,它说数据长度已超过3999(MaxLength)。
因此,为了进行故障排除,我在Hive中设置了长度为2000的子字符串,并将数据保存到文件中。这次,我没有收到任何错误。但是,当我检查DataWarehouse列中的数据时,某些元素的长度超过2000。这主要是由于数据以汉字输入。
答案 0 :(得分:0)
这是因为某些字符(例如汉字)以多种流行格式(例如UTF-8)被编码为几个字节。在推送到数据工厂之前的长度测试将计算UTF-8字符的数量,而数据工厂本身将计算字节(或ascii字符)的数量。
更改编码,或在推送之前测量字符串的长度(以字节为单位)。