Kettle實現動態SQL

壹頁書發表於2014-09-15
Kettle是一種開源的ETL工具

需求:
每天新建一個日誌表,使用Kettle匯出最新一天的資料。
模擬環境如下
create table tab_20140901 (id varchar(20));
create table tab_20140902 (id varchar(20));
create table tab_20140903 (id varchar(20));
create table tab_20140904 (id varchar(20));
insert into tab_20140901 values(1);
insert into tab_20140902 values(2);
insert into tab_20140903 values(3);
insert into tab_20140904 values(4);

首先,建立一個Job

獲取最新的表的轉換:


SQL:

  1. SELECT table_name
  2. FROM information_schema.tables
  3. WHERE table_schema = 'mvbox'
  4.     AND str_to_date(substr(table_name, 5), '%Y%m%d') = (
  5.         SELECT MAX(str_to_date(substr(table_name, 5), '%Y%m%d'))
  6.         FROM information_schema.tables
  7.         WHERE table_schema = 'mvbox'
  8. );



匯出最新表的資料的轉換

他先獲取上個轉換的變數.


寫入變數,實現動態SQL


執行Job,檢視SQL檔案輸出如下
INSERT INTO t(id) VALUES ('4');

後來經過測試,第二個轉換不使用 "獲取變數"也可以


參考:
http://blog.csdn.net/rotkang/article/details/21008271

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1270110/,如需轉載,請註明出處,否則將追究法律責任。

相關文章