数据转换
转换任务用来完成数据处理过程中的每一项具体工作,是数据整合的最小工作单元,不同类型的任务完成不同类型的工作,多个任务组合起来
就构成了一个作业流程,作业流程可以人工或自动执行,从而完成一系列数据整合操作。数据转换管理列表显示所有任务的主要信息,使开发
人员可以新建和维护各种任务,包括数据抽取、执行SQL、变量设置、调用存储过程、执行外部程序、发送邮件、导出文本文件、执行Kettle
文件等。
1.) 数据抽取任务
数据抽取任务,负责完成两个数据源之间或同一个数据源内部的数据采集转换,比如用于将各源数据抽取到数据中心的ODS缓冲层。数据抽取
根据源和目标的不同分为异构抽取和同构抽取,所谓异构数据源就是不在同一台服务器或不是同一种数据库,无法直接采用SQL语句进行数据
转换的数据源,异构抽取任务采用将源数据先抽取至内存缓冲区,再分批次加载到目标数据库的方式。同构转换任务实现同一数据连接下的不
同表之间的数据转换,通常用于对目标数据的清洗、标准化、汇总和指标计算。和异构抽取任务不同的是,这些转换实际都是在同一个数据库
中执行SQL语句完成的,另外有些数据库提供透明网关、DBLINK、链接服务器等方式来访问异构的数据库,这种情况下,只要用目标数据库
的SQL语句可以直接完成两个表的数据转换操作,也可以认为是同构转换。数据抽取任务中源表用来表示数据的来源,可以多选,目标表只能
选择一个,具体转换规则需编写源数据库Select脚本,可指定目标表删除规则,系统会根据这些配置自动组装增删改语句,完成数据的抽取导
入,转换脚本为空时,系统也会自动根据源表生成一个SQL语句。在脚本中也可以添加变量,用${变量名}表示,任务执行时会将变量名替换
成实际值。
2.)执行SQL任务
一些较为复杂的同构数据转换无法采用DELETE+INSERT的数据抽取任务完成,可以使用执行SQL任务直接执行一批SQL语句实现,SQL语句
可以是DDL语句,也可以是DML语句,也可以是一段SQL代码块,中间可以包含声明变量、判断、循环、异常处理等语句,由于语句中可以植
入变量,绝大多数情况下,执行SQL任务可以取代调用存储过程完成数据转换,避免在数据库中创建各种存储过程。
3.)变量赋值任务
在对数据进行转换任务时,SQL语句或脚本中需要使用变量来代替某个可能变化的值,如数据日期或者存储过程返回的数值,变量赋值任务可
以调用数据库中的sql语句来为一个变量进行赋值操作,其它任务在实际执行中会用每次动态赋予的值来替换脚本中的变量名。
4.)调用存储过程任务
数据库的存储过程来完成某项数据处理任务,在任务中配置好调用的存储过程名称和传入传出参数,变量名作为参数传入,参数名称就是用于
传递的变量名称,传出参数也可以对变量进行赋值。有些类型数据库存储过程可以返回值(需要选择返回值类型),可以填写变量名来获取存
储过程的返回值。
5.)调用外部命令任务
外部命令指在命令行状态下可以执行的程序和命令,与平台无关,包括shell程序、windows批处理、Unix命令等,通过执行外部程序来实现一
些特殊的数据整合操作,命令行语句包含全路径+程序文件名+参数(变量),程序执行完成后可以通过返回值来判定该任务是否执行成功。
6.)导出文本任务
导出文本任务执行select语句将数据查询出来并保存至文本文件中,文件格式可以为txt、csv、xls,路径和文件名可嵌入变量。
7.)发送邮件任务
发送邮件任务通常用于作业自动执行完成后将出错信息和通知信息发送到管理者的邮箱中。
8.)执行Kettle文件任务
支持调用服务器中的kettle转换或作业文件,包括文件直接调用、调用数据资源库和调用文件资源库三种方式。
9.)执行JavaScript任务
系统支持执行javascript脚本,可用于给变量赋值或者调用java文件等。
10.)执行WebService任务
支持从一个指定的URL中以Get或Post方式获取xml或json数据,解析后导入目标数据库的表中,URL可以是Http协议的Webservice地址,也可以是本地文件。
11.)FTP上传下载任务
系统支持调用服务器中的kettle转换或作业文件,支持变量传输,服务器中不需要有kettle的运行环境。
京ICP备15044502号 北京昊合数据科技有限公司 版权所有 北京市朝阳区住邦2000商务中心3号楼2301室