黄小妹22个人博客

愿居于一城,与卿所见美好......

推荐文章

6月12日凌晨,周杰伦新歌《Mojito》终于上线了,欢迎下载

    6月12日凌晨,周杰伦新歌《Mojito》终于上线了。MV中周杰伦身穿具有异国情调的夏衫,清爽帅气,与一群好友畅游古巴,有一股浓浓的古巴风味。在12号凌晨一点多的时候,周杰伦个站就晒出一张截图,庆祝周杰伦新歌《Mojito》在QQ音乐平台上销量突破100万。

      Mojito-周杰伦(JayChou)歌词:

      词:黄俊郎

      曲:周杰伦

      麻烦给我的爱人来一杯Mojito

      我喜欢阅读她微醺时的眼眸

      而我的咖啡糖不用太多

      这世界已经因为她甜得过头

      没有跟她笑容一样浓郁的雪茄

      就别浪费时间介绍收起来吧

      拱廊的壁画旧城的涂鸦

      所有色彩都因为她说不出话

      这爱不落幕忘了心事的国度

      你所在之处孤单都被征服

      铁铸的招牌错落着就像

      一封封城市献给天空的情书

      当街灯亮起Havana漫步

      这是世上最美丽的那双人舞

      缤纷的老爷车跟着棕榈摇曳

      载着海风私奔漫无目的

      古董书摊漫着时光香气

      我想上辈子是不是就遇过你

      喧嚣的海报躺在慵懒的阁楼阳台

      而你是文学家笔下的那一片海

      麻烦给我的爱人来一杯Mojito

      我喜欢阅读她微醺时的眼眸

      而我的咖啡糖不用太多

      这世界已经因为她甜得过头

      这爱不落幕忘了心事的国度

      你所在之处孤单都被征服

      铁铸的招牌错落着就像

      一封封城市献给天空的情书

      当街灯亮起Havana漫步

      这是世上最美丽的那双人舞

      铁铸的招牌错落着就像

      一封封城市献给天空的情书

      当街灯亮起Havana漫步

      这是世上最美丽的那双人舞

    阅读全文>>

