SSIS中的OData源组件挂起

时间:2017-12-29 18:42:38

标签: ssis odata

我正在使用SSIS,并希望使用OData连接从此页面提取公共NADAC数​​据:https://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-National-Average-Drug-Acquisition-Cost-/a4y5-998d

您可以通过单击椭圆并选择通过OData访问数据在其页面上找到OData端点。 v4端点是:https://data.medicaid.gov/api/odata/v4/a4y5-998d

在SSIS(Visual Studio 2015,针对SQL Server 2016的版本14.0.500.272)中,我能够为基本URL创建OData源连接管理器:https://data.medicaid.gov/api/odata/v4/

Image of OData Connection Manager Editor with the URL clearly displayed, Windows Authentication selected, and a message "Test connection succeeded"

您可以看到测试连接成功。 注意:如果我在这里指定了完整的OData终点URL,它确实成功了,但是在下一步中找不到要连接的任何集合,我为什么不这样做。 (消息为"无法为连接OData源加载集合,原因:无法打开此连接")

另请注意,我正在使用" Windows身份验证"但这是一个公共源,不需要身份验证。似乎没有"匿名身份验证"选项。

下一步是将OData Source拖到我的数据流上,然后右键单击进行编辑。当我这样做时,我首先选择刚刚创建的OData连接管理器。它识别连接并显示我可以连接的集合的下拉列表。

Picture of the OData Source Editor showing a drop-down list of collections

显然,我在此之前做了一些事情,因为它识别了可用的集合。

但是,我是否:

  1. 选择列表中的任何集合
  2. 在列表中选择我想要的集合(a4y5-998d)
  3. 从集合切换到资源路径并粘贴到我想要的资源路径中(a4y5-998d)
  4. 然后点击"预览..."或"列"甚至"好的" - Visual Studio完全没有响应。 20多分钟。我必须使用任务管理器崩溃并再试一次。如果我让它永远存在,我最终会收到一条黄色警告消息:管道组件已从方法调用中返回HRESULT错误代码0xC020801F。

    我还没有在Medicaid提供的v2 OData Feed端点(https://data.medicaid.gov/OData.svc/a4y5-998d)上取得任何成功。

    我的两个问题:

    1. 我做错了什么吗?也许我使用了错误的网址,或者没有正确设置?
    2. 您是否遇到过同样的问题,或者您是否能够使用我尝试的步骤让它工作?要重新创建,请使用数据流组件创建新的SSIS包,然后按照我的步骤操作。
    3. 注意:我能够使用Power BI(例如)使用数据,因此我认为Feed没有任何问题。它只是SSIS我挣扎着。

      提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这是一个视觉工作室的错误。我从SSDT 17.0升级到SSDT 17.4(SSIS版本14.0.1000.169),错误消失了。