如何在Java中实现“数据流” - 数据库交互?

时间:2012-09-03 14:28:00

标签: java database

上下文:

  1. 我有一个基于java的应用程序,比方说AppA
  2. 它查询数据库,比方说DataD
  3. 它可以处理这些数据,做一些魔术并将其传递给另一个应用程序,比如AppB
  4. 问题:

    1. DataD中的数据量非常大。
    2. 我的AppA无法一次性处理所有数据。
    3. 我的AppB对于一次性获取所有数据并不感兴趣。
    4. 解决方案:

      1. 我想从DataD查询数据,但一次只能查询10,000个(可配置)的数据。
      2. 我将在AppA中处理该批处理,将其传递到AppB,然后对DataD执行另一个查询。
      3. 我必须告诉DataD,我已经阅读了多少条记录,并要求它提供下一万条记录。所以,不知何故,我的AppA需要跟踪上次读取的数字,并有一种巧妙的方法可以有效地查询DataD以获取一系列数据。
      4. 我的DataD没有任何方法可以保留已经发回的内容(或保持标记)。它是一个数据库,也不可能在它之上打击任何SOA / REST智能。所以,我的AppA必须足够聪明才能对特定范围进行查询。
      5. 问题:

        1. 如果不在核心java中使用太多的玩法,是否可以使用任何框架来实现这一点 - 我想称之为 - “数据流”?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:2)

这听起来很复杂,我建议你尽量让它变得简单。

我会让AppA执行查询并在获取它时处理每一行,并将派生数据写入AppB正在侦听的Socket。除非你知道这会导致性能问题,否则我不会让它变得更复杂。