在Excel中,我已成功连接到Data.Medicare.gov的OData提要(网站为https://data.medicare.gov/Hospital-Compare/Healthcare-Associated-Infections-Hospital/77hc-ibv8/data,端点为https://data.medicare.gov/api/odata/v4/77hc-ibv8)。
但是,由于我现在正在仔细地检查和分析数据,因此我发现Excel数据中缺少网站(https://data.medicare.gov/Hospital-Compare/Patient-survey-HCAHPS-Hospital/dgck-syfz/data)上的某些数据行/记录,而其他数据行/记录却是重复的。在Excel中刷新数据后,出现一些以前缺少的行,而其他消失。每次刷新出现,消失或重复的行似乎都是随机的。
例如,医院名称为“ Trinitas地区医疗中心”且措施ID为“ HAI-1-SIR”的记录在网站上,但有时会出现,然后从Excel数据表中重新出现(__id =“行- 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服务的Socrata做出了以下回应:
[我们]能够在Excel中重现此行为,但是我不确定是什么原因引起的。但是,OData feed本身似乎不是问题,因为我可以通过浏览器持续访问该行(例如https://data.medicare.gov/api/odata/v4/77hc-ibv8('row-6s6r〜jx5f.wuje')),因此看起来与Excel处理数据的方式有关。不幸的是,我无法在网上找到很多可以解释这种情况发生的原因,因此最好与Microsoft支持小组联系,以确定他们是否能够进一步协助解决此问题。
更新2:
经过大量故障排除和与Microsoft专业技术支持的讨论之后,他们(错误地)得出结论认为OData feed中存在重复的记录。在获得Socrata支持的支持下,他们考虑到我的观察结果,即这种情况仅发生在大型数据集上,并且能够为该问题提供解决方案(请参见下面的答案)。
答案 0 :(得分:0)
Socrata支持人员发现了问题,并建议在OData feed URL上附加一个$ top参数,从而为我解决了该问题:
在Excel中加载OData feed时,Excel在加载大型数据集时会在后台自动在结果中分页,并且此加载过程会导致记录重复。您可以通过以下方式解决此问题:向OData feed URL添加$ top参数,该参数的值必须大于或等于数据集中的行总数,这将强制Excel在单个请求中加载所有数据,而不是而不是分页浏览结果。例如,如果您输入https://data.medicare.gov/api/odata/v4/77hc-ibv8?$ top = 10000000作为URL,则将在所有记录中加载,并且不会重复。
Microsoft Office 365支持人员确认“ 添加$ top命令确实确实可以阻止重复项。”