kettle查询mysql获取uuid_kettle生成主鍵UUID和調用轉換作業

kettle

項目中使用軟件,我的感覺是不必追求最新版,穩定是優先考慮的。3.2版本也是不錯的。使用中感覺kettle總體表現還是不錯的,使用方式也都比較好理解。但其中個別的地方還是給初學者制造了些小麻煩。

以下是我的一點經驗:

1. 資源庫在原有數據庫中建立了很多Kettle的表,建議最好不用,就用文件存儲

2. 參數的傳遞問題

Job 定時任務的時候,可以在其所包含的Transformation中,由“獲取系統信息”組件定義時間參數,由“表輸入”

組件的SQL動態獲取。

b5ff3e2e2c05617f0ae2ebfcf7b67a9f.png

不過SQL中的參數不能用${param}這種形式獲取,而是用?來代替。其中的緣由可以參見官方FAQ里面Argument 和 variables 的區別。

b7bf7c8860dd1756be7a990b5040b715.png

3. UUID的生成

如果你的ID是UUID,需要kettle來生成。就用“腳本”里面的“Modified JavaScript Value”組件,代碼如下:

Js代碼  370af1666549948d8d16a835cf2a683c.png

//Script here

function UUID(){

this.id = this.createUUID();

}

UUID.prototype.valueOf = function(){ return this.id; }

UUID.prototype.toString = function(){ return this.id; }

UUID.prototype.createUUID = function(){

var dg = new Date(1582, 10, 15, 0, 0, 0, 0);

var dc = new Date();

var t = dc.getTime() - dg.getTime();

var h = '';

var tl = UUID.getIntegerBits(t,0,31);

var tm = UUID.getIntegerBits(t,32,47);

var thv = UUID.getIntegerBits(t,48,59) + '1';

var csar = UUID.getIntegerBits(UUID.rand(4095),0,7);

var csl = UUID.getIntegerBits(UUID.rand(4095),0,7);

var n = UUID.getIntegerBits(UUID.rand(8191),0,7) +

UUID.getIntegerBits(UUID.rand(8191),8,15) +

UUID.getIntegerBits(UUID.rand(8191),0,7) +

UUID.getIntegerBits(UUID.rand(8191),8,15) +

UUID.getIntegerBits(UUID.rand(8191),0,15);

return tl + h + tm &

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值