Talend抽数工具使用整理

Talend抽数工具使用整理

    • 使用talend 创建一个作业步骤流程如下:
    • Talend组件的应用介绍整理
    • Talend job上线作业的基本配置信息

使用talend 创建一个作业步骤流程如下:

–首先配置作业中使用到的数据库连接(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/[email protected]~~ 
beeline -u "jdbc:hive2://~~admin01.cdhtest.bank.cn:10000/;principal=hive/[email protected]" --color=true --maxWidth=10000 --showHeader=true~~ 

Talend  
Tjava 组件自定义java 中
使用context.put("result_status", "1");  加载到类中的key 值 使用context.get(result_status) 得到键值
写在上下文中的变量可以通过 context.result_status得到

Talend组件的应用介绍整理

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);

Talend job上线作业的基本配置信息

Teland 打包有问题替换 :\Talend-Studio\studio\configuration.m2下的库文件

检查日切配置: (组件getCutDate)

日切是一个tac的定时job 查bigdata的oracle数据库,如果记入日切job上下文的所有系统(例如:s00 s15 s16)的日常卸数表,在数据库的schedu_log表中都有两条成功数据,也就是代表着今天所有大数据的跑批都成功,日切就会到达下一天。

待修定补充……

你可能感兴趣的:(S0-DD-大数据,hive,hadoop,数据仓库,etl,linux)