Azure data factory 复制活动自动创建nvarchar(最大)列
我有Azure数据工厂复制活动,将拼花文件加载到Azure Synapse。接收器配置如下所示: 数据加载完成后,我有一个如下的暂存表结构: 然后,我基于stg one创建了临时表,它一直工作正常,直到今天,新创建的表突然收到了nvarchar(max)类型而不是nvarchar(4000): 临时表创建现在失败,出现明显错误: “currency_缩写”列的数据类型不能参与columnstore索引。”Azure data factory 复制活动自动创建nvarchar(最大)列,azure-data-factory,azure-synapse,copy-activity,autocreate,Azure Data Factory,Azure Synapse,Copy Activity,Autocreate,我有Azure数据工厂复制活动,将拼花文件加载到Azure Synapse。接收器配置如下所示: 数据加载完成后,我有一个如下的暂存表结构: 然后,我基于stg one创建了临时表,它一直工作正常,直到今天,新创建的表突然收到了nvarchar(max)类型而不是nvarchar(4000): 临时表创建现在失败,出现明显错误: “currency_缩写”列的数据类型不能参与columnstore索引。” 为什么自动创建表定义已更改,以及如何在没有nvarchar(max)列的情况下将其返
为什么自动创建表定义已更改,以及如何在没有nvarchar(max)列的情况下将其返回到“正常”行为?我遇到了完全相同的问题!我使用一个数据工厂将csv文件读取到我的Azure数据仓库中,这通常会产生nvarchar(4000)列,但现在它们都是nvarchar(max)。我也得到了错误 列xxx的数据类型不能参与列存储索引
我现在的解决方案是更改我的SQL代码并使用强制转换来更改格式,但数据工厂中必须有一个设置才能返回以前的结果…我遇到了完全相同的问题!我使用一个数据工厂将csv文件读取到我的Azure数据仓库中,这通常会产生nvarchar(4000)列,但现在它们都是nvarchar(max)。我也得到了错误 列xxx的数据类型不能参与列存储索引
我现在的解决方案是更改SQL代码并使用强制转换来更改格式,但数据工厂中必须有一个设置才能返回以前的结果…最后我决定了下一个解决方案:1)创建自动表的空副本,但使用nvarchar(4000)字段,2)从“with max”复制到“with 4000”,3)重命名“带max”到一些旧名字,“带4000到原点”到max“name 4)drop\u old\u name它工作正常,一个缺点是初始运行-复制所有表需要更长的时间,但下一次运行将使用新创建的具有正确结构的表。最后,我决定下一个解决方案:1)创建自动表的空副本,但使用nvarchar(4000)字段,2)从“with max”复制到“with 4000”,3)将“with max”重命名为某个_old_name,“with 4000”重命名为“origin”with max“name 4)删除_old_name它工作正常,一个缺点是初始运行需要更长的时间才能复制所有表,但下一次运行将使用结构正确的新创建表