talend的常用控件使用教程

时间:2022-08-31 20:23:22

文章仅供内行人参考。

1、建立作业,然后在“元数据”下,配置数据库连接。

2、元数据。元数据是将常用的schema“结构”(即数据结构,或者是数据库的表结构)。在这里配置后,对常用的配置,可以免得以后在作业设计时再配置。

3、input是针对该软件的input,实际是数据库的抽取功能;output,实际是写入功能。

4、如果想input到另外一个数据库的output,那么必须二者的schema结构一模一样,或者基本一样,如果只是名称不一样,可以在output的结构中,将名称改为和input一样。
    否则,就只有使用控件:tmap了。

5、对于时间戳等只有一条记录的,可以使用 tContextLoad 上下文控件。只有用这个控件后,才可以把变量写入程序。当然,该变量是要事先在左侧的“上下文”中定义的。

6、对于循环,使用loop控件。

7、对于要使用多个拉线时,可以右键控件,然后选择“触发”-->“运行完成后”(OnComponentOK)。

8、tLogCatcher,可以捕捉到程序在die时的各种错误,并写入到你的数据库中。


下面是我的上篇文章“talend的传值”,我复制了过来。

1、如果你想写到context中去,就要先在“上下文”中定义变量,并拖到作业中;无论你如何从数据库提取哪些字段,都必须要有key和value字段(其中key外面要用中括号 [ ],否则key作为数据库关键字无法引用,如:select 'abc' value,'mykey' [key] ),然后还要利用 tcontextLoad 控件来引入。引入后,引用方法:context.mykey。
    这个步骤是必须的,因为tContextLoad就是做这个工作的,完了之后系统会提示: tContext_load_1 set key "mykey" with value "abcdefg"

2、如果你不想用context,也可以,但一般要用到tmap了,引用方法为:row1.x 。当然,如果不用tmap,就要保证导出的结构和原有的结构一样才行。


控件的连接一般使用2种:

1、用右键拖到另外一个控件上,这是用的“主线”方法,默认的。

2、右键某控件,然后选择“触发器”--> “组件运行正常”。


每写完一段sql语句,都要按“Guess schema”按钮,用来自动完成结构。还有oracle的value等会自动变成大写,你还要改成小写才行,因为java对大小写敏感。


talend,我觉得与另外一个ETL数据交换工具kettle相比,kettle更简洁、简单、高效。kettle我不用看任何教程就能上手,比如数据更新,从来没有使用过,但直接就会配置,但同样的功能,talend却要复杂得多,还要使用output,没有更新控件 。而且,我试验了一下,在抽取数据时,kettle基本能保持在2000多条/秒,而talend却1000多一点点,有时只有600多条/秒。但最终talend也有2个最大的优势:1、稳定。kettle,我抽取同样的数据(每天2000万条),只能运行1天多,就要死;而talend现在运行了5天了,还没有出错,更重要的是,它还有死程序报警日志,可以将报错内容以最快速度通知我。