这是上一个问题的后续问题: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,并且能够预览数据。
屏幕截图显示预览数据和数据流布局& 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模式下运行包,我都会得到相同的结果。
当我将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中没有问题。)
非常感谢您提供的任何帮助。
答案 0 :(得分:0)
我有类似的问题。就我而言,OData仅通过https提供。
这些链接有很多帮助:
这是TLS版本,必须是1.2,但使用.Net Framework 4.5的服务器并没有将其设置为默认值。
答案 1 :(得分:0)
我遇到了类似的问题。就我而言,问题在于空间分配和 SSISDB 已满。我释放了一些空间并解决了问题。