"IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。 点击蓝色微信名可快速关注我们。
在一个BW/4HANA系统中,有大量的日常管理和维护工作需要完成。比如,每天晚上进行数据的抽取、转换和加载,对加载完成的数据进行预计算,并把计算好的报表发送到用户的电子信箱中等。这些工作往往具有固定的工作流程,而且不同的操作动作之间往往有固定的先后关系。
这些工作有可能是需要定期执行的,也有可能是由特定的系统事件触发的。比如,当事务处理系统中出现新记录,或者文件接口服务器增加新的数据文件时,系统自动启动数据加载进程。SAP BW/4HANA为简化这些管理工作,提供了处理链这一工具。
01
处理链的一条龙服务
处理链,又称进程链,是SAPBW/4HANA提供的一个用于在后台完成批量工作的工具。处理链使系统管理员可以容易地定义日常的管理工作,并对这些工作进行集中管理。
一个处理链是由若干个节点构成的。这些构成处理链的节点就是进程。各种进程是构成处理链的主要元素。处理链使用事件将多个进程互相连接,这些事件由前一个进程触发,又启动下一个进程的执行。我们可以将进程分为开始进程、应用程序进程、收集器进程和决策进程等类型。一个处理链是由一个开始进程、若干个应用程序进程、若干个收集器进程和若干个决策进程组成的。
每个处理链都有且只有一个开始进程,它定义了处理链的开始方式,所有其他的进程都是由开始进程运行后产生的后续的事件触发执行的。应用程序进程是实际的处理进程,它们一般是典型SAP BW/4HANA系统操作。收集器进程可以将多个处理链条合并成一个处理链条。决策进程可以根据处理链节点的多个不同输出结果,从处理链中多个可能的后续运行路径中确定实际运行的路径。
一个示例的处理链如图1所示。
图1 完成处理链节点设置
从图 1中的应用程序节点中可以看到,每个节点都有两个输出端口,一个是节点运行成功,另一个是节点运行失败。在不同的输出结果之后,可以挂接不同的后续进程节点进行处理。对于收集器进程类型,可以收集多个输入端口,只有一个输出端口。决策进程类型则有一个输入端口,可以有多个输出端口。
02
处理链三种不同的运行模式
在BW/4HANA中,高频率地运行处理链需要有相应的机制保障。由于处理链运行完成一个进程需要占用一定的时间,如果在这段期间内处理链启动了多次,当第二次、第三次或后续执行到达当前正在运行的进程时,系统需要有相应的处理机制。处理链的运行模式不同,高频率运行处理链时处理方式也有所不同。处理链有以下三种不同的运行方式。
1)处理链在后台执行(默认后台模式):如果在后台执行处理链时,当第二次执行到达当前运行的进程时,系统将等待10分钟。如果在此期间内前一个进程仍然没有完成,则系统取消第二次执行,并且报告第二次运行处理链中断失败。如果前一个进程在10分钟内完成,则开始第二次执行该进程。然而,第三次执行将同样会进入等待状态。在后台执行处理链期间,多个后台作业会因此并行等待。当等待执行的处理链数量越来越多时,往往最后会导致处理链的执行失败。在处理链设计时,加入决策进程节点“前一次运行是否活动”用来检查处理链上一次运行是否完成,可以避免出现多个后台作业行等待的情况。
2)处理链是同步执行的如果处理链是同步执行的,则当前进程是否允许并行执行取决于进程类型。如果进程不允许并行执行(如加载进程),则处理链框架将无限期地等待上一次进程执行完成。由于同步执行通常在对话模式中运行的,这可能会导致处理链运行由于超时而取消。
3)处理链以流模式运行流模式(streaming)运行的处理链可以非常频繁地启动和执行,并且可以将数据实时更新到数据存储对象。在处理链的属性中可以设置处理链是否应用流模式运行。
如果处理链是以流模式执行的,系统会设置一个运行进程的请求队列,当第二次、第三次或第四次执行请求到达当前进程时,系统会将执行进程的请求写入队列。系统随后释放资源,不再等待。同时,系统会安排多个“worker”作业从请求队列中获取下一个进程。当前进程完成后,“worker”作业将从请求队列中获取这一进程的所有执行请求,并且只执行最后一个请求。这意味着第二次和第三次执行请求将被终止,第四次执行请求将继续运行。
03
适合在流模式下运行的处理链进程类型
流模式运行的处理链可以以任何频率启动,而不用担心处理链中的某些进程运行需要消耗较长的时间。在极端情况下,这会导致处理链中的所有进程都在并行运行。在处理链日志中,显示处理链中每个进程的最新执行情况,而不区分进程是在哪一次处理链执行的。也就是说,在监视器中可以看到任何进程的最新状态,但看不到最近一次运行处理链的状态。在流模式的处理链属性设置中,可以指定要保留的日志数,默认值为1440个日志。如果处理链每分钟启动一次,则此设置意味着日志将保留一天。属性中还可以每个进程最大的报错次数。如果一个进程重复失败的次数超过此处设置的次数,则下次执行处理链时将跳过这一进程。
流模式运行的处理链中的进程类型必须满足特定的要求。这些进程类型必须能够独立地确定其工作列表,而不依赖于同一处理链运行中的其他进程。从流模式处理链的角度,可以将进程类型分为三种:
1)可以触发流模式处理链的进程:● 使用实时传输的SAP HANA数据源的数据传输进程;● 使用实时传输的ODP数据源的数据传输进程;● 开始进程:在开始进程中设置高频率的执行方式,或者调用API启动处理链。2)可在流模式处理链中使用和运行的进程:● 数据存储对象激活:如果这类数据存储对象成为全量数据抽取或者增量数据初始化抽取的数据源时,流模式下的激活操作将暂停,直到数据抽取结束后才继续数据激活动作;● ABAP程序;● 决策进程;● 收集器进程:即和,或,异或进程;● 在使用新的请求管理机制的对象之间传输增量数据的数据传输进程;● 直接从远程源对象传输增量数据的数据传输进程。3)流模式处理链中不允许使用的进程:● 所有其他进程,例如删除数据和执行日常运维操作的进程。 简而言之,BW/4HANA改进了处理链运行机制,支持以流模式运行处理链。在流模式下,处理链可以非常频繁地启动和执行,并且可以将数据实时更新到数据存储对象。在大数据时代,这一方法可以更好地处理物联网数据,实现对IoT数据的实时处理。