作者:黄小妹22分类:【日记浏览(129评论(0

2020-06-12 13:51:00

职场潜规则:不要在一个公司呆太久,否则你会遇到以下大麻烦

    职场潜规则:不要在一个公司呆太久,否则你会遇到以下大麻烦

    假如一名职场人在同一家企业工作了5-8年,还仅仅是小职员,薪资水平也不高,这说明这个人在职场上是没有竞争力的。即便跳槽也不能获得好工作,职业生涯也难以迎来质的飞跃。那么,在一家公司中工作多久跳槽合适呢?

    众所周知,无论是HR还是猎头,相当看重职场人士的“忠诚度”,因为谁也不想花费了大价钱培养的员工跳槽到竞争对手公司。

    一般HR和猎头会认为一个人在同一个单位工作年限低于2年往往会被看做“不够忠诚”;而不到1年,便被视为“稳定性差”。也就是说,工作的年限过长或者过短都会令HR和猎头不喜,而在同一家公司工作三到五年,如果工资没有较大的涨幅,职位也没有提升,就可以考虑内部转岗或者通过外部跳槽来增值,否则个人的价值和能力不进则退。

    为什么是3-5年?

    不管是同行同岗还是跨行换岗,一个人在进入一个新的工作环境,第一年往往是“打酱油”的熟悉过程;第二年才可能慢慢进入角色,真正融入企业文化,熟悉自己产品的内涵;经过前2年的积累,到了第三年才真正出成绩,当然这也是职位和薪资提高的关键时期。

    如果跳槽后进入一个同行同岗的新环境,那么“打酱油”的时间会缩短,但不会少于6个月,基本也是在第三年才能实现职位和待遇的较大提高。而且主管对于员工的期许也多集中在第二、三年。因此,进入一个新环境后的第三年如果做不出较大成绩,哪怕个人不主动请辞,恐怕主管也会坐不住。

    三年也是大多数正规企业第一次签合同的期限,如果被公司认可,那么接下来将会是合同续签。

    如果个人表现很优异,到了第三年没有获得职位的提升(或是因为内部没有空缺职位),请不要在合同到期日贸然选择不续约。毕竟做生不如做熟,继续巩固一下自己的工作业绩,在第四、五年时看是否有提升的机会?

    如果你有幸在第四或者第五年被内部提拔,那么继续在这个岗位上,仍旧以三到五年为限,为自己设定下一个提升目标。

    如果到了第四、五年,成绩突出却没有得到更高的职位或者薪水,那么最明智的选择就是跳槽。因为眼下已经处于职业生涯的瓶颈期,而且个人的求胜欲望和上进心处于至高点,此时跳槽不仅可以得到更高的职位和待遇,也可以继续延续个人的求胜欲望。

    如果选择混日子或者安于现状,那么你将会面临“生于忧患,死于安乐”的危险时刻,因为缺乏更高的发展空间,将慢慢削弱个人的求胜欲望,时间也将慢慢钝化个人的上进心,一旦这样的日子持续超过2年,一个人的锐气将被磨平,再想重拾当年的雄风,很难。在这样的状态下跳槽,你很难有信心去博得一个更高的职位和薪水。因为企业更喜欢充满激情、充满创造力的头脑,而不是安于现状、不思进取的心。

    在同一个公司同一个职位上一旦错过了3-5年的跳槽黄金期,职场人对安逸的需求大于上进求胜的欲望,随着年龄的增大、家庭琐事的负担,人的惰性将越来越束缚内心,最终沦为朝九晚五混日子的上班族。

    有的人尽管职位从职员到了主管,又到了经理,但是薪水每年以5~8%的比率增长,超过5年依旧缺乏竞争力。很多人不再敢于去接受新事物,而安于每年5~8%的涨幅。但在跳槽时,HR只会以你当下的薪资为起点,然后增长10~30%,因为你的工作年限越长且待遇较低,对HR而言,说明你的价值也就在这个水平上,不会给你超过50%的薪资增长幅度。

    3-5年,尤其是在第四或者第五年,员工刚刚过了对原单位的新鲜感,呆腻了老环境,这时跳槽到一个新的环境将继续刺激自己的创造思维。职场人士也就很难继续吃老本,只能通过不断学习来提高自己,进一步巩固个人能力,于己于企业都是一个双赢的局面。

    阅读全文>>

作者:黄小妹22分类:【日记浏览(86评论(1

2020-06-11 22:59:58

最全正则表达式

    常用正则表达式

    特殊表达式

    1.货币格式: '123123211312.333333'.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g, ',$1') //输出 123,123,211,312.333333  psTCL 大牛推荐

       匹配中文字符的正则表达式: [^u4e00-u9fa5]   
      评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 
      匹配双字节字符(包括汉字在内)[^x00-xff] 
      评注:可以用来计算字符串的长度(一个双字节字符长度计2ASCII字符计1 
      匹配空白行的正则表达式:ns*r 
      评注:可以用来删除空白行 
      匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? /> 
      评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 
      匹配首尾空白字符的正则表达式:^s*|s*$ 
      评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 
      匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
      评注:表单验证时很实用 
      匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 
      评注:网上流传的版本功能很有限,上面这个基本可以满足需求 
      匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
      评注:表单验证时很实用 
      匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 
      评注:匹配形式如 0511-4405222 021-87888822 
      匹配腾讯QQ号:[1-9][0-9]{4,} 
      评注:腾讯QQ号从10000开始 
      匹配中国邮政编码:[1-9]d{5}(?!d) 
      评注:中国邮政编码为6位数字 
      匹配身份证:d{15}|d{18} 
      评注:中国的身份证为15位或18 
      匹配ip地址:d+.d+.d+.d+ 
      评注:提取ip地址时有用 
      匹配特定数字: 
    ^[1-9]d*$ //匹配正整数 
    ^-[1-9]d*$ //匹配负整数 
    ^-?[1-9]d*$ //匹配整数 
    ^[1-9]d*|0$ //匹配非负整数(正整数 + 0 
    ^-[1-9]d*|0$ //匹配非正整数(负整数 + 0 
    ^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数 
    ^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数 
    ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数 
    ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0 
    ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0 
      评注:处理大量数据时有用,具体应用时注意修正 
      匹配特定字符串: 
    ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 
    ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 
    ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 
    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 
    ^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 
      在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 
      只能输入数字:“^[0-9]*$” 
      只能输入n位的数字:“^d{n}$” 
      只能输入至少n位数字:“^d{n,}$” 
      只能输入m-n位的数字:“^d{m,n}$” 
      只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$” 
      只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$” 
      只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$” 
      只能输入非零的正整数:“^+?[1-9][0-9]*$” 
      只能输入非零的负整数:“^-[1-9][0-9]*$” 
      只能输入长度为3的字符:“^.{3}$” 
      只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” 
      只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” 
      只能输入由26个小写英文字母组成的字符串:“^[a-z]+$” 
      只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” 
      只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” 
      验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 
      只能包含字符、数字和下划线。 
      验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+” 
      只能输入汉字:“^[u4e00-u9fa5],{0,}$” 
      验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 
      验证InternetURL“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$” 
      验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$” 
      正确格式为:“XXXX-XXXXXXX”“XXXX-XXXXXXXX”“XXX-XXXXXXX” 
    “XXX-XXXXXXXX”“XXXXXXX”“XXXXXXXX” 
      验证身份证号(15位或18位数字):“^d{15}|d{}18$” 
      验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”“1”“12” 
      验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 
      正确格式为:“01”“09”“1”“31” 
      匹配中文字符的正则表达式: [^u4e00-u9fa5] 
      匹配双字节字符(包括汉字在内)[^x00-xff] 
      匹配空行的正则表达式:n[s| ]*r 
      匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 
      匹配首尾空格的正则表达式:(^s*)|(s*$) 
      匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
      匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 
    (1)应用:计算字符串的长度(一个双字节字符长度计2ASCII字符计1 

     

    String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;} 
    

    (2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现 
     

    String.prototype.trim = function() 
    { 
       return this.replace(/(^s*)|(s*$)/g, ""); 
    } 


    (3)应用:利用正则表达式分解和转换IP地址 
     

    function IP2V(ip) //IP地址转换成对应数值 
    { 
       re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式 
       if(re.test(ip)){ 
          return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 
       } 
       else { 
          throw new Error("Not a valid IP address!") 
       } 
    } 


    (4)应用:从URL地址中提取文件名的javascript程序 
    s="http://www.9499.net/page1.htm"; 
    s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ;//Page1.htm 
    (5)应用:利用正则表达式限制网页表单里的文本框输入内容 
      用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^u4E00-u9FA5]/g,''))" 
      用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^uFF00-uFFFF]/g,''))" 
      用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste= "clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^d]/g,''))" 
      用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^d]/g,''

    阅读全文>>

