我正在研究 Javaee Batch API (jsr-352),以测试使用该技术为我们自己的解决方案更改当前 ETL 工具的可行性。
我的目标是建立一个工作,我:
- 在步骤 1 从数据源获取一些(虚拟)数据,
- 步骤2中来自其他数据源的一些其他数据和
- 在步骤 3 中合并它们。
我想处理每个项目而不是写入文件,而是将其发送到下一步。并且还存储信息以供进一步使用。我可以使用 batchlets 和jobContext.setTransientUserData()
.
我认为我没有正确理解这些概念:据我了解,JSR-352 是针对这种 ETL 任务的,但它有两种类型的步骤:块和批处理。块是“三阶段步骤”,其中一个读取、处理和写入数据。批处理任务不是对数据上的每个项目执行一次,而是一次(如计算总数、发送电子邮件等)。
我的问题是,如果我考虑批处理的定义,我的解决方案是不正确的。
一个人如何使用 Javaee Batch API 来实现这个 kinf od 工作?