代码之家  ›  专栏  ›  技术社区  ›  Martin Bobak

如何在Azure Data Factory中使用预复制脚本删除空/特殊字符行?

  •  0
  • Martin Bobak  · 技术社区  · 7 年前

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

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

    这是一个每周处理一次的过程,数据量超过了1 TB,移动数据需要花费很长时间,因此我正在寻找将数据导入到最终表中的方法,而不是使用临时组件。

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

    我不确定如何处理这个问题,因为csv不会存储在表中,所以SQL代码无法工作。在将数据加载到sql server之前,有没有关于如何利用预复制脚本清理数据的指导?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Martin Esteban Zurita    7 年前

    预复制脚本是在复制新数据之前针对数据库运行的脚本,而不是为了修改正在接收的数据。

    我已经回答了另一个问题,使用中间表提供了一个可能的解决方案: Pre-copy script in data factory or on the fly data processing

    希望这有帮助!