「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么( 六 )


接下来我们看下最后一种分区模式;Partitioning Step:分区模式需要对数据的结构有一定的了解 , 如主键的范围、待处理的文件的名字等 。
「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么
文章图片

文章图片

这种模式的优点在于分区中每一个元素的处理器都能够像一个普通Spring Batch任务的单步一样运行 , 也不必去实现任何特殊的或是新的模式 , 来让他们能够更容易配置与测试 。
通过分区可以实现以下的优点:
分区实现了更细粒度的扩展;
基于分区可以实现高性能的数据切分;
分区比远程通常具有更高的扩展性;
分区后的处理逻辑 , 支持本地与远程两种模式;
分区作业典型的可以分成两个处理阶段 , 数据分区、分区处理;
数据分区:根据特殊的规则(例如:根据文件名称 , 数据的唯一性标识 , 或者哈希算法)将数据进行合理的数据切片 , 为不同的切片生成数据执行上下文Execution Context、作业步执行器Step Execution 。可以通过接口Partitioner生成自定义的分区逻辑 , Spring Batch批处理框架默认实现了对多文件的实现org.springframework.batch.core.partition.support.MultiResourcePartitioner;也可以自行扩展接口Partitioner来实现自定义的分区逻辑 。
分区处理:通过数据分区后 , 不同的数据已经被分配到不同的作业步执行器中 , 接下来需要交给分区处理器进行作业 , 分区处理器可以本地执行也可以远程执行被划分的作业 。接口PartitionHandler定义了分区处理的逻辑 , Spring Batch批处理框架默认实现了本地多线程的分区处理org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler;也可以自行扩展接口PartitionHandler来实现自定义的分区处理逻辑 。
「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么
文章图片

文章图片

Spring Batch框架提供了对文件分区的支持 , 实现类org.springframework.batch.core.partition.support.MultiResourcePartitioner提供了对文件分区的默认支持 , 根据文件名将不同的文件处理进行分区 , 提升处理的速度和效率 , 适合有大量小文件需要处理的场景 。
「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么
文章图片

文章图片

示例展示了将不同文件分配到不同的作业步中 , 使用MultiResourcePartitioner进行分区 , 意味着每个文件会被分配到一个不同的分区中 。如果有其它的分区规则 , 可以通过实现接口Partitioner来进行自定义的扩展 。有兴趣的TX , 可以自己实现基于数据库的分区能力哦 。
总结一下 , 批处理框架在扩展性上提供了4中不同能力 , 每种都是各自的使用场景 , 我们可以根据实际的业务需要进行选择 。
「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么
文章图片

文章图片

批处理框架的不足与增强
Spring Batch批处理框架虽然提供了4种不同的监控方式 , 但从目前的使用情况来看 , 都不是非常的友好 。
「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么
文章图片

文章图片

通过DB直接查看 , 对于管理人员来讲 , 真的不忍直视;
通过API实现自定义的查询 , 这是程序员的天堂 , 确实运维人员的地狱;


推荐阅读