如何将一个大文件拆分成多个小文件,以便在 spring 批处理中并行处理?
how to split a large file into smaller files for parallel processing in spring batch?
我们有一个可以逻辑拆分的大文件(不是范围而是下一个头记录的出现)
例如
HeaderRecord1
...大量详细记录
HeaderRecord2
...大量详细记录
等等...
我们想在HeaderRecord层面把文件拆分成多个小文件,并行处理。
如何在 Spring 批处理中实现这一点?当我 google 时,我遇到了 Systemcommandtasklet 并使用 Linux / Unix Split 命令进行拆分。
这是最好的方法吗? Spring Batch 中是否有任何分区选项?
感谢和问候
您需要创建一个自定义 Partitioner
来计算每个逻辑分区的索引(begin/end 索引)。然后使用自定义项 reader(可以扩展 FlatFileItemReader
),它只读取给定分区的行(并忽略其他行)。
我们有一个可以逻辑拆分的大文件(不是范围而是下一个头记录的出现)
例如
HeaderRecord1
...大量详细记录
HeaderRecord2
...大量详细记录
等等...
我们想在HeaderRecord层面把文件拆分成多个小文件,并行处理。
如何在 Spring 批处理中实现这一点?当我 google 时,我遇到了 Systemcommandtasklet 并使用 Linux / Unix Split 命令进行拆分。
这是最好的方法吗? Spring Batch 中是否有任何分区选项?
感谢和问候
您需要创建一个自定义 Partitioner
来计算每个逻辑分区的索引(begin/end 索引)。然后使用自定义项 reader(可以扩展 FlatFileItemReader
),它只读取给定分区的行(并忽略其他行)。