举一个普通的例子,我从DB2中获取数据,处理数据并将其写入MongoDB。我是用spring batch column range partitioning(远程分区)来实现这一点的,但问题是在我的DB2表中没有顺序列,因此每个分区都有不同的数据计数。因此,每个从机的负载是不同的。我的要求是在奴隶中平均分配负载。
您需要在分区作业中编写分区器
的实现,分区器负责知道如何将数据划分到分区中。Spring Batch实际上只提供了一个开箱即用的工具,
MultiResourcePartitioner`。在框架中找到的列范围one实际上只是一个示例。您可以在以下文档中阅读更多关于此接口及其角色的信息:https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/core/partition/support/partitioner.html和以下文档:https://docs.spring.io/spring-batch/trunk/reference/html/scalability.html
问题内容: Spring Batch远程分块和远程分区有什么区别? 我无法理解Spring Batch中的远程分块和远程分区之间的区别。有人可以解释一下吗? 问题答案: 远程分区 分区是主/从步骤配置,允许并行处理数据分区。每个分区都是通过一些元数据来描述的。例如,如果您正在处理数据库表,则分区1可能是ID 0-100,分区2可能是101-200,等等。对于Spring Batch,主步骤使用分区
spring批处理远程分块和远程分区之间有什么区别? 我无法理解spring batch中远程分块和远程分区之间的区别。谁能解释一下吗?
问题内容: 使用oracle中的范围分区,我们将大量数据按年值进行了分区。我们使用了范围分区,但每个分区仅包含一年的数据。当我们编写针对特定年份的查询时,oracle从该分区获取信息,但仍会检查年份是否是我们指定的年份。由于今年列不是索引的一部分,因此它从表中获取年份并进行比较。我们已经看到,每当查询去获取表数据时,它就会变得太慢。 我们可以以某种方式避免oracle比较年份值,因为我们确定知道分
目前,我们正在将批处理作业从java迁移到spring batch。此批处理作业从数据库和web服务获取其输入。我们需要在四台服务器上运行此作业,以提高性能,因为此作业正在处理大量数据。 上述场景是否可以通过spring batch中的远程分区实现? 我浏览了远程分区文档,但它很难理解,我没有找到任何关于远程分区的可靠示例。 请帮帮我。
我开始研究@Michael Minella https://github.com/mminella/learningspringbatch/tree/master/src/remotePartitioning发布的模式 在他的例子中,他用: 和主人一起: 当试图将参数传递给JobLauncher时,我是否遗漏了任何设置?似乎Spring集成中缺少一个配置。 任何帮助/领导都是感激的。Thx,马库斯
[新加入Spark]语言-Scala 根据文档,RangePartitioner对元素进行排序并将其划分为块,然后将块分发到不同的机器。下面的例子说明了它是如何工作的。 假设我们有一个数据框,有两列,一列(比如“a”)的连续值从1到1000。还有另一个数据帧具有相同的模式,但对应的列只有4个值30、250、500、900。(可以是任意值,从1到1000中随机选择) 如果我使用RangePartit