SSIS包中的错误将数据加载到azure数据仓库中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS包中的错误将数据加载到azure数据仓库中相关的知识,希望对你有一定的参考价值。
我们有一些ssis包从CSV文件将数据加载到azure数据仓库中。包内的所有数据流任务都配置为并行处理。最近的包启动失败并出现以下错误。
无法从blob存储复制到SQL数据仓库。 110802;发生内部DMS错误导致此操作失败。详细信息:异常:System.NullReferenceException,消息:未将对象引用设置为对象的实例。
当我们手动运行包(单独运行每个dft)时,它运行良好。当我们手动运行包(并行处理)时,会发生同样的错误。
这里的任何人请帮助找到这个问题的根本原因?
我相信如果多个作业试图同时访问同一个文件,可能会出现此问题。您可能需要检查一个CSV文件是否是多个SSIS包的来源,如果是,您可能需要更改您的方法。当一个程序包尝试读取一个CSV文件时,它会锁定该文件,以便其他作业无法修改此文件。要解决此问题,您可以将顺序DFT用于使用相同CSV作为源的任务,并保持其他DFT并行保持原样。
恕我直言,使用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
以上是关于SSIS包中的错误将数据加载到azure数据仓库中的主要内容,如果未能解决你的问题,请参考以下文章