ETL工具

2017-05-25  本文已影响0人  PeterWang2017

1.Kettle

1.多多使用获取字段按钮
2.表输入中的数字字段(如:COUNT(1))会自动转换为小数点后一位,可以在获取变量时转为Integer,或者to_char(count(1))
3.从表输入如果SQL中有变量,设置环境变量时需要手动获取变量
4.读取环境变量需要和设置环境变量在不同的转换中
5.JNDI配置在data-integration\simple-jndi\jdbc.properties中

1.配置例子

zzb_oracle_username/type=javax.sql.DataSource
zzb_oracle_username/driver=oracle.jdbc.driver.OracleDriver
zzb_oracle_username/url=jdbc:oracle:thin:@ip:port:ORCL
zzb_oracle_username/user=username
zzb_oracle_username/password=password

6.调试转换时可以在执行时给变量赋值并调节日志级别
7.[添加文件到结果文件中]中需点击增加才能添加文件
8.linux上job中使用hadoop copy files下载文件到本地,通过shell执行下载不了,通过UI可以(有可能是个bug,坑了我好几天ToT)

1.暂时可以变通使用FTP下载对象

9.javascript的date2str格式化时HH代表24小时制hh是12小时制
10.转换中的步骤是并行执行的(以为有箭头相连就有顺序了,细心还是好呀~)
11.etl调用存储过程
12.转换中的DB存储过程中指定的存储过程如果返回值是小数则类型需要指定为BigNumber,否则有可能会出现截位现象

13.实现循环执行

1.转换参照1
2.作业参照2
3.说明

1.对于作业表输入会转换为列名,SQL脚本不可以,而转换无此限制

14.linux安装pentaho(被日立收购了)

1.参照1
2.参照2

15.关于执行SQL脚本组件

16.关于csv导入数据库

16.1.可以通过计算器计算生成新列

16.1.1.计算器可以通过增加一个Set field to constant value A来设置常数,而后参见运算
16.2.通过增加常量新增列,但值为常量
16.3.通过switch/case筛选数据
16.4.通过记录关联(笛卡尔输出)新增列,可以使用变量

17.调用存储过程,传入的参数名和顺序必须和procedure一致

18.Kettle教程

1.Kettle手册

19.Kettle下载链接

1.社区版

20.执行SQL语句中【变量替换】替换的是SQL中的?,不支持${}
21.设置命名参数
22.作业的sql和转换的执行sql语句如想执行以下sql需要选择将SQL脚本作为一条语句发送Execute as a single statement

begin
    for cur in (select 'drop table '||table_name txt
                from user_tables)
    loop
     execute immediate cur.txt;
    end loop;

end;

23.解决kettle去除空格类型设置不上
24.解决kettle抽取Excel字段添加.0

1.时间加.0可以通过设置时间格式去除

上一篇下一篇

猜你喜欢

热点阅读