将数据从表拆分为java进程

时间:2018-04-19 03:10:10

标签: sql oracle oracle11g

我有一个学生 1.000.000 记录。

我需要将数据1.000.000输入Solr。

因为记录的数量非常大,所以我需要并行执行=>>我将创建 5个进程,每个进程将处理20,000条记录。

我的问题是:

  1. 如何将1.000.000划分为5个部分始终相同(我认为是ntile函数,但我不知道数据是否会因为每个选择而改变)

2 个答案:

答案 0 :(得分:0)

此问题在某种意义上与批处理设计模式(还有:大规模批处理)有关。
有一个名为" Partitioning"在那里,它包括将输入数据分成更小的部分,以便能够并行处理它们。

有几种分区策略,你可以在这里阅读更多关于它们的信息:Spring-Batch processing strategies,简而言之它们是:

  1. 记录集的固定和均匀分解
  2. 按键列分解
  3. 通过分区表
  4. 分配给批处理实例
  5. 通过部分值(例如,值0000-0999,1000 - 1999等)分配给批次实例
  6. 按意见分手
  7. 添加处理指标
  8. 将表格提取为平面文件
  9. 使用哈希柱
  10. 很难说哪种情况最适合你的情况,需要了解更多细节。

答案 1 :(得分:0)

NTILE()就是我在这些情况下使用过的。