kettle 集群、分区

Kettle集群、分区执行顺序与结果

 

 

 

 

 

 

 

 

 

 


 


 

目录

1.     Kettle集群、分区的执行顺序...3

a)     转换中的一个步骤单独使用集群...3

b)     转换中的两个步骤使用集群...3

c)     转换中的一个步骤单独使用分区...4

d)     转换中的两个步骤使用分区...5

e)     转换中的一个步骤既使用分区又使用集群...6

i.      分区数和集群的子服务器数一致...6

ii.     分区数是集群的子服务器的倍数...7

f)      转换中的两个步骤使用分区和集群...8

2.     Kettle集群、分区的执行结果...9

a)     转换中的一个步骤既使用分区又使用集群...9

b)     转换中的一个步骤既使用分区又使用集群,另一个步骤仅使用集群...10

c)     两个步骤都使用集群和分区...11

 


 

最近测试了一下kettle集群(cluster)、分区(partitioning)的执行顺序和执行结果。

1.        Kettle集群、分区的执行顺序

为了验证kettle转换的多个步骤在使用集群、分区的执行顺序是顺序执行还是在两个步骤之间重新分配集群的子服务器再执行,做了如下实验:

a)        转换中的一个步骤单独使用集群

Figure1 一个步骤使用集群

Figure2 主服务器转换步骤

Figure3 子服务器转换步骤

b)        转换中的两个步骤使用集群

Figure4 两个步骤使用集群

Figure5 主服务器转换步骤

Figure6 子服务器转换步骤

从a)部分和b)部分的六张图对比来看,kettle的多个步骤在使用集群时是顺序执行的而不是在两个步骤之间重新分配子服务器这样大大降低了服务器回收、切换的时间消耗。

c)        转换中的一个步骤单独使用分区

Figure7 一个步骤使用分区

Figure8 执行结果日志

Figure9 执行结果步骤度量

d)        转换中的两个步骤使用分区

Figure10 两个步骤使用分区

Figure11 执行结果日志

Figure12 执行结果步骤度量

从c)部分和d)部分的六张图对比和做得多个实验的结果来看,kettle的多个步骤在使用分区时也是顺序执行的而不是在两个步骤之间重新分区,无论这两个分区依据的是哪个字段,都按前一个分区的字段来划分执行。

e)        转换中的一个步骤既使用分区又使用集群

                        i.             分区数和集群的子服务器数一致

Figure13 一个步骤使用分区和集群

Figure14 主服务器转换步骤

Figure15 子服务器转换步骤

                      ii.             分区数是集群的子服务器的倍数

Figure16 一个步骤使用分区和集群

Figure17 主服务器转换步骤

Figure18 子服务器转换步骤

从i部分和ii部分的六张图来看,步骤在确定分区数和集群的子服务器数时要保证子服务器是分区数的倍数,才能确保在转换执行时可以给每个服务器分配同等数量的分区数(即分区数/子服务器数)。

f)         转换中的两个步骤使用分区和集群

Figure19 两个步骤使用分区和集群

Figure20 主服务器转换步骤

Figure 21 子服务器转换步骤

从ii部分和f)部分的六张图对比来看,kettle的多个步骤在使用集群和分区时是顺序执行的而不是在两个步骤之间重新分配子服务器,这样大大降低了服务器回收、切换的时间消耗。该种情况跟只使用分区时一样,不管两个分区依据的是哪个字段,都按前一个分区的字段来划分执行。

2.        Kettle集群、分区的执行结果

该实验的目的是检验在kettle的转换步骤中使用集群和不同的分区转换后的结果是否是正确的。

a)        转换中的一个步骤既使用分区又使用集群

Figure22 一个步骤使用分区、集群

若分区与分组是同一字段type,结果:

Figure23 执行结果1

若分区与分组是不同字段分组type,分区id,结果:

Figure24 执行结果2

其中type_num是对type个数的使用连接同组字符串,type_all_num是type_num的求和。从图23、24可以看出不管分区时使用哪个字段最终的结果都是正确的,只不过中间会多做一步处理。

b)        转换中的一个步骤既使用分区又使用集群,另一个步骤仅使用集群

Figure25 一个步骤使用分区、集群,另一个步骤使用集群

若分区与分组是同一字段type,结果:

Figure26 执行结果1

若分区与分组是不同字段分组type,分区id,结果:

Figure27 执行结果2

c)        两个步骤都使用集群和分区

Figure28 两个步骤都使用集群、分区

从a)、b)、c)三个步骤的结果来看,不管分区根据哪个字段,不管有几个步骤使用分区,转换的执行结果都是正确的。需要注意的是,若有一个步骤使用了集群(不管有没有使用分区),另一个步骤只要使用分区必须同时使用集群,否在在使用集群方式执行时会报错。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值