当从单个文件中读取流时,如何在多个机器之间拆分Spring Batch的工作?

时间:2018-10-23 06:43:29

标签: spring-batch

我的流程是:

  1. 从单个文件读取(文件大小〜1TB)
  2. 处理每一行
  3. 将每一行写入2个输出文件

如何减少一台以上机器的工作量,以减少整体运行时间?

1 个答案:

答案 0 :(得分:1)

此用例至少有三种技术:

  • 使用split命令(或等效命令)对文件进行物理分区以创建多个分区。然后使用分区步骤来处理每个分区。
  • 对文件进行逻辑分区(请参见BATCH-1613中随附示例中的FlatFilePartitioner),并使用分区步骤来处理每个分区
  • 使用暂存表在其中加载文件,然后使用分区步骤来处理表上的分区(例如ID 1-> 1000、1001-> 2000等)

希望这会有所帮助。