Azure SQL 数据仓库:varchar 类型的最大大小
Azure SQL Data Warehouse: max size of varchar type
我是 Azure 的新手,我在 Azure SQL 数据仓库的 table 中有这个字段:
[AnnotationText] varchar(MAX) NULL,
根据我从 https://docs.microsoft.com/en-us/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-2017 中读到的内容:
- varchar [ ( n | max ) ] 可变大小的字符串数据。使用 n 以字节为单位定义字符串大小,可以是 1 到 8,000 之间的值,或者使用 max 指示列约束大小,最大存储量为 2^31-1 字节 (2 GB)。
但我看到的是大小为 8000 的错误消息:
Too long string in column [-1]: Actual len = [11054]. MaxLEN=[8000]
我尝试对大小进行硬编码,但任何大于 8000 的数字都无法像文档中写的那样工作。
我还发现一些文档说在 table 创建中应该使用 HEAP 或 CLUSTERED INDEX 类型,但它也没有帮助
知道哪里出了问题吗?
ADF documents Polybase 不支持(最大)数据类型。
一种常用的技术是在 ADF 中拆分文件,使用 Polybase 批量加载 LOB 数据,然后使用另一种技术稍后添加 LOB 数据。另一种更快的技术是使用 ADF 拆分 列 ,然后在摄取点使用分层在外部 table 上的视图重新组合它。
更好的方法可能是质疑为什么数据仓库中需要 LOB 数据。是否有可以使用的替代方法,具体取决于 LOB 的类型?例如,如果 LOB 表示文档,是否可以将其外部化为 DW table 中具有 link 的 blob 存储?
我正在使用 Databricks 通过 Polybase 将数据插入 Azure DW (Synapse)。我的数据集中有一个 nvarchar(500) 列,但它因同样的问题而失败。我发现在我的例子中,断点在 255 到 300 个字符之间。我最终将该列子字符串化为 250 个字符,因为内容对于报告目的并不重要。
我是 Azure 的新手,我在 Azure SQL 数据仓库的 table 中有这个字段:
[AnnotationText] varchar(MAX) NULL,
根据我从 https://docs.microsoft.com/en-us/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-2017 中读到的内容:
- varchar [ ( n | max ) ] 可变大小的字符串数据。使用 n 以字节为单位定义字符串大小,可以是 1 到 8,000 之间的值,或者使用 max 指示列约束大小,最大存储量为 2^31-1 字节 (2 GB)。
但我看到的是大小为 8000 的错误消息:
Too long string in column [-1]: Actual len = [11054]. MaxLEN=[8000]
我尝试对大小进行硬编码,但任何大于 8000 的数字都无法像文档中写的那样工作。
我还发现一些文档说在 table 创建中应该使用 HEAP 或 CLUSTERED INDEX 类型,但它也没有帮助
知道哪里出了问题吗?
ADF documents Polybase 不支持(最大)数据类型。
一种常用的技术是在 ADF 中拆分文件,使用 Polybase 批量加载 LOB 数据,然后使用另一种技术稍后添加 LOB 数据。另一种更快的技术是使用 ADF 拆分 列 ,然后在摄取点使用分层在外部 table 上的视图重新组合它。
更好的方法可能是质疑为什么数据仓库中需要 LOB 数据。是否有可以使用的替代方法,具体取决于 LOB 的类型?例如,如果 LOB 表示文档,是否可以将其外部化为 DW table 中具有 link 的 blob 存储?
我正在使用 Databricks 通过 Polybase 将数据插入 Azure DW (Synapse)。我的数据集中有一个 nvarchar(500) 列,但它因同样的问题而失败。我发现在我的例子中,断点在 255 到 300 个字符之间。我最终将该列子字符串化为 250 个字符,因为内容对于报告目的并不重要。