不带pojo的Spring批处理块处理



我们有一个java应用程序,它从表中读取所有记录并形成json文档。最后,将所有json文档推入弹性搜索。这个应用程序需要3个多小时才能完成,因为有超过100万条记录。我们尝试应用多线程,但性能没有达到标准。因此,我们想要使用spring批处理块处理。

但是如何在春季批处理中实现相同。我们不能为每个表编写pojo类。我们只是迭代结果集并形成一个json对象。所有可用的示例都使用pojo类

步骤。

  1. 从数据库
  2. 读取数据迭代结果集并形成json对象。将所有json对象推送到Elasticsearch。

首先考虑:

您是否已经考虑返回您的数据库实体本身?因此,您不需要使用for迭代器手动转换所有数据记录。使用Jackson或Gson这样的映射器非常简单。

第二考虑:

你是否已经考虑过使用一个No-SQL数据库,如MongoDB,来存储这些记录?与关系数据库相比,它在性能方面具有表现力优势。

第三考虑:

你可以尝试使用Spring Batch,正如你已经提到的。但在这一点上,我不知道它是否比其他解决方案更有效。阅读这个主题,它可能会有所帮助

最新更新