OData Feed / Power Query в Excel 2016 не получает все / дублирует некоторые записи - PullRequest
0 голосов
/ 02 марта 2019

В Excel я успешно подключился к каналу OData из Data.Medicare.gov (веб-сайт https://data.medicare.gov/Hospital-Compare/Healthcare-Associated-Infections-Hospital/77hc-ibv8/data, а конечная точка - https://data.medicare.gov/api/odata/v4/77hc-ibv8).

Однако теперь, когда я внимательнопросматривая и анализируя данные, я вижу, что некоторые строки / записи данных на веб-сайте (https://data.medicare.gov/Hospital-Compare/Patient-survey-HCAHPS-Hospital/dgck-syfz/data) отсутствуют в моих данных Excel, а другие дублируются. После обновления данных в Excel некоторые из ранее отсутствующихстроки появляются, а другие исчезают. Строки, которые появляются, исчезают или дублируются при каждом обновлении, кажутся случайными.

Например, запись с названием больницы = "Региональный медицинский центр Тринитас" и идентификатором меры = "HAI-1-SIR "находится на веб-сайте, но иногда появляется, а затем снова появляется из таблицы данных Excel (__id =" row-6s6r ~ jx5f.wuje ") при каждом обновлении. Однако общее количество строк не изменяется и равнозагружаемый файл.

Не уверен, что это связано с большим количеством строк (> 170k) в наборе данных. Единственное связанное обсуждение, которое я нашелнаходится на https://blog.crossjoin.co.uk/2018/05/03/troubleshooting-data-refresh-performance-issues-with-odata-data-sources-in-power-bi-and-excel-using-fiddler/, но не думаю, что это решает мою проблему.

ОБНОВЛЕНИЕ 1:

Сократа, который предоставляет OData Feed для этого сайта, ответил следующим:

[Мы] смогли воспроизвести это поведение в Excel, но я не уверен, что его вызывает.Однако, похоже, что это не проблема с самим каналом OData, поскольку я могу последовательно получать доступ к этой строке через свой браузер (например, https://data.medicare.gov/api/odata/v4/77hc-ibv8('row-6s6r~jx5f.wuje')),, так что, похоже, это связано с тем, как Excel обрабатывает данные. К сожалению,Мне не удалось найти много информации в Интернете, объясняющей, почему это происходит, поэтому лучше обратиться в службу поддержки Microsoft, чтобы определить, могут ли они помочь с этим в дальнейшем.

ОБНОВЛЕНИЕ 2:

После обширного поиска и устранения неисправностей и обсуждения с технической поддержкой Microsoft, они (неправильно) пришли к выводу, что дубликаты присутствовали в ленте OData. Возвращаясь к поддержке Socrata, они приняли во внимание мое наблюдение, что этопроисходит только с большими наборами данных и может предложить решение проблемы (см. ответ, размещенный ниже).

1 Ответ

0 голосов
/ 16 апреля 2019

Служба поддержки Socrata обнаружила проблему и предложила добавить параметр $ top к URL-адресу канала OData, что решило эту проблему для меня:

Когда вы загружаете канал OData в Excel, Excel автоматически разбивает страницы на страницырезультаты в фоновом режиме при загрузке в большие наборы данных, и этот процесс загрузки приводит к дублированию записей.Вы можете обойти это, добавив параметр $ top к URL-адресу канала OData со значением, которое больше или равно общему количеству строк в наборе данных, что заставит Excel загружать все данные в одном запросе, а нечем пролистывать результаты.Например, если вы введете https://data.medicare.gov/api/odata/v4/77hc-ibv8?$top=10000000 в качестве URL-адреса, он будет загружен во все записи и дубликатов не будет.

Подтверждена поддержка Microsoft Office 365 " что добавление этой команды $ top действительно останавливает дубликаты."

ОБНОВЛЕНИЕ:

Хотя вышеуказанный параметр $ top изначально решил проблему, я начал получать следующеесообщение об ошибке в Excel:

Невозможно подключиться

Обнаружена ошибка при попытке подключения.

Подробности: "Microsoft.Mashup.Engine1.Library.Resources.HttpResource: запрос не выполнен: версия OData: 3 и 4, ошибка: удаленный сервер возвратил ошибку: (500) внутренняя ошибка сервера. (Произошла внутренняя ошибка. Обратитесь в службу поддержки Socrata, ссылаясь на диагностический код epsfgirt9lxlekyt89oq25x54) Версия OData: 4,Ошибка: удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера. (Произошла внутренняя ошибка. Обратитесь в службу поддержки Socrata, ссылаясь на диагностикуostic code 58cf025wln5br4qzw6lcrxh3a)

Поэтому я обратился в службу поддержки Socrata, и они ответили следующим образом:

[Мы] сталкиваемся с той же ошибкой.Я проверил с нашей командой инженеров, и они сказали, что они недавно сделали некоторые обновления, которые, вероятно, вызвали это, но также должны были исправить основную проблему.Поэтому, если вы удалите «? $ Top = 100000» из URL-адреса OData в Excel и просто используете https://data.medicare.gov/api/odata/v4/yv7e-xc69,, это должно работать, а не возвращать повторяющиеся записи, как вы видели ранее.Сегодня я проверил это на нескольких различных ресурсах, и это действительно кажется исправленным ...

Я использовал обычную конечную точку OData (https://data.medicare.gov/api/odata/v4/yv7e-xc69), и она загружалась без дубликатов.

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