Connecting Power BI to SAP: HANA, BW, and S/4HANA

Step-by-step guide to connecting Power BI to SAP HANA, SAP BW, and S/4HANA covering connector types, DirectQuery vs Import, HANA views, BW queries, and security.

E
ECOSIRE Research and Development Team
|2026年3月19日5 分钟阅读1.1k 字数|

属于我们的Data Analytics & BI系列

阅读完整指南

将 Power BI 连接到 SAP:HANA、BW 和 S/4HANA

SAP 系统保存着企业组织中最关键的业务数据,但将这些数据输入仪表板历来需要昂贵的 SAP BusinessObjects 许可证、复杂的 BEx 查询或自定义 ABAP 程序。 Power BI 的本机 SAP 连接器显着改变了这一方程式。组织现在将 SAP HANA 视图、BW 查询和 S/4HANA CDS 视图直接路由到 Power BI 仪表板,无需中间件或数据复制。

本指南涵盖了 Power BI 中可用的每个 SAP 连接器、何时使用每个连接器以及如何在生产中配置安全、高性能的连接。

要点

  • Power BI 提供四种 SAP 连接器:SAP HANA、SAP BW (MDX)、SAP BW (BAPI)、SAP OData
  • SAP HANA 上的 DirectQuery 利用 HANA 的内存引擎 — 查询以毫秒为单位返回
  • 导入模式将 SAP 数据加载到 Power BI 的 VertiPaq 中 — 实现丰富的 DAX 计算
  • S/4HANA CDS 视图公开干净的、预先建模的数据,非常适合 DirectQuery
  • SAP HANA SSO 需要 Kerberos 委派或 SAP SSO 设置 - 对于用户级审计跟踪至关重要
  • BW 变量和提示可以作为 Power BI 参数显示,以进行交互式过滤
  • 所有本地 SAP 连接都需要本地数据网关
  • SAP BW OpenHub 是大规模数据提取的最高性能路径

SAP 连接器概述

Power BI 为 SAP 系统提供了四种不同的连接器:

连接器SAP系统协议最适合
SAP HANASAP HANA(本地或云端)ODBC/JDBCHANA 视图、计算视图、实时仪表板
SAP 业务仓库 (MDX)SAP BW 7.x、BW/4HANA基于 XMLA 的 MDXBEx 查询、InfoCube、MultiProviders
SAP 业务仓库 (BAPI)SAP BW 7.x、BW/4HANARFC/BAPI扁平化数据提取,性能优于MDX
SAP ODataSAP 网关、S/4HANAOData v2/v4Fiori 暴露数据、CDS 注释

每个连接器都有不同的性能特征、功能支持和设置复杂性。了解哪些 SAP 数据可通过哪个连接器使用是成功集成的基础。


连接器 1:SAP HANA

对于运行 HANA 作为主数据库(包括 HANA 上的 S/4HANA)的组织来说,SAP HANA 连接器是最强大的选项。

先决条件

  1. 本地数据网关:安装在可通过网络访问 HANA 的 Windows 服务器上
  2. SAP HANA ODBC 驱动程序:在网关服务器上安装 SAP HANA Client(包括 ODBC 驱动程序)
  3. HANA 用户帐户:在 HANA 中创建专用的 Power BI 用户,对所需视图具有 SELECT 权限
  4. SSL证书:导出HANA服务器的SSL证书以实现安全连接

连接设置

在 Power BI 桌面中:

1.获取数据→SAP HANA数据库 2. 输入服务器:hana-host:30015(端口 = 3 + 实例编号 + 15,例如实例 00 为 30015) 3. 选择数据连接模式:导入DirectQuery 4. 导航目录:模式 → 视图 → 计算视图

SAP HANA 上的 DirectQuery

HANA 上的 DirectQuery 是 Power BI 最强大的实时 SAP 数据集成模式:

User opens dashboard
    ↓
