Amazon web services 红移:错误:最大列长度超过255代码

Amazon web services 红移:错误:最大列长度超过255代码,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,此错误是由CREATETABLE语句中的以下行引起的 movie_title VARCHAR encode text255, 红移中的默认VARCHAR长度为256,并且256>255,因此 无法执行此查询或语句 错误:-----------------------------错误:最大值 列长度超过255代码:8001上下文:限制是由于使用了 text255编码查询:0位置:列。cpp:167进程:padbmaster [pid=9637]--------------------------

此错误是由CREATETABLE语句中的以下行引起的

movie_title VARCHAR encode text255,
红移中的默认VARCHAR长度为256,并且256>255,因此

无法执行此查询或语句

错误:-----------------------------错误:最大值 列长度超过255代码:8001上下文:限制是由于使用了 text255编码查询:0位置:列。cpp:167进程:padbmaster [pid=9637]-----------------------------------------------

如果我将text255更改为text32k,错误就会消失

但据我所知,text255压缩不是以这种方式工作的

它使用一个字节(255)对任何列中的文本进行字典编码 将存储字典中未表示的单词 未压缩

参考:


不应该引起这个问题。如何解释此错误?

似乎还有另一个限制,即每个压缩字的大小必须小于255字节。应用text255的列大小可能会因此受到限制


实际上,我可以将text255 encoding设置为varchar(255),就像
movie_title varchar(255)encode text255

thx一样,对于响应,据我从文档中了解,text255并不是将列作为一个整体进行压缩,而是将列中的每个标记分别压缩/编码,这是正确的。text255压缩一列值内的单词。我的观点是VARCHAR列大小有一个限制,可以应用text255,AWS文档并没有提到这一点。然而,我不知道更详细的原因。