需求:kettle抽取線上資料到另外一個資料庫執行個體(目标資料源),然後用帆軟(finereport)拉取展示目标資料的資料,原則上報表一般不允許拉取線上資料庫,防止大批量資料導緻線上執行個體報警影響現網業務。
現存問題:線上正常企業,共6000+企業的資料(非正常企業6萬多家,當機資料等等),包括已經付費的企業。現存問題,拉取資料緩慢,經百度和同僚等等一系列的咨詢,以及觀察kettle日志得知 job是串行的 一個企業運作完之後才會運作另外一個企業,是以伺服器上運作的速度極其緩慢,定時任務開啟每天晚上0晨執行,結果9個多小時,隻運作了600多家企業,被上司噴的體無完膚。。。。
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示 對應的解決方案:對企業做分片處理 以及kettle并發執行對企業表的id對30取模,這樣就能均勻的講企業資料分散為30個資料段,對30個資料段做并發處理,也就是啟動30個線程并發同時執行,伺服器取三台,每台伺服器上跑10條線如圖所示。
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示 每天晚上0晨任務啟動,觀察日志基本都是運作2個小時不到,資料就能全部運作完畢。linux定時任務:使用crontab 将啟動指令放入即可。
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示 對目标資料源的監控共87萬左右張表(show tables)
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示 最後一步 帆軟展示需要動态傳參 隻需要在浏覽器中拼接參數即可
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示 最後一張長屏圖結尾
kettle使用指令行的方式執行多個job_kettle抽取資料&&finereport資料展示