这是上一个问题的后续内容:OData Source Component in SSIS Hanging
设置
我在Visual Studio 2015(17.4)中使用SSIS,并希望使用OData连接从该页面提取公共NADAC数据:https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-National-Average-Drug-Acquisition-Cost-/a4y5-998d .
我已成功创建OData源连接管理器到基本URL:https://data.medicaid.gov/api/odata/v4/使用Windows身份验证 .
我创建了一个包含2个组件的简单数据流 . OData源和Recordset目标 . Recordset Destination指向Data类型为Object的变量 .
在我的数据流中,我已成功创建OData源到资源路径a4y5-998d并能够预览数据 .
显示预览数据和数据流布局以及OData源编辑器配置的屏幕截图 .
核心问题
一切看起来都不错,但是当我运行我的包 in Visual Studio 时,我收到以下错误:
信息:数据流任务中的0x4004300A,SSIS.Pipeline:验证阶段正在开始 . 错误:数据流任务中的0xC020801F,OData源[2]:无法从运行时连接管理器获取受管连接 . 错误:数据流任务中的0xC0047017,SSIS.Pipeline:OData源验证失败并返回错误代码0xC020801F . 错误:数据流任务中的0xC004700C,SSIS.Pipeline:一个或多个组件验证失败 . 错误:数据流处的0xC0024107任务:任务验证期间出错 .
我已经加粗了关键句子(无法从运行时连接管理器获取托管连接),但包含更多上下文消息 .
因为这是验证错误,所以数据流甚至不会开始运行 .
环顾互联网,许多地方都认为这可能是一个32位/ 64位驱动程序问题 . 但是,我打开和关闭了 Run64BitRuntime ,每次都得到相同的结果 .
无论我是在SQL Server 2016还是SQL Server 2017模式下运行包,我都会得到相同的结果 .
HTTP与HTTPS
当我将OData连接管理器编辑器中的URL更改为http而不是https时,事情似乎进展得更好 .
包验证,我在OData Source上方得到一个黄色的旋转圆圈 . 但后来我收到一条消息:
信息:0x40043006在数据流任务,SSIS.Pipeline:准备执行阶段开始 . 信息:0x40043007在数据流任务,SSIS.Pipeline:预执行阶段开始 . 信息:数据流任务中的0x4004300C,SSIS.Pipeline:执行阶段开始 . 错误:数据流任务中的0xC02090F5,OData源[2]:OData源无法处理数据 . 底层连接已关闭:发送时发生意外错误 . 错误:数据流任务中的0xC0047038,SSIS.Pipeline:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED . OData Source上的PrimeOutput方法返回错误代码0xC02090F5 . 当管道引擎调用PrimeOutput()时,组件返回失败代码 . 失败代码的含义由组件定义,但错误是致命的,管道停止执行 . 在此之前可能会发布错误消息,其中包含有关失败的更多信息 . 信息:0x40043008在数据流任务,SSIS.Pipeline:后执行阶段开始 . 信息:数据流任务中的0x4004300B,SSIS.Pipeline:“Recordset Destination”写入0行 . 信息:数据流任务中的0x40043009,SSIS.Pipeline:清理阶段正在开始 . 任务失败:数据流任务
这里的关键句是:OData Source无法处理数据 . 底层连接已关闭:发送时发生意外错误 .
虽然使用HTTP而不是HTTPS时包的工作方式不同,但我知道这可能与基本问题完全无关 . 到目前为止,这是唯一有所作为的东西 .
摘要
有没有人建议在SSIS中使用ODATA Source组件来引入公共OData源?有人能够让这个工作吗? (如果你想尝试自己,我的包装很简单 . )
这是一个公开可访问的OData源,无需身份验证 . SSIS中的OData Source组件非常简单:它真正需要的只是一个URL . 我能够完美地预览数据 .
我很难过为什么我无法获得实际加载的数据 . 不应该这么难 . (例如,我将数据加载到Power BI中没有问题 . )
我们将非常感谢您提供的任何帮助 .
1 回答
我遇到了类似的问题 . 就我而言,OData仅通过https提供 .
这些链接有很多帮助:
https://blogs.msdn.microsoft.com/dataaccesstechnologies/2018/01/16/tls-issue-with-ssis-package-while-accessing-odata-source-like-dynamics-ax-online/
https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support/
它是TLS版本,必须是1.2,但使用.Net Framework 4.5的服务器并未将其设置为默认值 .