Spring Batch是否具有过度杀伤力

时间:2011-03-09 04:42:30

标签: spring-batch

我需要每周一次将CSV加载到数据库中。由于CSV文件包含2个表的数据,因此需要进行一些数据按摩。因此,我将不得不稍微处理一下CSV文件,可能将其转换为2个不同的CSV文件并将其加载到数据库中。

我已经配置了石英。你认为使用弹簧批来完成这项工作是否有点过分?我想知道我什么时候应该使用它,什么时候我应该用石英豆去处理它自己。

2 个答案:

答案 0 :(得分:6)

Spring Batch非常适合这类工作,因为它减少了你必须关心的部分。在这种情况下,您关心的只是按摩数据然后插入两个不同的表。您可以使用FileItemReader读取数据。然后使用ItemProcessor更改任何传入数据并输出正确的数据,并进行适当的按摩。您提供itemProcessor,因为它是您的自定义Java逻辑。然后你可以使用JdbcItemWriter或只是插入你自己的。

最好的部分是它 [a] 非常普遍,所以有很多很多很多例子(请参阅:Spring Batch 2.0 – Part II – Flat File To Databasejoshlong/joshlong-examples/spring-batch-starter或Spring批次中的样本作为灵感)和 [b] 它主要是声明性的。您不必担心您不关心的事情 - 您不是在想弄清楚如何正确解析CSV文件,甚至不知道如何以可扩展的方式读取文件。您只是想确保数据有效并确保数据最终结束。

答案 1 :(得分:0)

Spring Batch增加了额外的要求和维护难度:

  • 您需要以惯用的字符串批处理方式(通过接口实现)来构造代码。
  • 您需要编写一些XML或Java配置-一个额外的DSL来学习。
  • 您需要管理工具来启动/停止/监视执行。 Spring Batch Admin已正式弃用且不再维护。
  • 您需要维护BATCH_个表,定义索引策略(默认情况下会丢失),定义周期表清除。
  • 我已经通过调试会话和源代码学习了Spring Batch,因为文档仅涉及简单的情况(例如CSV-> DB)。