SSIS包中的错误将数据加载到azure数据仓库中

问题描述 投票:1回答:2

我们有一些ssis包从CSV文件将数据加载到azure数据仓库中。包内的所有数据流任务都配置为并行处理。最近的包启动失败并出现以下错误。

无法从blob存储复制到SQL数据仓库。 110802;发生内部DMS错误导致此操作失败。详细信息:异常:System.NullReferenceException,消息:未将对象引用设置为对象的实例。

当我们手动运行包(单独运行每个dft)时,它运行良好。当我们手动运行包(并行处理)时,会发生同样的错误。

这里的任何人请帮助找到这个问题的根本原因?

sql sql-server azure ssis azure-sql-data-warehouse
2个回答
1
投票

我相信如果多个作业试图同时访问同一个文件,可能会出现此问题。您可能需要检查一个CSV文件是否是多个SSIS包的来源,如果是,您可能需要更改您的方法。当一个程序包尝试读取一个CSV文件时,它会锁定该文件,以便其他作业无法修改此文件。要解决此问题,您可以将顺序DFT用于使用相同CSV作为源的任务,并保持其他DFT并行保持原样。


0
投票

恕我直言,使用SSIS数据流在Azure SQL数据仓库中插入数据是错误的。早期的驱动程序存在问题,导致性能极其缓慢,即使现在已经修复了这些问题,将数据导入Azure SQL数据仓库的最佳方法是Polybase。将csv文件放入blob store或Data Lake,然后使用Polybase和外部表引用这些文件。 (可选)然后使用CTAS将数据导入内部表,例如伪代码

csv -> blob store -> polybase -> external table -> CTAS to internal table

如果必须使用SSIS,请考虑在更多ELT类型方法中仅使用执行SQL任务,或者使用Azure SQL DW Upload Task,它是SSIS的Azure功能包的一部分,可以从here获得。

通过本教程深入了解此方法:

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/design-elt-data-loading

© www.soinside.com 2019 - 2024. All rights reserved.