Power BI generates SQL for each visual
    ↓
Query sent to HANA via ODBC
    ↓
HANA executes using in-memory engine (sub-second)
    ↓
Results returned to Power BI visual

性能提示:具有基于分析权限的访问控制的 HANA 计算视图与 Power BI 的 RLS 要求完美契合。在 HANA 中定义数据访问,Power BI 通过 SSO 传递用户上下文。

HANA 计算视图

HANA 计算视图是 Power BI 推荐的数据访问层。他们提供:

  • 预聚合数据:降低查询复杂度
  • 连接表:从 Power BI 中隐藏 HANA 的列存储内部结构
  • 货币换算:内置HANA的货币换算引擎
  • 分析权限:HANA 级别的行级访问控制

通过导航连接到计算视图:架构 → _SYS_BIC → 计算视图。以 sap.xxx 为前缀的视图是 SAP 提供的标准内容。

SAP HANA 上的导入模式

对于复杂的 DAX 计算和离线分析,导入模式将 HANA 数据加载到 VertiPaq 中:

  1. 在 HANA 视图之上构建 Power Query 转换
  2. 安排增量刷新(需要 Power BI Premium 或 PPU)以仅加载新的/更改的行
  3. 定义超越 HANA 原生功能的 DAX 时间智能度量

增量刷新配置

  • RangeStartRangeEnd 参数(日期/时间类型)添加到您的 Power Query
  • 使用这些参数过滤 HANA 查询
  • 在数据集设置中配置增量刷新策略(例如,刷新最近 2 天,保留 3 年)

连接器 2:SAP Business Warehouse (BW)

SAP BW 在 InfoCube、DSO 和 BEx 查询中存储数十年的企业数据。 Power BI 的 BW 连接器可以将此数据直接公开到仪表板。

SAP BW MDX 连接器

MDX 连接器使用 MDX(多维表达式)协议查询 BW,该协议与 SAP BusinessObjects Analysis for Office 使用的协议相同。

设置: 1.在网关服务器上安装SAP BW Frontend Client 2、连接BW系统:应用服务器+系统编号+客户端 3. 浏览 BEx 查询、InfoCube 和 MultiProvider 4. BW变量表面作为Power BI查询参数

Power BI 中的 BW 变量

带有强制变量(选择屏幕)的 BEx 查询可以在 Power BI 中配置为参数。例如,需要选择会计年度的 BW 查询会在 Power BI 中显示参数对话框。这对于在没有适当的日期过滤器的情况下会超时的查询至关重要。

限制:MDX 连接器读取 BW 的 OLAP 层 — 性能受到 BW 的 MDX 服务器的限制。非常大的 InfoCube 可能会很慢。

SAP BW BAPI 连接器(推荐)

BAPI 连接器直接使用 SAP 的 RFC(远程函数调用)协议,绕过 MDX 层。它提供:

  • 大数据量的更高吞吐量
  • 平坦提取的更好性能
  • 通过 BAPI 调用访问 BEx 查询结果

对于BW大规模数据提取,推荐的架构是:

SAP BW OpenHub → Azure Data Lake / Blob Storage → Power BI

BW OpenHub 允许按计划将 InfoProvider 数据增量提取到平面文件或数据库表,然后 Power BI 通过导入模式加载这些数据。此模式可处理数十亿行而不影响 BW 性能。


连接器 3:通过 OData 和 CDS 视图的 S/4HANA

SAP S/4HANA 通过 Power BI 集成的两个关键机制公开数据:

SAP OData 连接器

S/4HANA 的 SAP 网关为每个 Fiori 应用程序公开 OData v2 服务。 Power BI 的 OData 连接器可以直接使用这些服务:

  1. 获取数据 → OData Feed
  2. 网址:https://s4hana-host:443/sap/opu/odata/sap/API_SALES_ORDER_SRV/
  3. 身份验证:带有 SAP 系统凭据的 Basic 或 Windows (Kerberos)

