Использование VSTS.Feed () в Power BI для доступа к данным - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь использовать функцию VSTS.Feed () в Power BI для чтения данных WorkItemSnapshot. Есть несколько проблем. Если я соберу весь URL-адрес в одну строку и при этом вызову VSTS.Feed (), я получу правильную информацию на рабочем столе Power BI, но она не будет обновляться в Power BI онлайн. Мне сказали использовать (недокументированный) параметр Query, как показано ниже, но ясно, что этот параметр игнорируется. Я вижу, что параметр select игнорируется в небольших проектах, потому что возвращаются все столбцы. Я вижу, что параметр фильтра игнорируется, потому что запрос не выполняется в более крупных проектах.

У кого-нибудь есть рабочий пример использования параметра Query с VSTS.Feed ()?

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 Team Services = 881f7988-9863-4e03-8375-0489028f28f3 ID действия URL = 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 () противоречит самой себе, говоря, что оба

Функция VSTS.Feed имеет те же параметры, параметры и формат возвращаемого значения, что и OData.Feed.

и

«VSTS.Feed» предоставляет подмножество аргументов и опций, доступных через «OData.Feed».

Подводя итог, я знаю, что не могу объединить источники данных в Power BI. Поддерживает ли VSTS.Feed () параметр options? Если так, как я могу передать ему предложение Filter and Select?

1 Ответ

0 голосов
/ 26 июня 2018

Чтобы получить 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-preview или https://account.analytics.visualstudio.com/_odata/v1.0-preview.

И вы можете ссылаться на следующие документы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...