Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将数据从表拆分到java进程_Sql_Oracle_Oracle11g - Fatal编程技术网

Sql 将数据从表拆分到java进程

Sql 将数据从表拆分到java进程,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有一个表学生,它有1.000.000条记录 我需要将数据1.000.000输入Solr 因为记录的数量非常大,所以我需要并行处理=>我将创建5个进程,每个进程将处理20000条记录 我的问题是: 如何将1.000.000划分为5个始终相同的部分(我考虑了ntile函数,但不知道每次选择的数据是否会改变) 这个问题在某种意义上与批处理设计模式有关(也就是大规模批处理)这里有一个称为“分区”的概念,它将输入数据分成更小的部分,以便能够并行处理它们。 有几种分区策略,您可以在此处阅读更多有关它们的内

我有一个表学生,它有1.000.000条记录

我需要将数据1.000.000输入Solr

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

我的问题是:

  • 如何将1.000.000划分为5个始终相同的部分(我考虑了ntile函数,但不知道每次选择的数据是否会改变)

  • 这个问题在某种意义上与批处理设计模式有关(也就是大规模批处理)
    这里有一个称为“分区”的概念,它将输入数据分成更小的部分,以便能够并行处理它们。

    有几种分区策略,您可以在此处阅读更多有关它们的内容:,简而言之,它们是:

  • 修正甚至打破记录集
  • 按键列拆分
  • 通过分区表分配给批处理实例
  • 通过部分值(例如值0000-0999、1000-1999等)分配给批次实例
  • 意见分歧
  • 添加处理指示符
  • 将表格提取到平面文件
  • 哈希列的使用

  • 很难说哪一个对你来说是最好的,你需要知道更多的细节。

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

    你能解释一下这句话是关于什么的吗:
    2。如果可以的话,我想在案例5中控制更多进程的运行,记录有insert、update或delete到table
    ,我一点也不理解这句话。据我所知,你们不能用Java并行化检索进程。您可以在数据库端执行此操作。例如,Oracle DB支持它。@krokodilko我有删除问题2。如果可以,我想在案例5中控制更多进程运行,记录对表的插入、更新或删除。因为这在当时是不必要的time@user3076539为什么不多线程?@user3076539我为每个进程创建了多线程。现在我想要多进程