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