产生工作流程并并行运行

2020-09-01 11:42发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我需要从具有大量记录的数据库中卸载数据。 在单个线程中卸载它需要几天的时间,因此我正在考虑在多个线程中卸载它(例如,制作4个线程很容易说明)。 该数据库具有一个9字节十进制数的密钥,我们将该密钥称为ID_KEY。 使用ID_KEY,第一个作业/工作流将卸载ID_KEY为1-250,000,000的数据。 第二个作业/工作流将卸载ID_KEY从250,000,001到500,000,000的数据。 第三作业/工作流将卸载ID_KEY从500,000,001到750,000,000的数据,而第四作业将卸载ID_KEY从750,000,001到999,999,999的数据。 更复杂的是,数据库服务器不允许一次性下载每个作业,因此我需要分小块下载数据,即数据库服务器每次运行只允许750,000。

现在,我有4个工作/工作流程,每个工作/工作流程需要重复334次。

正如我提到的,我知道这可以通过手动创建4个作业和一个while循环来完成。

但是,我正在寻找一种方法来创建一个作业/工作流程,然后动态创建其他三个作业。 请注意,我希望它们并行运行,并根据运行时间运行作业数。 因此,我希望能够控制产生的作业/工作流程的数量。

预先感谢

(77.1 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我需要从具有大量记录的数据库中卸载数据。 在单个线程中卸载它需要几天的时间,因此我正在考虑在多个线程中卸载它(例如,制作4个线程很容易说明)。 该数据库具有一个9字节十进制数的密钥,我们将该密钥称为ID_KEY。 使用ID_KEY,第一个作业/工作流将卸载ID_KEY为1-250,000,000的数据。 第二个作业/工作流将卸载ID_KEY从250,000,001到500,000,000的数据。 第三作业/工作流将卸载ID_KEY从500,000,001到750,000,000的数据,而第四作业将卸载ID_KEY从750,000,001到999,999,999的数据。 更复杂的是,数据库服务器不允许一次性下载每个作业,因此我需要分小块下载数据,即数据库服务器每次运行只允许750,000。

现在,我有4个工作/工作流程,每个工作/工作流程需要重复334次。

正如我提到的,我知道这可以通过手动创建4个作业和一个while循环来完成。

但是,我正在寻找一种方法来创建一个作业/工作流程,然后动态创建其他三个作业。 请注意,我希望它们并行运行,并根据运行时间运行作业数。 因此,我希望能够控制产生的作业/工作流程的数量。

预先感谢

(77.1 kB)
付费偷看设置
发送
1条回答
zhangjiyang1323
1楼-- · 2020-09-01 12:28

嗨,Leo,

如果是一次导出,那么可能最简单的方法就是最好的:我认为它可以是一个将键范围作为其参数的程序。 然后,您可以手动并行运行该程序,为每次运行提供不同范围的键。

如果相反,您认为一个解决方案要使用一次以上或定期使用, 需要更智能的东西(体面的日志记录,负载平衡,灵活的设置等)。 我将研究以下工具:

  1. SAP数据服务(我从未使用过,但是看起来它是正确的工具)
  2. 基于BANK_PP_JOBCTRL包的自定义解决方案(并非如此) 易于实现,但是可以完成您所描述的事情:将密钥集分成多个包进行处理,将处理作为单独的并行后台作业运行,监视同时运行的作业数)此处的一些信息: https://www.slideshare.net/BalakrishnaVegi/framework-for-parallel-processing-for-customer-reports
  3. 您自己关于"呼叫功能"的开发开始了新的任务(我会避免这样做,因为我认为您在这里有重新发明轮子的所有缺点)

一周热门 更多>