相关文章推荐
细心的佛珠  ·  How to solve ...·  5 月前    · 
打篮球的充值卡  ·  from . import views ...·  10 月前    · 
有情有义的开水瓶  ·  使用Docker ...·  1 年前    · 

在数据流中使用 计算实体 有一些好处。 本文介绍计算实体的用例,并介绍它们如何在后台工作。

什么是计算实体?

实体表示刷新数据流后在数据流中创建的查询的数据输出。 它表示来自源的数据,以及(可选)应用于它的转换。 有时,你可能希望创建新实体,这些实体是以前引入的实体的函数。

尽管可以重复创建实体的查询并对其应用新的转换,但此方法有缺点:数据引入两次,数据源上的负载增加一倍。

计算实体解决了这两个问题。 计算实体与其他实体类似,因为它们从源获取数据,你可以应用进一步的转换来创建它们。 但其数据源自所使用的存储数据流,而不是原始数据源。 也就是说,它们以前由数据流创建,然后重复使用。

可以通过引用同一数据流中的实体或通过引用在不同数据流中创建的实体来创建计算实体。

为何使用计算实体?

在一个实体中执行所有转换步骤可能会很慢。 这种速度变慢的原因可能有很多- 数据源可能很慢,或者你正在执行的转换可能需要在两个或更多个查询中复制。 首先从源引入数据,然后在一个或多个实体中重复使用这些数据可能比较有利。 在这种情况下,可以选择创建两个实体:一个实体从数据源获取数据,另一个实体(一个计算实体)将其他转换应用于数据流使用的数据湖中已写入的数据。 这可以提高数据的性能和可重用性,从而节省时间和资源。

例如,如果两个实体甚至共享其转换逻辑的一部分,如果没有计算实体,则必须执行两次转换。

但是,如果使用计算实体,则转换) 部分共享的公共 (将处理一次,并存储在Azure Data Lake Storage中。 然后,将从通用转换的输出中处理剩余的转换。 总的来说,这种处理速度要快得多。

计算实体提供一个位置作为转换的源代码,并加快转换速度,因为它只需要执行一次,而不是多次。 数据源上的负载也会减少。

使用计算实体的示例方案

如果要在 Power BI 中生成聚合表以加快数据模型的速度,可以通过引用原始表并对其应用其他转换来生成聚合表。 使用此方法时,无需从源 (原始表) 的部件复制转换。

例如,下图显示了一个 Orders 实体。

使用来自此实体的引用,可以生成计算实体。

显示如何从 Orders 实体创建计算实体的图像。 首先右键单击“查询”窗格中的“订单”实体,从下拉菜单中选择“引用”选项,这将创建计算实体,该实体在此处重命名为“订单聚合”。

计算实体可以进行进一步的转换。 例如,可以使用 “分组依据” 在客户级别聚合数据。

这意味着 Orders Aggregated 实体将从 Orders 实体获取数据,而不是再次从数据源获取数据。 由于一些需要执行的转换已在 Orders 实体中完成,因此性能更好,数据转换速度更快。

其他数据流中的计算实体

还可以在其他数据流中创建计算实体。 可以通过使用 Microsoft Power Platform 数据流连接器从数据流获取数据来创建它。

图像强调Power Query选择数据源窗口中的 Power Platform 数据流连接器,其中说明指出,一个数据流实体可以基于另一个数据流实体的数据构建,该数据流实体已保留在存储中。

计算实体的概念是将表持久保存在存储中,并保留来自它的其他表,以便减少从数据源读取的时间并共享一些常见的转换。 这可以通过数据流连接器从其他数据流获取数据,或引用同一数据流中的另一个查询来实现。

计算实体:是否具有转换?

现在,你已知道计算实体非常适用于提高数据转换的性能,一个好问题就是转换是否应始终延迟到计算实体,或者是否应将其应用于源实体。 也就是说,是否应始终将数据引入到一个实体中,然后在计算实体中转换? 优点和缺点是什么?

为文本/CSV 文件加载数据而不进行转换

如果数据源不支持查询折叠 ((如文本/CSV 文件) ),则从源获取数据时应用转换没有什么好处,尤其是在数据量很大的情况下。 源实体应仅从文本/CSV 文件加载数据,而不应用任何转换。 然后,计算实体可以从源实体获取数据,并基于引入的数据执行转换。

你可能会问,创建仅引入数据的源实体有什么价值? 此类实体仍然有用,因为如果源中的数据在多个实体中使用,则会减少数据源上的负载。 此外,数据现在可以由其他人和数据流重复使用。 计算实体在数据量较大或通过本地数据网关访问数据源的情况下特别有用,因为它们减少了来自网关的流量以及它们后面的数据源的负载。

对 SQL 表执行一些常见转换

如果数据源支持查询折叠,则最好在源实体中执行某些转换,因为查询将折叠到数据源,并且仅从中提取转换后的数据。 这可以提高整体性能。 下游计算实体中常见的转换集应应用于源实体,以便可以折叠到源实体。 其他仅适用于下游实体的转换应在计算实体中完成。