巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 31|回复: 0

导入与DirectQuery的区别,看这篇文章就够了

[复制链接]

3

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-8-22 01:53:58 | 显示全部楼层 |阅读模式
对于接触了Power BI 的学员来说,总会有这样一个疑问,那就是获取数据时导入与DirectQuery有何区别。他们在导入时选择了DirectQuery模式。但是他们并不确定DirectQuery是否适合,或者说相较于其他模式它的优劣势是怎样的。如果你也想了解该问题,请继续阅读文章,我们将进一步探索。
什么是DirectQuery?
使用Power BI Desktop 连接到任何数据源时,可以将数据的本地副本导入到Power BI VertiPAQ 数据库中,但对于某些数据源(如SQL Server 数据库),可以选择使用DirectQuery直接连接到数据源,而不是选择导入。
Power BI 上可以通过三种不同的方式从数据源提取数据。以下是不同连接模式之间的主要区别:
导入是在Power BI 中获取数据的默认选项,对于大多数方案,导入是最合适的选择。此选项会导致Power BI 从数据源的选定表和列加载数据副本。当报表读者与报表上的可视化效果交互时,Power BI 会查询存储在Power BI 的VertiPAQ数据库中的导入数据。
优点:内存数据库引擎非常快速和高效。
缺点:若要查看导入或最近刷新后发生的数据更改,必须刷新数据集并再次导入数据。
顾名思义,此选项不会将数据导入Power BI,而是保持与原始源的直接连接。但是,它会跨架构信息(表、列、关系等)进行复制,并且元数据存储在Power BI 本地,以允许它生成适当的查询来分析源中的数据。使用DirectQuery,当你创建可视化效果或与可视化效果交互时,Power BI会将查询发送到基础源。查询的这种重定向对报表用户完全透明。刷新可视化效果所需的时间取决于基础数据源的性能。如果最近请求了相同的数据,Power BI 可以使用最近缓存的数据来减少更新视觉对象所需的时间,但你应该设想报表上的每次交互都会导致将另一组查询发送到数据源。
优点:创建可视化效果或与可视化效果交互时,Power BI 会查询基础数据源,因此你始终查看当前数据
缺点:在创建可视化效果或与可视化效果交互时,Power BI会查询基础数据源,因此你不断要求数据源提供更多信息,如果数据库位于具有计算或查询费用的仓库中,则这些信息可能效率低下且可能成本高昂。为了帮助最大程度地减少这些费用,请确保利用DirectQuery报表上的“查询缩减”(1) 和“应用所有切片器”按钮 (2),以便控制何时将查询发送到源。
实际上,Power BI 还有另一种方式可以连接到数据源,即通过实时连接。实时连接仅适用于少数数据源,特别是Analysis Services 和已发布的Power BI 数据集。连接到SQL Server Analysis Services 或Azure Analysis Services 数据源时,可以选择导入数据或使用与所选数据模型的实时连接。连接到Power BI 数据集时,没有导入选项,因此这些数据源始终是实时连接。
使用实时连接类似于DirectQuery。不导入任何数据,并查询基础数据源以刷新视觉对象。但是,实时连接不同于直接查询连接,因为Power BI 不会在本地存储任何信息。在DirectQuery连接中,Power BI 存储有关数据源架构的信息,以允许它将DAX查询正确转换为适当的数据源 (SQL) 查询,但数据本身仍保留在数据源中。在实时连接中,源数据库是VertiPaq数据库,因此Power BI 只需保留连接字符串,因为数据源模型已经能够理解DAX查询。
优点:实时连接数据集使用VertiPaq数据库,因此您可以期望性能快速高效,与导入的模型非常相似,但由于这些报表不在本地存储任何数据,因此它们是报告受监管或单一事实数据源的绝佳解决方案。
缺点:数据集模型是外部源,因此无法更改模型结构。你仍然可以创建新度量值,但如果需要将其他数据源添加到模型中,Power BI 将要求你将实时连接转换为DirectQuery复合模型(云版)。
什么时候适合使用DirectQuery?
需要查看源中的最新可用数据的位置,例如大屏监控。

庞大的数据集
你有数十亿行数据(超过10Gb),因此无法将其导入Power BI,或者将数据加载到Power BI 所需的时间难以为继,并且在刷新完成时数据已过时。
在本例中,说的是数十亿行数据。在大多数情况下,包含1-2亿行的结构良好的数据集在导入中仍然比在DirectQuery中更好。一般来说,促使人们在大型数据集上使用DirectQuery的问题是刷新数据并将其导入Power BI所需的时间。但是,这通常是数据准备问题,而不是存储问题。如果必须在加载数据时对数据执行大量转换,则刷新速度会很慢。坏消息是,如果你的数据需要使用Power Query进行大量转换,那么它不适合DirectQuery连接,你需要在决定导入与DirectQuery之前探索数据准备解决方案。
如果你的数据不属于上述特定类别之一,那么你很可能不应该选择DirectQuery。其中一个主要原因是,对于DirectQuery数据集,至少需要两名主题专家来处理报表。假设你是Power BI 专家,可以处理查询的DAX端,但要使DirectQuery报表正常运行,你还需要调整查询的数据源端的技能,这通常意味着你需要一名数据库管理员 (DBA)。
结语
本文介绍了数据源连接的不同方式,解释了导入、DirectQuery和实时数据源之间的差异。还强调了,对于绝大多数情况,DirectQuery将不是最合适的连接方法。

来源:http://www.yidianzixun.com/article/0qTzE4OY
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部