如何在Azure数据工厂中使用预复制脚本删除空/特殊字符行?

时间:2019-01-31 21:03:53

标签: sql-server azure azure-sql-database azure-data-factory azure-data-lake

我正在使用Azure数据工厂(ADF)将文件夹中的数据从Azure数据湖移动到SQL Server。

该文件夹包含数百个.csv文件。但是,这些csv的一个不一致的问题是,某些(不是全部)具有包含特殊字符的最后一行,当尝试加载到NVARCHAR(MAX)以外的数据类型的sql表时,该行将失败。要解决此问题,我必须首先使用ADF将数据加载到所有表都设置为NVARCHAR(MAX)的登台表中,然后将那些不包含特殊字符的行插入具有适当数据类型的表中。

这是一个每周的过程,数据量超过TB,并且需要永远移动数据,因此我正在研究导入到最终表中的方法,而不是具有暂存组件。

我注意到有一个“预复制脚本”字段,可以在加载到sql服务器之前执行。我想添加代码,使我可以在加载到sql server之前解析出特殊字符或空行。

我不确定如何处理此问题,因为csv不会存储在表中,因此SQL代码不起作用。关于如何在将数据加载到sql服务器之前如何利用预复制脚本清除数据的任何指导?

2 个答案:

答案 0 :(得分:0)

预复制脚本是您在复制新数据之前针对数据库运行的脚本,而不是修改要提取的数据。

我已经回答了另一个问题,使用中间表Pre-copy script in data factory or on the fly data processing

提供了可能的解决方案

希望这对您有帮助!

答案 1 :(得分:0)