作者:黄小妹22分类:【编程浏览(188评论(0

2019-10-15 16:41:07

最全正则表达式

    常用正则表达式

    特殊表达式

    1.货币格式: '123123211312.333333'.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g, ',$1') //输出 123,123,211,312.333333  psTCL 大牛推荐

       匹配中文字符的正则表达式: [^u4e00-u9fa5]   
      评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 
      匹配双字节字符(包括汉字在内)[^x00-xff] 
      评注:可以用来计算字符串的长度(一个双字节字符长度计2ASCII字符计1 
      匹配空白行的正则表达式:ns*r 
      评注:可以用来删除空白行 
      匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? /> 
      评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 
      匹配首尾空白字符的正则表达式:^s*|s*$ 
      评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 
      匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
      评注:表单验证时很实用 
      匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 
      评注:网上流传的版本功能很有限,上面这个基本可以满足需求 
      匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
      评注:表单验证时很实用 
      匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 
      评注:匹配形式如 0511-4405222 021-87888822 
      匹配腾讯QQ号:[1-9][0-9]{4,} 
      评注:腾讯QQ号从10000开始 
      匹配中国邮政编码:[1-9]d{5}(?!d) 
      评注:中国邮政编码为6位数字 
      匹配身份证:d{15}|d{18} 
      评注:中国的身份证为15位或18 
      匹配ip地址:d+.d+.d+.d+ 
      评注:提取ip地址时有用 
      匹配特定数字: 
    ^[1-9]d*$ //匹配正整数 
    ^-[1-9]d*$ //匹配负整数 
    ^-?[1-9]d*$ //匹配整数 
    ^[1-9]d*|0$ //匹配非负整数(正整数 + 0 
    ^-[1-9]d*|0$ //匹配非正整数(负整数 + 0 
    ^[1-9]d*.d*|0.d*[1-9]d*$ //匹配正浮点数 
    ^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数 
    ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数 
    ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0 
    ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0 
      评注:处理大量数据时有用,具体应用时注意修正 
      匹配特定字符串: 
    ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 
    ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 
    ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 
    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 
    ^w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 
      在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下: 
      只能输入数字:“^[0-9]*$” 
      只能输入n位的数字:“^d{n}$” 
      只能输入至少n位数字:“^d{n,}$” 
      只能输入m-n位的数字:“^d{m,n}$” 
      只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$” 
      只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$” 
      只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$” 
      只能输入非零的正整数:“^+?[1-9][0-9]*$” 
      只能输入非零的负整数:“^-[1-9][0-9]*$” 
      只能输入长度为3的字符:“^.{3}$” 
      只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” 
      只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” 
      只能输入由26个小写英文字母组成的字符串:“^[a-z]+$” 
      只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$” 
      只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$” 
      验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间, 
      只能包含字符、数字和下划线。 
      验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+” 
      只能输入汉字:“^[u4e00-u9fa5],{0,}$” 
      验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$” 
      验证InternetURL“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$” 
      验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$” 
      正确格式为:“XXXX-XXXXXXX”“XXXX-XXXXXXXX”“XXX-XXXXXXX” 
    “XXX-XXXXXXXX”“XXXXXXX”“XXXXXXXX” 
      验证身份证号(15位或18位数字):“^d{15}|d{}18$” 
      验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”“1”“12” 
      验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 
      正确格式为:“01”“09”“1”“31” 
      匹配中文字符的正则表达式: [^u4e00-u9fa5] 
      匹配双字节字符(包括汉字在内)[^x00-xff] 
      匹配空行的正则表达式:n[s| ]*r 
      匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/ 
      匹配首尾空格的正则表达式:(^s*)|(s*$) 
      匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
      匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 
    (1)应用:计算字符串的长度(一个双字节字符长度计2ASCII字符计1 

     

    String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;} 
    

    (2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现 
     

    String.prototype.trim = function() 
    { 
       return this.replace(/(^s*)|(s*$)/g, ""); 
    } 


    (3)应用:利用正则表达式分解和转换IP地址 
     

    function IP2V(ip) //IP地址转换成对应数值 
    { 
       re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式 
       if(re.test(ip)){ 
          return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1 
       } 
       else { 
          throw new Error("Not a valid IP address!") 
       } 
    } 


    (4)应用:从URL地址中提取文件名的javascript程序 
    s="http://www.9499.net/page1.htm"; 
    s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ;//Page1.htm 
    (5)应用:利用正则表达式限制网页表单里的文本框输入内容 
      用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^u4E00-u9FA5]/g,''))" 
      用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^uFF00-uFFFF]/g,''))" 
      用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste= "clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^d]/g,''))" 
      用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^d]/g,''

    阅读全文>>