可用的 S/4HANA OData API(与 Power BI 最相关):

应用程序接口服务关键实体
代码0销售订单销售订单、销售订单项目
代码0FI 文件财务文档标题、财务文档项目
代码0采购订单采购订单、采购订单项目
代码0工厂维护设备、功能位置
代码0材质大师产品、产品描述
代码0总帐账户GLAccountInChartOfAccts

Power BI 的 CDS 视图

S/4HANA 中的核心数据服务 (CDS) 视图提供预建模、语义丰富的数据访问。 Power BI + S/4HANA 的推荐方法:

  1. 识别标准分析 CDS 视图:SAP 提供 1,000 多个带有嵌入式注释的分析 CDS 视图
  2. 通过 VDM(虚拟数据模型)公开:使用带 @Analytics.dataCategory: #CUBE 注释的 CDS 视图
  3. 通过 HANA DirectQuery 访问:将 Power BI 连接到 HANA,导航到 CDS 视图架构

用于销售分析的 CDS 视图示例:C_SalesOrderItemCube — 提供具有维度(客户、材料、工厂、时间)和度量(数量、价值、折扣)的销售订单项目数据。


安全性:SSO 和行级访问

SAP HANA 单点登录

对于用户级审核跟踪(谁查询了 HANA 中的内容),请在 Power BI 和 HANA 之间配置 SSO:

Kerberos SSO 设置

  1. 在网关服务器的 Active Directory 帐户上配置约束委派 2.将Windows AD用户映射到HANA数据库用户(需要SPS 10+)
  2. 在网关数据源设置中启用“通过 Kerberos 使用 SSO 进行 DirectQuery 查询”

当 SSO 处于活动状态时,Power BI 查询会在经过身份验证的最终用户身份(而不是网关服务帐户)下在 HANA 中执行。然后,HANA 的分析权限系统精确控制每个用户可以访问哪些计算视图。

SAP SSO(Kerberos + RFC): 对于 BW 连接,带有 Kerberos 令牌交换的 SAP SSO 3.0 是标准。网关服务器需要 SAP 和 Kerberos SPN 配置中的 gsskrb5.dll 库。

行级安全架构

在 Power BI 中,有两个地方可以为 SAP 数据实施 RLS:

选项 1:HANA 中的 RLS(推荐)

  • 在 HANA 中定义分析权限,限制用户可以读取哪些行
  • Power BI 查询通过 SSO 在用户的 HANA 身份下执行
  • 安全实施发生在数据库级别 - 无法从 Power BI 绕过

选项 2:Power BI 中的 RLS

  • 将 SAP 数据导入 Power BI 数据集
  • 使用DAX过滤器表达式定义RLS角色
  • 将 Azure AD 用户/组映射到 RLS 角色
  • 适用于 SSO 不可用或安全要求允许数据集级实施的情况

性能优化

HANA DirectQuery 优化

  1. 使用计算视图,而不是直接使用列表:带有聚合节点的计算视图在HANA级别预先汇总数据
  2. 启用查询级超时:在Power BI的数据源设置中设置QueryTimeout以避免挂起查询
  3. 限制视觉对象数量:DirectQuery 页面上的每个视觉对象都会生成一个 HANA 查询 - 将页面的视觉对象数量控制在 20 个以内
  4. 使用 HANA 的聚合行为:具有 SUMCOUNT 聚合的计算视图在 HANA 节点上并行执行

BW 导入性能

  1. OpenHub 提取:使用 SAP BW OpenHub 提取到 Azure Data Lake,然后通过 ADLS 连接器导入 Power BI — 对于大容量数据,速度比 MDX 快得多
  2. Power Query 中的查询折叠:确保转换折叠到 BW/HANA 级别(避免破坏查询折叠的操作)
  3. 增量刷新:对于每日BW负载,配置增量刷新以仅提取增量记录

