前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据刷新中的并行改进(三) (r5笔记第79天)

数据刷新中的并行改进(三) (r5笔记第79天)

作者头像
jeanron100
发布2018-03-16 11:04:05
5700
发布2018-03-16 11:04:05
举报

在之前的两篇【数据刷新中的并行改进(二) (r5笔记第76天)数据刷新中的并行改进(r5笔记第72天)】中分享了数据刷新的并行改进,其实在对很多的数据表做了切分之后,数据刷新的总体负载就基本是平均的了。如何使得刷新的过程更加平滑和完整,我们还是需要做一些工作的。 首先各个节点中都存在相同的表(其实是物化视图),所以在刷新的时候还是基本靠串行的思路来做并行的事情,怎么理解呢。可以参见下面的图片。

在有多个节点的情况下,数据从第1个节点到第3个节点刷新的时候,内部还是串行的,只是在第1个节点刷新的时候使用了并行,把700多个表分成了多个刷新的进程来并行处理。对于各个节点之间的刷新还是串行的过程。 就如同我在图中用绿色标注的那样。 我们先来实现节点的串行,可以使用如下的脚本来使得某个脚本在对应的节点中都会依次运行。

代码语言:javascript
复制
#ref_active.sh
sqlplus /nolog <<EOF
conn prdrefssca/xxxxx@xxxx
set timing on
set echo on
spool $1_prdrefssca.log
@$1
spool off
conn prdusg1ssca/x@xxxx
spool $1_prdusg1ssca.log
@$1
spool off
conn prdusg2ssca/xx@xxx
spool  $1_prdusg2ssca.log
@$1
spool off
conn prdusg3ssca/xxxx@xxxx
spool  $1_prdusg3ssca.log
@$1
spool off
conn prdusg4ssca/xxx@xxxx
spool  $1_prdusg4ssca.log
@$1
spool off
EOF

在这个基础上,使用使用并行切分的脚本split_parall.sh 把多个表切分为指定的并行,比如700多个表按照数据情况切分成10个并行的刷新进程。 然后就可以把脚本 ref_active.sh利用起来,生成动态的脚本,其实这个过程中会动态生成一些脚本。类似这样的形式 ksh ref_active.sh par1_tab_parall.lst.sql 最后把这些脚本都合并为一个脚本,在执行的时候就会更加方便,最后的脚本是ref_all_active.sh 怎么具体实现呢。

代码语言:javascript
复制
##### batch_split_parall.sh
tmp_ext_base_dir=`pwd`
ext_base_dir=`dirname $tmp_ext_base_dir`

ksh $ext_base_dir/append/split_parall.sh tab_parall.lst $1
for i in {1..$1}
do
cat ./par${i}_tab_parall.lst
echo "ksh ref_active.sh " par${i}_tab_parall.lst.sql    > tmp_par${i}_tab_parall.sh
echo "ksh " tmp_par${i}_tab_parall.sh "&"  >> ref_all_active.sh
done

生成的动态脚本如下:

代码语言:javascript
复制
-rw-r--r-- 1 xxxxx dba  2132 Jun 25 19:07 par10_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4690 Jun 25 19:07 par10_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba   101 Jun 25 19:06 par1_tab_parall.lst
-rw-r--r-- 1 xxxxx dba    53 Jun 25 19:07 par1_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba   976 Jun 25 19:07 par2_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  2101 Jun 25 19:07 par2_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  1997 Jun 25 19:07 par3_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4345 Jun 25 19:07 par3_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2077 Jun 25 19:07 par4_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4607 Jun 25 19:07 par4_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2055 Jun 25 19:07 par5_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4557 Jun 25 19:07 par5_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2016 Jun 25 19:07 par6_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4489 Jun 25 19:07 par6_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2059 Jun 25 19:07 par7_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4618 Jun 25 19:07 par7_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2038 Jun 25 19:07 par8_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4568 Jun 25 19:07 par8_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba  2118 Jun 25 19:07 par9_tab_parall.lst
-rw-r--r-- 1 xxxxx dba  4647 Jun 25 19:07 par9_tab_parall.lst.sql
-rw-r--r-- 1 xxxxx dba   416 Jun 25 18:29 ref_active.sh
-rw-r--r-- 1 xxxxx dba   301 Jun 25 19:07 ref_all_active.sh
-rw-r--r-- 1 xxxxx dba 73730 Jun 25 19:06 tab_parall.lst
-rw-r--r-- 1 xxxxx dba  2096 Jun 25 18:25 split_parall.sh
-rw-r--r-- 1 xxxxx dba    44 Jun 25 19:07 tmp_par10_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par1_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par2_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par3_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par4_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par5_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par6_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par7_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par8_tab_parall.sh
-rw-r--r-- 1 xxxxx dba    43 Jun 25 19:07 tmp_par9_tab_parall.sh
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档