作者:黄小妹22分类:【编程浏览(174评论(0

2019-10-15 16:40:54

kettle集群搭建

    Kettle — 集群使用

    在Kettle中合理的使用集群可以加快执行的速度,并且还能在部分服务器宕机的情况下继续使用。

    在Kettle中集群是由一个主Carte服务器和多个从Carte服务器组成。在执行转换时,主服务器负责分发跟踪任务和收集结果总汇,

    从服务器负责具体的转换执行。在Kettle中,如果主服务器也宕机的话并不存在服务器(类似于redis、zookeeper等)重新选举的功能,

    也就是说一旦主服务器宕机,则Kettle集群就不能使用了。

    https://blog.csdn.net/u013468915/article/details/82629059

    https://blog.csdn.net/liuxiangke0210/article/details/57436115

    使用场景

    需要kettle集群的主要场景包括以下两点:

             1.转换中需要大量的计算以及其他耗时步骤

             2.需要系统持续不断的运行

    1.Carte集群搭建

    在Kettle的官方文档上说Carte的集群部署分为静态模式和动态模式,由于静态模式和动态模式部署区别不大,

    这里就直接使用比较灵活的动态模式。Carte集群的搭建还是非常简单的,我这里以本地搭建集群为例。

    1.首先是将JDBC驱动程序拷贝到主从服务器上(如果是本地搭建不需要)

    2.进入到PDI的pwd目录下,如下所示。

    先配置master的xml文件。如下所示,所有的属性都非常的容易理解。

    对于从服务器配置也没有什么特别的地方,我们需要配置指定的主服务器。

    3.运行Carte,并指定配置文件,依次执行所有系统的carte.bat文件,并指定对应的集群配置文件,

     

    Java代码启动方式:找到Carte.java类的main方法

    出现端口监听后则代表启动成功。

    这样将所有的Carte启动即可。

    3.1 本例配置的是一主三从。即一台master,三台slave

    对应启动路径:

    主机(master)--à G:\2018Kettle开发使用\data-integration   启动:carte.bat ./pwd/carte-config-8080.xml

    Slave-1(从服务器) --àE:\javase-workspace\data-integration    启动:carte.bat ./pwd/carte-config-8081.xml

    Slave-2(从服务器) --à D:\myeclipseCI7-workspace\workspace\kettle7.1   启动:找到carte.java,启动main方法:

    2.在转换中配置集群

    上面是搭建了Carte集群,下面是对转换进行集群配置调用。

    1.配置子服务器

    对子服务配置很简单,基本都是Carte服务器连接的信息。

    2.Kettle集群schemas配置

    schemas配置同样很简单,不过有一点要注意的,就是需要勾上Dynamic cluster选项。因为我们是动态集群,

    如果有部分从服务器失去连接,也能执行。如果没有勾选,就以静态集群使用,如果有部分服务器失去连接,就会报connect refused错误。

    3.对需要集群运行的步骤设置集群运行。

    3.集群运行配置

    使用集群启动,需要先进行启动配置,选择remote中的Clustered。

    然后运行的时候选择我们刚刚配置的集群运行模式即可。从日志中我们可以看到主服务器只是做任务转发和合并的工作。

    如果不是集群的步骤,则指定一个从服务器执行;如果是集群步骤则将输入的流分均分给从服务器执行。

    下面是主机监控monitor从服务器日志状态:

    下面是主机监控monitor从服务器日志状态:

    从服务器1:

    从服务器2:

    运行效果图:

    官方链接:

    https://help.pentaho.com/Documentation/8.1/Products/Data_Integration/Carte_Clusters/Setup

    https://help.pentaho.com/Documentation/8.1/Products/Data_Integration/Data_Integration_Perspective/Transformations#Run_Configurations

    阅读全文>>

作者:黄小妹22分类:【开发浏览(219评论(1

2019-09-25 13:43:30

Ext.grid.property.Grid的配置

    Ext.application({
        name : 'Fiddle',
        launch : function() {
         var states = Ext.create('Ext.data.Store', {
          fields: ['abbr', 'name'],
          data : [
            ["AL", "Alabama"],
            ["AK", "Alaska"],
            ["AZ", "Arizona"]
         ]
         });
    
    // Create the combo box, attached to the states data store
    
      Ext.create('Ext.grid.property.Grid', {
        title: 'Properties Grid',
        width: 300,
        renderTo: Ext.getBody(),
        source: {//数据源的数据对象
            Created: Ext.Date.parse('10/15/2006', 'm/d/Y'),
            Available: false,
            Description: "Alabama"
        },
        sourceConfig: {//此选项允许为gird中的每个字段设置各种配置。这些配置都不是必需的
            Created: {
                editor: Ext.create('Ext.form.field.Time', {selectOnFocus: true}),
                displayName: 'Start Time'// 自定义Created的字段名
            },
            Description:{
             editor:Ext.create('Ext.form.ComboBox', {//下拉框选项
               store: states,
               queryMode: 'local',
               displayField: 'name',
               valueField: 'abbr',
               })
             },
            }
         });
        }
    });

    有常用方法setSource(source,[sourceConfig]) 

    可以动态设置属性grid的数据对象,及其配置项,此方法将替换任何现有数据

    阅读全文>>

作者:黄小妹22分类:【Extjs浏览(367评论(1

2018-11-08 16:48:46

jQuery 实用方法介绍-1

     .closest()

    closest()

    从当前元素开始

    沿 DOM 树向上遍历,并返回匹配所传递的表达式的第一个单一祖先

    返回包含零个或一个元素的 jQuery 对象

    parents()

    从父元素开始

    沿 DOM 树向上遍历,并返回匹配所传递的表达式的所有祖先

    返回包含零个、一个或多个元素的 jQuery 对象

    var thisComponentId=$(t).closest('[id][cmptype]').attr('id');
    返回被选元素的第一个祖先元素:
    $(selector).closest(filter)
    返回使用 DOM context 查找的 DOM 树中的第一个祖先元素:
    $(selector).closest(filter,context)

    .not()

    not() 方法返回不符合一定条件的元素。

    该方法让您规定一个条件。不符合条件的元素将从选择中返回,符合条件的元素将被移除。

    该方法通常用于从被选元素组合中移除一个或多个元素。

    提示:not() 方法是与 filter() 方法相对的。

    语法

    $(selector).not(criteria,function(index))

    注意区别:

    css中:not()选择器用法

    :not 伪类选择器可以筛选不符合表达式的元素,:not(selector) 其中的selector为css选择器

    阅读全文>>

作者:黄小妹22分类:【jquery浏览(262评论(5

2018-11-07 13:09:19