Azure SQL数据仓库:varchar类型的最大大小

Azure SQL数据仓库:varchar类型的最大大小,azure,sql-data-warehouse,azure-sql-data-warehouse,Azure,Sql Data Warehouse,Azure Sql Data Warehouse,我是Azure新手,在Azure SQL数据仓库的表中有以下字段: [AnnotationText] varchar(MAX) NULL, 根据我读到的: varchar[(n | max)]可变大小字符串数据。使用n以字节为单位定义字符串大小,可以是1到8000之间的值,也可以使用max表示最大存储空间为2^31-1字节(2 GB)的列约束大小 但我看到的是8000的大小,带有这种类型的错误消息: Too long string in column [-1]: Actual len =

我是Azure新手,在Azure SQL数据仓库的表中有以下字段:

[AnnotationText] varchar(MAX) NULL,
根据我读到的:

  • varchar[(n | max)]可变大小字符串数据。使用n以字节为单位定义字符串大小,可以是1到8000之间的值,也可以使用max表示最大存储空间为2^31-1字节(2 GB)的列约束大小
但我看到的是8000的大小,带有这种类型的错误消息:

Too long string in column [-1]: Actual len = [11054]. MaxLEN=[8000]
我试图硬编码大小,但任何大于8000的数字都不能像文档中所写的那样工作

我还发现一些文档说应该在表创建中使用堆或聚集索引类型,但这也没有帮助

知道哪里出了问题吗?

ADF表示Polybase不支持(max)数据类型

一种常用的技术是在ADF中拆分文件,使用Polybase批量加载LOB数据,然后使用另一种技术稍后添加LOB数据。另一种技术——更快——是使用ADF拆分列,并在摄取点使用分层在外部表上的视图重新组装它


更好的方法可能是质疑为什么数据仓库中需要LOB数据。根据LOB的类型,是否可以使用其他方法?例如,如果LOB表示一个文档,那么它是否可以通过DW表中的链接外部化到blob存储?

我正在使用DataRicks使用Polybase将数据插入Azure DW(Synapse)。我的数据集中有一个nvarchar(500)列,但它遇到了同样的问题。我发现在我的例子中,断点在255到300个字符之间。最后,我将该列替换为250个字符,因为内容对于报告目的并不重要。

能否显示出现错误的查询?我通过Data Factory使用了PolyBase,因此显示查询并不容易。我使用“复制数据”活动从SQL数据库复制到不支持(max)数据类型的SQL Data warehouse.ADF文档@RonDunn请将您的评论作为回答。谢谢确切地说,Polybase不支持max类型。再次感谢@RonDunn,请将其作为回复发布。这就像建议一样,因此您可以将其作为评论插入。请阅读此社区的规则。抱歉,评论需要50点声誉点数,我没有,但我想分享我的经验。如果我的答案违反规则,我可以删除它。并且回答我自己的答案,应该是评论:)。到Synapse的Databricks连接的字符串默认最大长度为256。您可以使用“maxStrLength”选项覆盖该选项。