属于我们的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 HANA | SAP HANA(本地或云端) | ODBC/JDBC | HANA 视图、计算视图、实时仪表板 |
| SAP 业务仓库 (MDX) | SAP BW 7.x、BW/4HANA | 基于 XMLA 的 MDX | BEx 查询、InfoCube、MultiProviders |
| SAP 业务仓库 (BAPI) | SAP BW 7.x、BW/4HANA | RFC/BAPI | 扁平化数据提取,性能优于MDX |
| SAP OData | SAP 网关、S/4HANA | OData v2/v4 | Fiori 暴露数据、CDS 注释 |
每个连接器都有不同的性能特征、功能支持和设置复杂性。了解哪些 SAP 数据可通过哪个连接器使用是成功集成的基础。
连接器 1:SAP HANA
对于运行 HANA 作为主数据库(包括 HANA 上的 S/4HANA)的组织来说,SAP HANA 连接器是最强大的选项。
先决条件
- 本地数据网关:安装在可通过网络访问 HANA 的 Windows 服务器上
- SAP HANA ODBC 驱动程序:在网关服务器上安装
SAP HANA Client(包括 ODBC 驱动程序) - HANA 用户帐户:在 HANA 中创建专用的 Power BI 用户,对所需视图具有 SELECT 权限
- 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 中:
- 在 HANA 视图之上构建 Power Query 转换
- 安排增量刷新(需要 Power BI Premium 或 PPU)以仅加载新的/更改的行
- 定义超越 HANA 原生功能的 DAX 时间智能度量
增量刷新配置:
- 将
RangeStart和RangeEnd参数(日期/时间类型)添加到您的 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 连接器可以直接使用这些服务:
- 获取数据 → OData Feed
- 网址:
https://s4hana-host:443/sap/opu/odata/sap/API_SALES_ORDER_SRV/ - 身份验证:带有 SAP 系统凭据的 Basic 或 Windows (Kerberos)
可用的 S/4HANA OData API(与 Power BI 最相关):
| 应用程序接口 | 服务 | 关键实体 |
|---|---|---|
| 代码0 | 销售订单 | 销售订单、销售订单项目 |
| 代码0 | FI 文件 | 财务文档标题、财务文档项目 |
| 代码0 | 采购订单 | 采购订单、采购订单项目 |
| 代码0 | 工厂维护 | 设备、功能位置 |
| 代码0 | 材质大师 | 产品、产品描述 |
| 代码0 | 总帐账户 | GLAccountInChartOfAccts |
Power BI 的 CDS 视图
S/4HANA 中的核心数据服务 (CDS) 视图提供预建模、语义丰富的数据访问。 Power BI + S/4HANA 的推荐方法:
- 识别标准分析 CDS 视图:SAP 提供 1,000 多个带有嵌入式注释的分析 CDS 视图
- 通过 VDM(虚拟数据模型)公开:使用带
@Analytics.dataCategory: #CUBE注释的 CDS 视图 - 通过 HANA DirectQuery 访问:将 Power BI 连接到 HANA,导航到 CDS 视图架构
用于销售分析的 CDS 视图示例:C_SalesOrderItemCube — 提供具有维度(客户、材料、工厂、时间)和度量(数量、价值、折扣)的销售订单项目数据。
安全性:SSO 和行级访问
SAP HANA 单点登录
对于用户级审核跟踪(谁查询了 HANA 中的内容),请在 Power BI 和 HANA 之间配置 SSO:
Kerberos SSO 设置:
- 在网关服务器的 Active Directory 帐户上配置约束委派 2.将Windows AD用户映射到HANA数据库用户(需要SPS 10+)
- 在网关数据源设置中启用“通过 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 优化
- 使用计算视图,而不是直接使用列表:带有聚合节点的计算视图在HANA级别预先汇总数据
- 启用查询级超时:在Power BI的数据源设置中设置
QueryTimeout以避免挂起查询 - 限制视觉对象数量:DirectQuery 页面上的每个视觉对象都会生成一个 HANA 查询 - 将页面的视觉对象数量控制在 20 个以内
- 使用 HANA 的聚合行为:具有
SUM、COUNT聚合的计算视图在 HANA 节点上并行执行
BW 导入性能
- OpenHub 提取:使用 SAP BW OpenHub 提取到 Azure Data Lake,然后通过 ADLS 连接器导入 Power BI — 对于大容量数据,速度比 MDX 快得多
- Power Query 中的查询折叠:确保转换折叠到 BW/HANA 级别(避免破坏查询折叠的操作)
- 增量刷新:对于每日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 环境和分析要求。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.
更多来自Data Analytics & BI
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.
GoHighLevel Reporting and Analytics: Measuring What Matters
Master GoHighLevel reporting and analytics. Learn to build custom dashboards, track ROI across channels, measure funnel conversion, and make data-driven marketing decisions.
Odoo Events Module: Planning, Registration, and Analytics
Complete guide to Odoo 19 Events: create events, manage registrations, sell tickets, track attendance, and analyze event ROI with native ERP integration.
Odoo + Power BI: Complete Analytics Integration Guide
Connect Odoo 19 to Power BI for enterprise analytics. Covers DirectQuery, Import mode, data modeling, DAX measures, live dashboards, and deployment architecture.