ITPub博客

首页 > 应用开发 > IT综合 > Kettle实现动态SQL

Kettle实现动态SQL

原创 IT综合 作者:壹頁書 时间:2014-09-15 16:46:22 1 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1270110/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Kettle实现行转列
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339827