我需要管理多年来每年约 100,000 条记录的大型数据集。
使用自定义查询通过 SOAP 连接器检索数据。
每条记录都有“基本信息”和“历史信息”,需要用不同的 SOAP 连接器提取。
将来,需要从其他数据库/源/API 中检索新记录/年份的记录。
通过 SOAP 检索 100,000 条基本信息记录大约需要 2 分钟。包括历史信息大约需要 20-30 分钟(每条记录平均有 10 条“历史记录”作为“子记录”)
只有“当前”时期的数据需要定期更新。实际上,过去年份的数据“永远”不需要更新,或者仅在偶尔有明确需求时才需要更新,例如,在添加新属性时。
因此我尝试了以下设计,以防止更新时间过长:
- 我创建了一个函数 getDataBySOAP(start,end,includeHistory)。这完成了所有工作(使用不同的 SOAP 请求等)
- 然后对每年的数据进行 1 次查询,比如说“data22”、data23、data24 等,只需调用 SOAP 函数(这样将来就可以从另一个函数/DB 中检索另一个时期的数据)。所有查询都设置为永不自动更新(所有检查都已关闭),除了“当前”查询
- 然后 1 查询,说 allData,将所有年份的数据附加在一起
但是现在,当我在 allData 上说“更新”时,更新会更新所有内容,包括历史记录。因此,在更新准备就绪之前,我们准备喝很多咖啡,因为所有查询都已更新。
出了什么问题?我应该以不同的方式设计查询吗?现在,历史数据位于附加的可选列中。但也许我应该将它们分开放在单独的查询中。但即便如此,似乎更新也会触发完整更新,需要几个小时。
注意:我是 Excel/VBA 方面的专家。但这是我的第一个 Power query/Power BI 项目……所以真的是新手
谢谢你的提示。C.