我正在将表从SQL Server移动到Redshift。我已导出数据并将其转换为UTF-8文本文件。尝试加载到Redshift时,COPY命令失败,抱怨数据超出了字段的宽度。
目标Redshift表架构与源SQL Server表的架构匹配(即varchar字段宽度相同)。如果我理解正确,Redshift的varchar大小以字节为单位,而不是像SQL Server那样的字符。因此,多字节字符导致"太宽"问题
我想运行一个查询来确定我的varchar字段的大小,但似乎并不是一个函数可以返回字符串所需的字节数,只有字符数在那个字符串中。
其他人如何解决这个问题?
答案 0 :(得分:0)
字段长度和结果字段类型在Redshift中可能至关重要。将样本数据加载到具有最大字段大小的RedShift表中。样本必须尽可能大。您可以在不考虑MSSQL Server中的定义的情况下计算实际字段大小,这可能比您真正需要的大得多。