从Hive到Blob文件再到Azure DataWarehouse处理数据时,数据长度出现问题

时间:2019-01-10 09:59:53

标签: azure hive

我通过使用子字符串函数并指定3999的长度在Hive中选择列数据。我将所选列存储在Azure上的Blob文件中,然后尝试使用Azure Data Factory将文件加载到Azure DataWarehouse中。现在我遇到了几行错误,它说数据长度已超过3999(MaxLength)。

因此,为了进行故障排除,我在Hive中设置了长度为2000的子字符串,并将数据保存到文件中。这次,我没有收到任何错误。但是,当我检查DataWarehouse列中的数据时,某些元素的长度超过2000。这主要是由于数据以汉字输入。

1 个答案:

答案 0 :(得分:0)

这是因为某些字符(例如汉字)以多种流行格式(例如UTF-8)被编码为几个字节。在推送到数据工厂之前的长度测试将计算UTF-8字符的数量,而数据工厂本身将计算字节(或ascii字符)的数量。

更改编码,或在推送之前测量字符串的长度(以字节为单位)。