春季批处理可读取CSV并将批量数据更新到MySQL

时间:2018-10-25 01:22:37

标签: spring spring-boot spring-batch

我低于编写春季批的要求。我想知道实现它的最佳方法。

输入:包含报告数据的相对较大的文件(今天) 处理方式: 1.根据今天的报告数据更新每日表和每月表 每日表格-只需根据ID更新计数 月度表格:将今天的计数添加到现有值中

我担心的是: 1.由于数据量巨大,我最终可能要进行多个数据库事务。如何批量执行此操作? 2.要添加到月度表的现有计数中,我必须随身携带现有计数。我可能必须事先维护地图。但这是一种以这种方式进行处理的好方法吗?

请提出我应该遵循的方法,如果有的话请举个例子?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以设计一个面向块的步骤,首先将每日数据从文件插入表中。完成此步骤后,可以使用步骤执行侦听器,并且在afterStep方法中,您将拥有步骤执行的句柄,可以在其中使用StepExecution#getWriteCount获得写入计数。您可以将此计数写入月度表。

  
      
  1. 由于数据量巨大,我可能最终要进行多个数据库事务。如何批量执行此操作?
  2.   

通过面向块的步骤,数据已经被批量写入(每个块一个事务)。即使您的输入文件很大,此模型也可以很好地工作。

  
      
  1. 要添加到月度表的现有计数中,我必须拥有现有计数。我可能必须事先维护地图。但这是一种以这种方式进行处理的好方法吗?
  2.   

无需将信息存储在映射中,您可以从上述步骤之后的步骤执行中获取写入计数。

希望这会有所帮助。