如何在 Power BI 中为查询建模以每天追加新数据而不是覆盖
Posted
技术标签:
【中文标题】如何在 Power BI 中为查询建模以每天追加新数据而不是覆盖【英文标题】:How to model queries in Power BI for daily append of new data instead of overwriting 【发布时间】:2020-03-31 10:46:39 【问题描述】:我正在尝试根据网站上发布的数据在 Power BI 中构建一个简单的报表。 这是我想要实现的目标
-
该网站发布该国 COVID 病例的数据。
数字只是当前数字,没有任何时间序列。
我想每天从这个网站获取这些数字并建立一个报告
最重要的是(使用时间序列分析)。
所以我获取这些数字(获取数据 > Web > URL)并将其放入查询中,然后添加
带有时间图的自定义列(M 的 DateTime.LocalNow() 函数)
并使用所需的时间戳获取此数据。
现在我想每天刷新此查询,以便在此查询中获得每日结果。
6。正如预期的那样,PBI 只是用新数据覆盖现有行,
带有最新的时间戳(我的自定义列)。
我尝试了一些类似的方法:-
-
创建一个新查询并向其附加数据,它似乎不起作用,现有数据被覆盖(可能是我创建新查询的方式)。
探索了增量刷新功能,它似乎不适合我的用例。
尝试查看其他类似的帖子,似乎没有一个可以帮助我解决这个问题。
问题:-
-
是否有一种简单的解决方法来规避这一点(第 7 点)并让 PBI 追加新数据而不是覆盖现有数据。
我在上面的第 2 点上是否正确(增量刷新)?
欣赏任何指针。提前致谢!
【问题讨论】:
简单的解决方法是构建一个 ETL 流程来每天获取数据,将数据保存在某处(数据库将是一个不错的选择),然后构建报表以从该数据源读取数据。 增量刷新仅适用于 power bi 服务。您必须使用专业帐户或高级帐户发布报告。 @AndreyNikolov 对于这个简单的需求,ETL 过程不会是多余的(只需要每天从网页中获取一个表格并将其添加到我的 PBI 模型中)。我只是觉得应该有一些解决方法/调整来让这种设置直接在 PBI 中工作 @mxix 我有专业版订阅。但是我认为这个功能在这里不适用。增量刷新适用于需要进行增量更新(仅限新数据)的较大数据集 (DWH)。在我的用例中,每次刷新时,我都需要将所有数据视为新数据,并在 PowerQuery 中为其添加时间戳。如果我错了,请纠正我。 【参考方案1】:Power BI 中没有简单的解决方法。
Power BI 并非旨在用作存储历史数据的数据库。它旨在连接到数据并从中创建报告,因此您需要将日常数据存储在外部某个地方。
有很多方法可以存储数据。例如,您可以将它们作为 CSV 保存在 Power BI 从中加载的文件夹中,或者您可以将它们写入数据库表并连接到该表。
编辑:也就是说,如果这是你必须做的事情,有一个不简单的解决方法。
虽然不推荐,但您可以use incremental refresh 诱使 Power BI 为所欲为。
【讨论】:
原则上同意你的观点,但是 PBI 确实提供了 Power Query,它确实提供了一些基本的数据操作。想一想,IMO 我的用例只是从网站捕获当前数据,并需要将其附加到 PBI 模型中已经存在的数据中。对我来说,这似乎不是历史数据的概念,如果我错了,请纠正我。我只是觉得应该有一些解决方法/调整来让这种设置在 PBI 中工作。 是的,Power Query 进行数据操作。您也希望它进行数据存储。要将新数据附加到现有数据,您必须将现有数据存储在某处。 PBI 确实提供存储(导入模式 atleat)。有人会认为 PBI 作为一种工具可能会提供一种解决方法或快速破解方法,让它附加数据,而不是在刷新时替换它。 它只存储导入时的查询结果,而不是您之前加载的每个结果。如果你想保留那些以前的结果,那么你需要把它们保存在某个地方。 有道理。一个人用两个查询创建一个模型怎么样。一个查询 (Q1) 获取/刷新每日数据,然后另一个查询 (Q2) 从 Q1 获取其数据作为附加操作(并且其刷新被禁用)。只是一个疯狂的想法,不确定是否可能。以上是关于如何在 Power BI 中为查询建模以每天追加新数据而不是覆盖的主要内容,如果未能解决你的问题,请参考以下文章
一起学微软Power BI系列-官方文档-入门指南Power BI建模
如何避免 BigQuery 中的 Power BI 增量刷新重复查询?
使用 Python 获取文件夹中的数据以向 Power BI 提供 excel 文件
如何使用带有平台、steam_id、event_name 过滤器的 bigquery 在 power bi 中编写查询以查找过去 28 天的 firebase 事件详细信息?