属于我们的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 TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
Power BI for Odoo:12 个生产就绪的 DAX 模式
Power BI 中 Odoo 数据的 12 种经过实战检验的 DAX 模式:时间智能、客户群体、库存老化、多公司损益和复合键连接。
Power BI 增量刷新超过 1000 万行的表
适用于 10M 以上行表的 Power BI 增量刷新手册:分区设计、RangeStart/RangeEnd、刷新策略、查询折叠和 DirectQuery 混合。
Power BI Premium、Pro 与 Embedded:许可决策矩阵
Power BI 许可解码:Pro、PPU、Premium F-SKU、嵌入式 A-SKU、Fabric 容量。每个用户的成本、包含的功能和实际决策规则。
更多来自Data Analytics & BI
Power BI for Odoo:12 个生产就绪的 DAX 模式
Power BI 中 Odoo 数据的 12 种经过实战检验的 DAX 模式:时间智能、客户群体、库存老化、多公司损益和复合键连接。
Power BI 行级安全性:动态与静态模式
Power BI RLS 深入探讨:静态角色与动态角色、USERPRINCIPALNAME 模式、安全表、管理器层次结构、RLS 测试和用于 SaaS 的嵌入式 RLS。
Power BI 与 Looker Studio 2026:成本和功能比较
Power BI 与 Looker Studio:许可、性能、治理、嵌入式分析,哪个适合您的数据团队。 30分比较。
Power BI 与 Tableau 2026:完整的商业智能比较
Power BI 与 Tableau 2026:在功能、定价、生态系统、治理和 TCO 方面进行正面交锋。关于何时选择每个选项以及如何迁移的明确指导。
会计 KPI:每个企业都应该跟踪的 30 个财务指标
跟踪 30 个基本会计 KPI,包括盈利能力、流动性、效率和增长指标,例如毛利率、EBITDA、DSO、DPO 和库存周转率。
商业智能数据仓库:架构与实施
为商业智能构建现代数据仓库。比较 Snowflake、BigQuery、Redshift,学习 ETL/ELT、维度建模和 Power BI 集成。