5

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

我已经配置好了石英。你认为使用 Spring Batch 来完成这项工作是不是有点矫枉过正?我想知道我什么时候应该使用它,什么时候应该放弃石英豆来进行处理。

4

2 回答 2

6

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

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

于 2011-03-09T05:36:08.963 回答
0

Spring Batch 增加了额外的要求和维护痛苦:

  • 您需要以 String Batch 惯用的方式构建代码(实现他们的接口)。
  • 您需要编写一些 XML 或 Java 配置 - 一个额外的 DSL 来学习。
  • 您需要管理工具来启动/停止/监控执行。Spring Batch Admin 已正式弃用且未维护。
  • 您需要维护BATCH_表,定义索引策略(默认缺少),定义周期表清理。
  • 我通过调试会话和源代码学习了 Spring Batch,因为文档只涉及简单的案例(如 CSV -> DB)。
于 2019-01-22T16:35:17.173 回答