SAP BW 的导入与 DirectQuery
注意
本文讨论 Power BI Desktop 中的导入模式和 DirectQuery 模式之间的差异。 有关在 Power Query Desktop 或 Power Query Online 中使用导入模式的说明,请转到以下部分:
SAP BW 应用程序服务器连接器:
SAP BW 消息服务器连接器:
使用 Power Query,可以连接到各种数据源,包括联机服务、数据库、不同的文件格式等。 如果使用的是 Power BI Desktop,则可以通过两种不同的方式连接到这些数据源:将数据导入到 Power BI 中,或直接连接到源存储库中的数据(称为 DirectQuery)。 连接到 SAP BW 系统时,还可以在这两种连接模式之间进行选择。 有关支持 DirectQuery 的数据源的完整列表,请参阅 Power BI 数据源。
本文概述了这两种连接模式之间的主要差异,以及与 SAP BW 连接相关的准则和限制。 有关 DirectQuery 模式的其他信息,请转到在 Power BI 中使用 DirectQuery。
导入连接
使用 Power BI Desktop 连接到数据源时,导航器将允许选择一组表(对于关系源)或一组源对象(对于多维源)。
对于 SAP BW 连接,可以从显示的树中选择要包括在查询中的对象。 可以为 InfoProvider 选择 InfoProvider 或 BEx 查询,展开其关键数字和维度,然后选择要包含在查询中的特定关键数字、特征、特性(属性)或层次结构。
此选项将定义一个查询,该查询将返回包含列和行的平展数据集。 所选特征级别、属性和关键数字在数据集中将表示为列。 将根据所选特征及其级别聚合关键数字。 导航器中将显示数据预览。 可以在加载数据之前在 Power Query 中编辑这些查询,例如应用筛选器、聚合数据或联接不同的表。
加载查询定义的数据后,会将其导入到 Power BI 内存中缓存中。
开始在 Power BI Desktop 中创建视觉对象时,将查询缓存中的已导入数据。 缓存数据的查询非常快,将立即反映视觉对象更改。
但是,在处理非累加度量时,用户应注意生成会进一步聚合数据的视觉对象。 例如,如果查询导入了每个销售办事处,以及每个销售办事处的增长率,则如果用户生成了一个视觉对象,该视觉对象将对所有销售办事处的增长率值进行求和,则将在本地对缓存的数据执行聚合。 结果与从 SAP BW 请求整体增长率不同,可能不是预期结果。 为了避免此类意外聚合,将此类列的默认汇总设置为不汇总会非常有用。
如果基础源中的数据发生更改,则视觉对象中不会反映此类更改。 需要执行刷新,这会将数据从基础源重新导入到 Power BI 缓存中。
将报表(.pbix 文件)发布到 Power BI 服务时,将创建语义模型并将其上传到 Power BI 服务器。 缓存中的已导入数据将包含在该语义模型中。 在 Power BI 服务中使用报表时,将查询上传的数据,从而提供快速的响应时间和交互性。 可以设置语义模型的计划刷新,也可以手动重新导入数据。 对于本地 SAP BW 数据源,需要配置本地数据网关。 有关安装和配置本地数据网关的信息,请参阅以下文档:
DirectQuery 连接
在 DirectQuery 模式下连接到 SAP BW 源时,导航体验略有不同。 导航器仍将在 SAP BW 中显示可用 InfoProvider 和 BEx 查询的列表,但在此过程中不会定义 Power BI 查询。 您将选择源对象本身,即 InfoProvider 或 BEx 查询,并在连接后看到含特征和关键数字的字段列表。
对于包含变量的 SAP BW 查询,可以输入或选择值作为查询参数。 选择应用按钮以在查询中包含指定的参数。
将显示所选 InfoCube 或 BEx 查询的元数据,而不是数据预览。 在“导航器”中选择“加载”按钮后,不会导入任何数据。
可以使用 Power BI Desktop 功能区上的编辑查询选项更改 SAP BW 查询变量的值。
开始在 Power BI Desktop 中创建视觉对象时,会查询 SAP BW 中的基础数据源,以检索所需的数据。 更新视觉对象所需的时间取决于基础 SAP BW 系统的性能。
视觉对象中不会立即反映基础数据中的任何更改。 仍需要执行刷新,这将针对基础数据源重新运行每个视觉对象的查询。
将报表发布到 Power BI 服务时,会再次导致在 Power BI 服务中创建语义模型,与导入连接相同。 但是,该模型中不包含任何数据。
在 Power BI 服务中使用报表时,将再次查询基础数据源,以检索所需的数据。 对于与 SAP BW 和 SAP HANA 系统的 DirectQuery 连接,必须安装本地数据网关,以及向网关注册数据源。
对于包含变量的 SAP BW 查询,最终用户可以编辑查询参数。
注意
要使最终用户可编辑参数,需要在 DirectQuery 模式下将语义模型发布到高级工作区,并且需要启用单一登录 (SSO)。
一般性建议
应尽可能将数据导入到 Power BI。 导入数据可利用 Power BI 的高性能查询引擎,并提供高度交互且功能齐全的数据体验。
但是,在连接到 SAP BW 时,DirectQuery 具有以下优势:
提供使用 SSO 访问 SAP BW 数据的功能,以确保始终应用基础 SAP BW 源中定义的安全性。 使用 SSO 访问 SAP BW 时,SAP 中的用户数据访问权限将适用,这可能会为不同的用户生成不同的结果。 SAP BW 将剪裁用户无权查看的数据。
确保可以轻松查看最新数据,即使数据在基础 SAP BW 源中频繁更改也是如此。
确保可以轻松处理复杂的度量,其中始终查询源 SAP BW 以获取聚合数据,并且导入的数据缓存不会产生意外和误导性的聚合风险。
避免提取和发布数据缓存,这可能会违反应用的数据主权或安全性策略。
通常,仅当基础数据源可以在几秒钟内为典型聚合查询提供交互式查询并且能够处理将生成的查询负载时,才可以使用 DirectQuery。 此外,应考虑使用 DirectQuery 时的限制列表,以确保仍能达到目标。
如果在 DirectQuery 模式下使用非常大的数据集或遇到 SAP BW 查询响应时间缓慢的情况,Power BI 在报表中提供了用于发送较少查询的选项,从而便于与报表交互。 要访问 Power BI Desktop 中的这些选项,请转到文件>选项和设置>选项,然后选择查询缩减。
可以在整个报表中禁用交叉突出显示,从而减少发送到 SAP BW 的查询数。 还可以向切片器和筛选器选项中添加应用按钮。 可以根据需要选择任意数量的切片器和筛选器,但在选择应用按钮之前,不会向 SAP BW 发送任何查询。 然后,选择将用于筛选所有数据。
在 Power BI Desktop 中与报表交互时,以及用户在 Power BI 服务中使用报表时,这些更改将应用于报表。
在 Power BI 服务中,通过查询数据源,定期更新 DirectQuery 连接的查询缓存。 默认情况下,此更新每小时发生一次,但可以在语义模型设置中将其配置为不同的间隔。 有关详细信息,请转到 Power BI 中的数据刷新。
此外,在 Power BI 中使用 DirectQuery 中介绍的许多常规最佳做法同样适用于在 SAP BW 上使用 DirectQuery 的情况。 在 Power BI 中使用 DirectQuery 连接到 SAP Business Warehouse 中介绍了特定于 SAP BW 的其他详细信息。