我需要每周一次将CSV加载到数据库中。由于CSV文件包含2个表的数据,因此需要进行一些数据按摩。因此,我将不得不稍微处理一下CSV文件,可能将其转换为2个不同的CSV文件并将其加载到数据库中。
我已经配置了石英。你认为使用弹簧批来完成这项工作是否有点过分?我想知道我什么时候应该使用它,什么时候我应该用石英豆去处理它自己。
答案 0 :(得分:6)
Spring Batch非常适合这类工作,因为它减少了你必须关心的部分。在这种情况下,您关心的只是按摩数据然后插入两个不同的表。您可以使用FileItemReader
读取数据。然后使用ItemProcessor
更改任何传入数据并输出正确的数据,并进行适当的按摩。您提供itemProcessor
,因为它是您的自定义Java逻辑。然后你可以使用JdbcItemWriter
或只是插入你自己的。
最好的部分是它 [a] 非常普遍,所以有很多很多很多例子(请参阅:Spring Batch 2.0 – Part II – Flat File To Database或joshlong/joshlong-examples/spring-batch-starter或Spring批次中的样本作为灵感)和 [b] 它主要是声明性的。您不必担心您不关心的事情 - 您不是在想弄清楚如何正确解析CSV文件,甚至不知道如何以可扩展的方式读取文件。您只是想确保数据有效并确保数据最终结束。
答案 1 :(得分:0)
Spring Batch增加了额外的要求和维护难度:
BATCH_
个表,定义索引策略(默认情况下会丢失),定义周期表清除。