Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Java Spring批处理:为未知数量的分区编写分区程序_Java_Spring_Spring Batch_Bioinformatics_Partitioning - Fatal编程技术网

Java Spring批处理:为未知数量的分区编写分区程序

Java Spring批处理:为未知数量的分区编写分区程序,java,spring,spring-batch,bioinformatics,partitioning,Java,Spring,Spring Batch,Bioinformatics,Partitioning,我在学习春季批。我目前正在处理的生物数据如下所示: interface Variant { public String getChromosome(); public int getPosition(); public Set<String> getGenes(); } 接口变量{ 公共字符串getchromose(); public int getPosition(); 公共集getGenes(); } (变体是基因组上可能与某些基因重叠的位置) 我已经写了一些 现

我在学习春季批。我目前正在处理的生物数据如下所示:

interface Variant {
  public String getChromosome();
  public int getPosition();
  public Set<String> getGenes();
}
接口变量{
公共字符串getchromose();
public int getPosition();
公共集getGenes();
}
(变体是基因组上可能与某些基因重叠的位置)

我已经写了一些

现在我想对每个基因进行分析。因此,我想为每个基因(gene1、gene2、geneN)划分我的工作流程,以便对与一个基因相关的所有变体进行统计

实现这个类的最佳方法是什么(它是正确的类吗?)?我看到的所有示例都使用一些“索引”或有限数量的
gridSize
?此外,返回的映射是否必须包含小于gridSize的项,或者我是否可以返回一个“大”映射,并且spring batch只能并行运行
gridSize
作业?最后如何连接数据

谢谢


EDIT:或者我应该看看MultiResourceItemWriter吗?

当使用Spring Batch的分区功能时,主要涉及两个类,
Partitioner
PartitionHandler

分区器

Partitioner
接口负责将要处理的数据划分为多个分区。它有一个方法
Partitioner#partition(int gridSize)
,负责分析要分区的数据并返回一个
Map
,每个分区有一个条目。
gridSize
参数实际上只是整个计算的一部分输入,可以使用或忽略。例如,如果
gridSize
为5,我可以选择只返回5个分区,我可以选择过度分区并返回5的倍数,或者我可以分析数据并意识到我只需要3个分区,而完全忽略
gridSize

PartionHandler

PartitionHandler
负责将
Partitioner
返回的分区委托给worker。在Spring生态系统中,提供了三个
PartitionHandler
实现,一个
TaskExecutionPartitionHandler
将工作委托给当前JVM内部的线程,一个
MessageChannelPartitionHandler
将工作委托给监听某种形式消息中间件的远程工作人员,以及Spring云任务项目中的一个
DeployerPartitionHandler
,它动态地启动新的worker以执行提供的分区

根据以上所述,回答您的具体问题:

  • 实现分区器的最佳方法是什么(它是正确的类吗?这通常取决于分区中的数据和存储。如果不深入了解你是如何存储基因数据的,我真的无法评论最好的方法是什么
  • Partton(gridsize)返回的映射是否必须包含少于gridsize的项,或者我是否可以返回一个“大”映射,并且spring batch只能并行运行多于gridsize的作业?您可以在
    映射中返回您认为合适的任意多个项。如上所述,
    gridSize
    实际上是一个指南
  • 如何在最后加入数据?分区步骤要求每个分区都独立处理。如果您希望在最后加入某种形式的连接,通常会在分区步骤之后的步骤中进行

  • 使用SpringBatch的分区功能时,主要涉及两个类:
    Partitioner
    PartitionHandler

    分区器

    Partitioner
    接口负责将要处理的数据划分为多个分区。它有一个方法
    Partitioner#partition(int gridSize)
    ,负责分析要分区的数据并返回一个
    Map
    ,每个分区有一个条目。
    gridSize
    参数实际上只是整个计算的一部分输入,可以使用或忽略。例如,如果
    gridSize
    为5,我可以选择只返回5个分区,我可以选择过度分区并返回5的倍数,或者我可以分析数据并意识到我只需要3个分区,而完全忽略
    gridSize

    PartionHandler

    PartitionHandler
    负责将
    Partitioner
    返回的分区委托给worker。在Spring生态系统中,提供了三个
    PartitionHandler
    实现,一个
    TaskExecutionPartitionHandler
    将工作委托给当前JVM内部的线程,一个
    MessageChannelPartitionHandler
    将工作委托给监听某种形式消息中间件的远程工作人员,以及Spring云任务项目中的一个
    DeployerPartitionHandler
    ,它动态地启动新的worker以执行提供的分区

    根据以上所述,回答您的具体问题:

  • 实现分区器的最佳方法是什么(它是正确的类吗?这通常取决于分区中的数据和存储。如果不深入了解你是如何存储基因数据的,我真的无法评论最好的方法是什么
  • Partton(gridsize)返回的映射是否必须包含小于gridsize的项,或者我是否可以返回一个“大”映射,并且spring batch只能并行运行多个gridsize作业?您可以