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