–首先配置作业中使用到的数据库连接(Hive组件:tHiveConnection、oracle组件:tDBConnection、impala组件:tImpalaConnection)和表的对象(使用tjava组件)最后还需要建立一个警告(警告组件tWarn)用来捕获作业中的异常消息日志
1.先建立tPrejob(是一个开始组件)组件 用来触发需要执行的任务作业
2. .……
3.后置处理:tPostjob组件
Hive 认证:
#!/bin/bash
kinit -kt /opt/Talend-7.1.1/keytabs/hive.keytab hive/~~admin01.cdhtest.bank.cn@CDHTEST.BANK.CN~~
beeline -u "jdbc:hive2://~~admin01.cdhtest.bank.cn:10000/;principal=hive/admin01.cdhtest.bank.cn@CDHTEST.BANK.CN" --color=true --maxWidth=10000 --showHeader=true~~
Talend
Tjava 组件自定义java 中
使用context.put("result_status", "1"); 加载到类中的key 值 使用context.get(result_status) 得到键值
写在上下文中的变量可以通过 context.result_status得到
1、tLogRow : 作用:显示运行的数据结果,便于检测job的运行状况
2、tRunJob :作用:作为运行多个依赖的job的运行控件,单击job可以选择需要运行作业,双击直接运行跳转到这个job
3、tJava :作用:作为参数配置,判断条件控件使用。需要在控件编辑处,输入判断条件或参数信息
4、tMap : 作用:对输入流数据进行表关联(Join)、过滤(Filter)、转换(function);Join分为两种:Inner Join 和Left Outer Join。上图的关联条件是name,要把row5和out1的name连起来。catch lookup inner join reject,当它设置为true时,输出的是不符合内连接条件的数据。该条件对left join没效果,因为left join本来就是以左表为基础,这样就不会有匹配不上的。
5、tParallelize :作用:让不同的控件能并行运行
6、tUnite :作用:该控件是将来自不同来源的数据进行合并
7、tFileInputDelimited
8、tAggregateRow :功能: 接收一个流并根据一个或多个列聚合它。为每个输出行,提供聚合键和集合操作的相关结果(最小、最大值、和…)。
目的:帮助提供一组基于值或计算的度量。
9、 tFilterRow :tFilterRow 通过在选定的列上设置一个或多个条件来过滤输入行tFilterRow 在源数据上帮助参数化过滤器。
10、tPrejob :tPrejob开始执行一个预作业。tPrejob触发执行作业所需的任务
tPrejob是一个开始组件,它只能用于与下一个迭代连接一起使用组件。
应用场景,一般是连接数据库
11.tsetGlobaVar:设置全局变量
OnComponentOK
OnComponentOK:正确运行组件-只有上一个组件执行成功后才会执行下一个任务
主线连接:需要传值进来
Talend中java日期转换
Date oldDate = TalendDate.parseDate("yyyy-MM-dd", context.scheduleDate);
Date newDate1 = TalendDate.addDate(oldDate, -2, "dd") ;
String newDate2 = TalendDate.formatDate("yyyyMMdd", newDate1);
context.put("dirname",newDate2);
System.out.println("T+3日期:" + context.get("dirname"));
context.put("remoteDirectory", context.ftpDirectory);
OracleResultSet obj = (OracleResultSet)row9.obj;
Date dbSwitchDate = obj.getDate("SWDATE");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" );
context.scheduleDate = sdf.format(dbSwitchDate);
System.out.println("调度日期=" + context.scheduleDate + ";可执行日期=" + context.executableDate);
Teland 打包有问题替换 :\Talend-Studio\studio\configuration.m2下的库文件
检查日切配置: (组件getCutDate)
日切是一个tac的定时job 查bigdata的oracle数据库,如果记入日切job上下文的所有系统(例如:s00 s15 s16)的日常卸数表,在数据库的schedu_log表中都有两条成功数据,也就是代表着今天所有大数据的跑批都成功,日切就会到达下一天。
待修定补充……