Spring Batch 中的块大小和分区大小有什么区别?

问题描述 投票:0回答:1

Spring Batch 中的块大小和分区大小有什么区别?

我指的不是 Spring Batch 分区,它在 here 进行了简要解释。

我指的是

DEFAULT_PARTITION_SIZE
,它也受 Spring Batch 支持。 我将此属性的值设置如下 -

jobExecution.getExecutionContext().put(
        JobParam.DEFAULT_PARTITION_SIZE,
        JobParam.DEFAULT_PARTITION_SIZE_VALUE  //300
    );

对于我的项目,我的块大小为 25,分区大小为 300。我想知道这两者之间有什么区别。我理解块大小是指一次读取一个数据并创建在事务边界内写出的“块”。 但是 Spring Batch 文档或互联网上没有太多关于分区大小的解释。

块大小为 25,分区大小为 300,我预计每次都会将 25 条记录写入输出文件。但实际上每次都会将 300 条记录写入输出文件。这是为什么。

spring spring-batch batch-processing spring-batch-tasklet
1个回答
0
投票

从这个链接和文档来看,块大小似乎决定了提交批次之前处理的项目数。如果设置为 25,则读取器读取 25 个项目,处理器处理它们,然后写入器在一次事务中写入这 25 个项目。 而 DEFAULT_PARTITION_SIZE 似乎是一个自定义或记录较少的参数,可能决定单个分区中有多少条记录。如果设置为 300,则每个分区将包含 300 条记录。如果您确定它没有出现在那里,您可以尝试在 aws 批量支持表单中询问

© www.soinside.com 2019 - 2024. All rights reserved.