同时处理大量数据

问题描述 投票:0回答:2

我有一个包含大量数据的表:

        id | title | server 1 | server 2 | server 3
        --------------------------------------------
        1  | item1 | 110.0.0.1| 110.0.0.2| 110.0.0.3
        2  | item2 | 110.0.0.4| 110.0.0.2| 110.0.0.5
        ..
        n  | itemn | 110.0.0.1| 110.0.0.2| 110.0.0.3

我想使用spring boot处理所有这些数据并将结果保存在数据库中,为此,最简单,最简单和最好的原因是什么?

似乎apache的地图减少可以完成这项工作,但它的设置非常庞大和复杂。

实际用例:

  1. 一个春季启动实例
  2. select * from item;
  3. 逐项处理。

预期的用例:

  1. n春季启动实例
  2. 从项目限制n中选择*
  3. 逐项处理
  4. 合并结果并保存在数据库中
spring-boot mapreduce cluster-computing
2个回答
0
投票

看看Spring Batch。它允许分块(在多个线程中处理多个块中的数据)并且应该非常适合您的用例。

https://docs.spring.io/spring-batch/trunk/reference/html/spring-batch-intro.html


0
投票

我可能建议使用Spring Batch而不是n个spring boot实例来设置一个数据处理管道。

Spring批处理将包含以下每个步骤:

  1. 使用Hive提取数据(从项目中选择*) - 确保将它们作为文件输出写入外部位置。
  2. 提取的数据是MapReduce框架的输入,其中每个项目都被处理并且所需的输出被写入。
  3. mapreduce的输出在此批处理步骤中合并。
  4. 保存到数据库中的另一个进程(再次分发,如果可能)。
© www.soinside.com 2019 - 2024. All rights reserved.