SAP BW实施实时报表的方法(流式处理链)

2 篇文章 0 订阅
1 篇文章 0 订阅

最近,我的一位客户询问我实施实时报告的可能方法。在准备过程中,我的研究还涵盖了“流式处理链”,结果令人惊讶 

版本适用:SAP BW 7.5 和 SAP BW/4HANA(任何版本)

一般来说,尽可能快地获取数据不应被视为首选。相反,SAP 建议尽可能利用虚拟化和数据联合。BW结合SAP HANA提供多种合适的建模选项,主要基于SAP HANA集成服务(SDA、SDI)、SAP HANA建模选项(Calculation Views),以及作为BW应用端虚拟InfoProvider的Open ODS Views或CompositeProviders。

只有当这些方法不能满足您的业务需求时,才应将“实时”数据加载到 SAP BW 中作为一种重要的替代方案进行评估。早在 2006 年与 NetWeaver 7.0 一起引入的“实时数据采集 (RDA) ”是 InfoCube 和 DSO(经典)的相关概念。然而,随着 ADSO 的引入,SAP 决定淘汰 RDA,转而增强现有的流程链框架。

Streaming是BW流程链的一种运行方式,可以在每个流程链的属性中设置。当一个流程链运行时,每一步都需要一定的时间;有趣的问题是实际发生了什么,当在此期间再次启动链时(甚至可能多次),并且执行到达先前执行中已经处于活动状态的进程:

  • 一个经典的流程链在后台调度。然后第二次执行等待 10 分钟,等待前一次执行完成。如果在这段时间内没有完成上一次运行,则取消第二次执行,进程链中断并失败并报错。
  • 流模式下的流程链使用新的 队列任务管理器框架执行。这允许灵活数量的“工作”作业从队列中获取下一个进程。如果第二次、第三次和进一步执行到达当前活动进程,则这些再次启动该进程的请求仅写入队列。不再使用资源,系统也不会等待。当前进程完成后,worker 作业接收给定进程的所有这些启动请求并仅重新启动进程一次:它从队列中获取最近的链执行并执行它。这意味着第二个和第三个链执行被丢弃,只继续最近的链执行。

简而言之,Streaming 模式的主要增值之处在于它促进了从源系统到 SAP BW 的频繁数据传输,而不会出现调度错误,也不会造成资源的不合理浪费。因此,可以在 SAP BW 中几乎实时地获取数据。它不是 100% 实时的,因为在最佳情况下,实际延迟以分钟为单位来衡量。因此,不要期望在 SAP SLT 复制场景中常见的毫秒到秒的延迟时间。

一般来说,有不同的运行模式需要区分:一种Push和两种Pull运行模式。它们之间的主要区别在于是消费系统还是源系统触发了数据传输。

A) PUSH 运行模式

主要特征:SAP BW 非常频繁地检查(每 60 秒)是否在源中生成新记录。如果此检查成功,则立即启动流程链以将新数据传输到目标 InfoProvider。流程链在流模式下调度一次,不需要定义周期性重复。

这是 HANA 源的首选模式,因为进程链仅在源系统中有新数据可用时运行。

前提条件:

  1. 此模式仅适用于 HANA 数据源。
  2. 数据源需要支持 Delta。
  3. 如果源系统类型是 HANA_LOCAL 或 HANA_MDC (BW/4HANA) / HANA,连接类型为“本地 SAP HANA 数据库架构” (BW 7.5),请查看 SAP note 2372534中的其他要求。
  4. 如果源系统类型是 HANA_SDA (BW/4HANA) / HANA,连接类型为“ SAP HANA 智能数据访问”(BW 7.5),那么使用哪种远程连接类型很重要:
    • SAP HANA 智能数据访问(SDA) 通常不支持此运行模式。
    • SAP HANA 智能数据集成(SDI):智能 PULL 模式仅适用于支持“实时变更数据捕获”的适配器,如 SAP HANA SDI 2.0 的PAM 功能概述(第 20-22 页)中所述。目前这些是:ASEAdapter、ASEECCAdapter、DB2ECCAdapter、DB2ECCLogReaderAdapter、MssqlECCAdapter、MssqlLogReaderAdapter、OracleECCAdapter、OracleLogReaderAdapter、PostgresSQLLogReaderAdapter、HanaAdapter、TeradataAdapter、AbapAdapter、CloudDataIntegrationAdapter 和 TwitterAdapter。

简而言之,SDI 适配器将每个更改实时复制到生成的 BW 表 (/BIC/CMT*)。您可以在 BW DataSource 定义中识别此表,其中有一个名为SAP HANA objects的按钮。这是流处理链定期检查新数据的位置。

注意:对于与源系统 HANA_* 相关的 BW 数据源,Streaming属性始终处于关闭状态(“ Streaming cannot be triggered by this DataSource ”)。不要混淆——我自己混淆了很长时间……似乎这个属性只涉及 PUSH 模式,因此也涉及 ODP 源。

C) Scheduled PULL Run Mode主要特点:SAP BW 执行一个利用流框架的流程链,无论源中是否有新数据。流式处理链被安排为定​​期作业,如果需要,它可以非常频繁地执行(最多每分钟)。如果有可用更新,它们将立即加载到 SAP BW。另一方面,如果没有新数据,则在目标 InfoProvider 中创建一个空请求。

如果源正在接收流数据,例如每秒一条记录,则这是首选模式。在这种情况下,PUSH 或智能 PULL 将无法以与 SAP BW 相同的速度处理新数据。所以这种简单的频繁调度可能是最有效的方法。

前提条件:

  1. 此模式适用于未启用流式传输的 ODP 数据源。
  2. 此模式也适用于依赖 SAP HANA SDA 的 HANA 数据源,或者它们基于不支持“实时更改数据捕获”的 SAP HANA SDI 连接(上面未列出的所有适配器)。
  3. 另一个先决条件是 DataSource 具有 Delta 功能。

注意:不满足 PUSH 模式 (A) 或 Intelligent PULL 模式 (B) 的前提条件并不意味着您不能在流模式下运行流程链。您仍然可以利用队列任务管理器框架为支持 Delta 的数据源以高频率运行它们。在这种情况下,需要将流程链安排为定期作业,以最多 1 分钟的频率从源中提取数据,而不是仅在新的源数据可用时才触发流程链。

D) 附录:启用写接口的 ADSO 的特殊模式 

主要特点:正如我在另一篇博客中所述,有一个新的 SAP BW/4HANA 写入接口,它使 SAP 和非 SAP 工具能够将数据直接供应到 ADSO 中,与 BW 7.x 中的 Web 服务源系统相当。从技术上讲,数据被推送到 ADSO 入站表中,并且可以通过 BW/4HANA 标准方式从那里处理数据。

如果此 ADSO 需要激活过程,则可以通过“流”模式下的流程链自动触发此活动,因为只要入站队列中的请求关闭,就可以触发(启动)该流程链。

前提条件:

  1. 发布 SAP BW/4HANA 2.0 或更高版本
  2. 具有建模属性的 ADSO已启用写入接口
  3. 流模式中的流程链包含指定 ADSO 名称的流程变体“激活 DSO 数据”

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值