在Power BI中使用VSTS.Feed()访问odata

时间:2018-06-25 13:51:27

标签: azure-devops powerbi

我正在尝试使用Power BI中的VSTS.Feed()函数读取WorkItemSnapshot数据。有多个问题。如果将整个URL构建为单个字符串,然后使用该字符串调用VSTS.Feed(),则可以在Power BI桌面中获取正确的信息,但不会在Power BI在线中刷新。有人告诉我使用(未记录的)Query参数,如下所示,但是很明显,此参数被忽略了。我可以看到在较小的项目上会忽略select参数,因为返回了所有列。我看到由于在大型项目上查询失败而忽略了filter参数。

有人有使用VSTS.Feed()的Query参数的有效示例吗?

let
    BaseURL = "https://server.analytics.visualstudio.com/DefaultCollection/project/_odata/WorkItemSnapshot",
    Select = "DateSK,WorkItemId,State,WorkItemType",
    Filter = "WorkItemType eq Bug and State ne Closed and State ne Removed and DateSK ge 20180517 and DateSK le 20180615",
    Source =  VSTS.Feed(BaseURL, [Query=[select=#"Select",filter=#"Filter"]])
in
    Source

更新: 通过上面的查询,我收到的消息如下所示。就像我之前说的,它显然没有使用Filter参数,并且我假设它也没有使用Select参数。我无法查询所有内容,因为有太多的数据,而且我无法使用过滤器,因为无法找到使Options参数起作用的方法。使用VSTS.AccountContents,options参数可以很好地工作,但是这些API端点在参数名称中不使用$。

  

错误:查询结果包含36,788,023行,并且超出了允许的最大大小300,000。请通过应用其他过滤器减少记录数量   细节:       DataSourceKind = Visual Studio团队服务       ActivityId = 881f7988-9863-4e03-8375-0489028f28f3       网址= https://server.analytics.visualstudio.com/DefaultCollection/Project/_odata/WorkItemSnapshot       错误=记录

开始整个提问过程的查询只是一个带有开始日期变量的查询。

 let
    startDate = DateTimeZone.ToText (Date.AddDays(DateTimeZone.UtcNow(), -45), "yyyyMMdd"),
    URL = "https://server.analytics.visualstudio.com/DefaultCollection/project/_odata/WorkItemSnapshot?$select=DateSK,WorkItemId,State,WorkItemType&$filter=WorkItemType eq 'Bug' and State ne 'Closed' and State ne 'Removed' and DateSK gt " & startDate,
    Source = VSTS.Feed(URL)
 in
    Source

虽然此查询通常在Power BI桌面上有效(忽略了select子句),但在在线刷新数据源时收到的消息是:

  

您无法为该数据集安排刷新,因为一个或多个源当前不支持刷新。
  发现数据源
  查询包含未知或不受支持的数据源。

VSTS.Feed()的documentation本身矛盾,

  

VSTS.Feed函数具有与OData.Feed相同的参数,选项和返回值格式。

  

'VSTS.Feed'提供了可通过'OData.Feed'使用的参数和选项的子集。

总而言之,我知道我无法在Power BI中合并数据源。 VSTS.Feed()是否支持options参数?如果是这样,如何向它传递Filter and Select子句?

1 个答案:

答案 0 :(得分:0)

要通过WorkItemSnapshot获得vsts.feed,请参考以下查询:

let
    Source = OData.Feed("https://account.analytics.visualstudio.com/project/_odata/v1.0-preview", null, [Implementation="2.0"]),
    WorkItemSnapshot_table = Source{[Name="WorkItemSnapshot",Signature="table"]}[Data]
in
    WorkItemSnapshot_table

注意:URL格式应为https://account.analytics.visualstudio.com/project/_odata/v1.0-previewhttps://account.analytics.visualstudio.com/_odata/v1.0-preview

您可以参考以下文档: