SSIS中的OData源组件未连接

时间:2018-01-19 23:48:30

标签: sql-server ssis odata etl

这是上一个问题的后续问题: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

我已成功使用Windows身份验证为基本网址https://data.medicaid.gov/api/odata/v4/创建了一个OData源连接管理器。

我创建了一个包含2个组件的简单数据流。 OData源和Recordset目标。 Recordset Destination指向Data类型为Object的变量。

在我的数据流中,我已成功创建OData源到资源路径a4y5-998d,并且能够预览数据。

In the background you can see my data flow components: an OData Source and a Recordset Destination. In the middle ground you can see how I've configured the OData Source Editor to use the resource path. On top, you can see the preview showing data from the OData source. 屏幕截图显示预览数据和数据流布局& OData源代码编辑器配置。

核心问题

一切看起来都不错,但是当我在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源是   无法处理数据。底层连接已关闭:An   发送时发生意外错误。错误:数据流中的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源组件来引入公共OData源?有人能够让这个工作吗? (如果你想尝试自己,我的包装很简单。)

这是一个公开可访问的OData源,没有身份验证。 SSIS中的OData Source组件非常简单:它真正需要的只是一个URL。我能够完美地预览数据。

我难以理解为什么我无法获得实际加载的数据。它不应该这么难。 (例如,我将数据加载到Power BI中没有问题。)

非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

我有类似的问题。就我而言,OData仅通过https提供。

这些链接有很多帮助:

这是TLS版本,必须是1.2,但使用.Net Framework 4.5的服务器并没有将其设置为默认值。

答案 1 :(得分:0)

我遇到了类似的问题。就我而言,问题在于空间分配和 SSISDB 已满。我释放了一些空间并解决了问题。