SAP ABAP Analytical Services 深入解析,为什么 Embedded Analytics 能直接在业务数据上做实时分析
在 SAP S/4HANA 里处理分析需求时,一个非常典型的场景是这样的。销售订单刚刚创建,交货数量刚刚发生变化,会计凭证刚刚过账,采购订单刚刚完成审批,业务人员马上就希望从销售区域、公司代码、产品、客户、供应商、利润中心或者时间维度观察这些变化。如果按照传统企业数据仓库的思路处理,通常需要从业务系统抽取数据,经过复制、转换和加载,再进入专门的分析系统。SAP Embedded Analytics 选择了另一条路线。分析引擎并不是站在 ABAP 系统之外,而是直接成为 ABAP 软件栈的一部分。分析查询访问的也不是某一份定期复制出来的数据副本,而是与事务应用共享的数据持久层。业务数据发生变化之后,只要事务已经按照相应的业务语义完成持久化,分析查询就可以基于最新状态重新计算结果。SAP 官方对 Embedded Analytics 的定义也明确强调,Analytical Query 可以直接查询业务数据,不要求事先把数据复制到外部 Data Warehouse。这也是理解 ABAP Analytical Services 时最重要的一条线索。它并不是简单地在数据库表上增加几个SUM、GROUP BY,也不是把传统报表程序换成 CDS View。真正发生变化的是,事务模型、语义数据模型、分析模型和分析运行时被放进了同一个 ABAP 技术体系里。在这个体系中,ABAP CDS 负责描述数据是什么,哪些字段属于维度,哪些字段属于度量,金额对应什么货币,数量对应什么单位,日期具有怎样的时间语义,一个业务对象如何关联另一个业务对象,以及 Cube、Dimension、Hierarchy 之间如何形成完整的多维分析模型。ABAP Analy