【问题标题】:How to bulk insert using Spring-Batch?如何使用 Spring-Batch 批量插入?
【发布时间】:2015-02-09 22:04:24
【问题描述】:

我正在使用 spring-batch 和 spring-data-jpa 来读取大型 csv 数据文件并使用 hibernate 将(或更新现有)条目保存到 postgresql db。

如何配置 spring 以使用批量/批量插入?

当我配置作业step 时,我相应地设置了chunk 的大小:

StepBuilderFactory step;
step.chunk(10000).reader(csvReader).writer(jpaItemWriter).build();

我还需要关注hibernate.jdbc.batch_size 属性吗?我是否也必须设置它,可能与块大小相同?

【问题讨论】:

  • 我已经对批量插入进行了一些研究。但以我有限的信息,我可以这么说。您实际上可以一起发送一组查询。但不是一个查询将一组信息放在一起。 IE;会有多个插入查询,但周转时间会更短。

标签: java spring hibernate spring-batch spring-data-jpa


【解决方案1】:

当您设置块大小时,您的阅读器将以指定的块向写入器发送数据。所以块大小是控制春季批处理中对数据库的实际批量更新的原因。

我认为 batch_size 并不重要,因为您已经为特定步骤的特定块大小设置了作业。

【讨论】:

    【解决方案2】:

    您还需要在写入数据库时​​使用批量更新查询。 Google JDBC Bulk updates 了解详细信息 - 因此,根据您执行 JDBC 查询的方式,您将需要使用相应的批量更新机制

    【讨论】:

    • 是的,但问题是:如何使用hibernate(spring-batch 使用)实现批量更新?
    • 哎呀好的 - 抱歉我不知道答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2015-09-12
    • 2012-09-28
    • 2012-10-23
    • 1970-01-01
    相关资源
    最近更新 更多