常见问题

我是否需要 SAP 许可才能将 Power BI 连接到 SAP 系统?

Power BI 的 SAP 连接器使用所有 SAP 系统许可证中提供的标准接口(ODBC、RFC、OData)。但是,SAP 的许可条款可能要求 Power BI 使用的 SAP 帐户具有适当的指定用户许可证。具体来说,如果 Power BI 查询读取通常需要 SAP 商业智能许可证(如 BW BEx 查询)的 SAP 数据,SAP 可能会认为这些许可证适用。在广泛部署之前,请咨询您的 SAP 许可证经理。

Power BI 可以从 SAP HANA 处理的最大数据量是多少?

在 DirectQuery 模式下,理论上没有限制 - Power BI 查询 HANA 以获得聚合结果,因此如果查询经过优化,即使具有数十亿行的 HANA 表也会快速返回。在导入模式下,Power BI Premium 支持高达 400GB 的数据集(压缩的 VertiPaq 格式,相当于几 TB 的原始数据)。 SAP HANA 计算视图应设计为返回预先聚合的结果,以使仪表板视觉效果的响应时间保持在 2 秒以内。

Power BI 可以连接到 SAP S/4HANA Cloud 吗?

是 - SAP S/4HANA Cloud 公开了可供 Power BI 访问的 OData API 和 CDS 视图。 SAP HANA 连接器(通过 HANA Cloud)和 SAP OData 连接器均适用于云部署。 SAP 最近推出了 SAP Analytics Cloud 与 S/4HANA Cloud 的集成作为首选嵌入式分析路径,但 Power BI 通过 OData 和 HANA Cloud 接口保持完全兼容。

如何处理 Power BI 报告中的 SAP BW 变量?

需要用户输入的 SAP BW 变量(强制变量)显示为 Power BI 查询参数。报告作者为这些参数配置默认值。对于与最终用户共享的报告,参数显示为过滤器控件。对于固定参数(例如,会计年度始终为当年),请使用 Power Query M 表达式根据今天的日期动态生成变量值。

使用 SAP HANA 还是 SAP OData 进行 Power BI 集成更好?

SAP HANA 连接器(DirectQuery 或 Import)通常更适合分析工作负载 - 它利用 HANA 的内存引擎并公开丰富的计算视图。 SAP OData 更适合事务数据访问(单个订单、客户记录),您需要使用内置 SAP 授权检查的特定 API 公开业务对象。对于财务和运营仪表板,请使用 HANA 视图。对于具有 SAP 标准 API 覆盖范围的特定于应用程序的数据,OData 是合适的。

如果 SAP HANA 出现故障会发生什么 - Power BI 仪表板会崩溃吗?

在 DirectQuery 模式下,是 - 如果 HANA 不可用,Power BI 视觉对象会显示错误。这是 DirectQuery 的基本权衡:实时数据但没有离线弹性。为了缓解这种情况,请对关键执行仪表板使用导入模式(数据按计划刷新,在 HANA 中断期间保持可访问),并为实时准确性至关重要的操作仪表板保留 DirectQuery。您还可以在复合模型中组合模式。


后续步骤

将 Power BI 连接到 SAP 在技术上是可以实现的,但需要围绕连接器选择、安全架构和性能优化进行仔细规划。正确实现此集成的组织可以从最关键的业务数据中获取实时见解,而无需 SAP BusinessObjects 或自定义 ABAP 开发成本。

ECOSIRE 的 Power BI ERP 集成实践专门从事 SAP + Power BI 部署。我们以端到端的方式处理连接器配置、HANA 视图设计、BW OpenHub 设置、SSO 安全性和仪表板开发。

探索我们的Power BI ERP 集成服务联系我们的团队 以讨论您的特定 SAP 环境和分析要求。

E

作者

ECOSIRE Research and Development Team

在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。

通过 WhatsApp 聊天