Azure Synapse Analytics - 长列加载
Azure Synapse Analytics - column load with high length
我有一列包含描述,长度约为 80000(包含 unicode 字符)。我无法将其加载到 Azure Synapse Analytics。 Synapse 中定义的数据类型是 nvarchar。
我们正在使用 Azure Databricks。我尝试使用 maxStrLength (.option('maxStrLength', 4000)) 的选项,但最大值为 4000。因此,我收到此错误。
:com.databricks.spark.sqldw.SqlDWSideException:Azure Synapse Analytics 无法执行连接器生成的 JDBC 查询。
基础 SQLException:
- com.microsoft.sqlserver.jdbc.SQLServerException:HdfsBridge::recordReaderFillBuffer - 填充记录时遇到意外错误reader 缓冲区:HadoopSqlException:字符串或二进制数据将被截断。 [错误代码 = 107090] [SQLState = S0001]
请问有什么办法可以解决这个问题吗?
更新 - 通过在将数据帧写入 Synapse 并将目标数据类型声明为 nvarchar(max)
时删除 .option('maxStrLength', 4000) 来解决此问题
您可以使用 nvarchar [ ( n | max ) ]
存储多达 10 亿个 2 字节 Unicode 字符。
Variable-length Unicode string data. n defines the string length and
can be a value from 1 through 4,000. max indicates that the maximum
storage size is 2^31-1 bytes (2 GB). The storage size, in bytes, is
two times the actual length of data entered + 2 bytes. The ISO
synonyms for nvarchar are national char varying and national character
varying.
您可以参考下面提到的相关SO线程:
How does SQL Server store more than 4000 characters in NVARCHAR(max)?
我有一列包含描述,长度约为 80000(包含 unicode 字符)。我无法将其加载到 Azure Synapse Analytics。 Synapse 中定义的数据类型是 nvarchar。 我们正在使用 Azure Databricks。我尝试使用 maxStrLength (.option('maxStrLength', 4000)) 的选项,但最大值为 4000。因此,我收到此错误。
:com.databricks.spark.sqldw.SqlDWSideException:Azure Synapse Analytics 无法执行连接器生成的 JDBC 查询。 基础 SQLException:
- com.microsoft.sqlserver.jdbc.SQLServerException:HdfsBridge::recordReaderFillBuffer - 填充记录时遇到意外错误reader 缓冲区:HadoopSqlException:字符串或二进制数据将被截断。 [错误代码 = 107090] [SQLState = S0001]
请问有什么办法可以解决这个问题吗?
更新 - 通过在将数据帧写入 Synapse 并将目标数据类型声明为 nvarchar(max)
时删除 .option('maxStrLength', 4000) 来解决此问题您可以使用 nvarchar [ ( n | max ) ]
存储多达 10 亿个 2 字节 Unicode 字符。
Variable-length Unicode string data. n defines the string length and can be a value from 1 through 4,000. max indicates that the maximum storage size is 2^31-1 bytes (2 GB). The storage size, in bytes, is two times the actual length of data entered + 2 bytes. The ISO synonyms for nvarchar are national char varying and national character varying.
您可以参考下面提到的相关SO线程:
How does SQL Server store more than 4000 characters in NVARCHAR(max)?