ETL-Talend开发技巧总结
更新时间:2023-03-15 06:54:01 阅读量: 教育文库 文档下载
- talend etl推荐度:
- 相关推荐
Talend开发技巧说明手册
应用产品数据部
ETL说明手册
目 录
一、Talend技术背景................................................................................................................................ 3 二、ETL包设计 .......................................................................................................................................... 3
2.1 子包设计 ..................................................................................................................................... 3 2.2 总包设计 ..................................................................................................................................... 4 2.3 调度管理方式 ............................................................................................................................. 6 三、ETL过程添加以及维护 ...................................................................................................................... 8
3.1 ETL过程添加 ................................................................................................................................ 8 3.2 ETL过程维护 ................................................................................................................................ 8 附录 1 执行参数获取............................................................................................................................... 9 附录 2 ETL日志信息表............................................................................................................................ 9 附录 3 ETL明细包配置信息表(UNI_ETL_INFO).................................................................................. 10 附录 4 ETL总包配置信息表.................................................................................................................. 11
ETL说明手册
一、Talend技术背景
单独的Talend一个JOB,可完成一个独立的数据处理过程,并导出为独立运行的作业脚本。作业脚本包含编译后可执行的JAR包,JAR包引用的类库以及操作系统的批处理命令文件(.bat或者.sh)。
Talend的tRunJob组件可以调用设计好的JOB,从而实现JOB间的调度。tRunJob的调度有两种:第一种是指定某一特定子包,并指定子包执行所需的的context全局变量的参数来源。第二种是可以选择多个子包,具体执行哪个包通过读取参数来识别。
BQW-ETL主要是利用第二种的调度模式,创建调度总包,在总包的tRunjob调度列表中添加所有可能调度的子包。通过查询后台数据库配置信息表返回的子包名传递给tRunjob组件,进行子包的灵活调度。
二、ETL包设计
2.1 子包设计
子包设计原则:
粒度到单表,有独立的读参模块,数据处理模块,写日志模块,可独立运行,在最后导出的可执行ZIP包中可替换,
每个数据表的作业包设计分为三个部分: ? 从XML文件获取执行相关参数
? 连接数据库,进行数据抽取,转换,加工,处理到目标表 ? 将ETL执行信息写入后台日志表(UNI_ETL_LOG) 设计流程图如下:
ETL说明手册
其他数据库扩展开发:
目前只支撑Oracle,MSSQL,后续如果添加新的数据库平台产品的支撑,需要完成三步操作: ? 复制一个数据处理模块
? 将处理模块中的Database组件换成对应数据库类型(例如DB2) ? 将Database组件中的SQL,替换成对应数据库的SQL标准
2.2 总包设计
调度总包设计原则:
不含业务逻辑数据处理,有独立的读参模块,数据处理模块,可独立运行 总包设计模式如下图:
ETL说明手册
总包设计包含三个部分:
? 从XML文件获取执行相关参数 ? 调度需求设计需要的子包
? 根据应用服务器的运行能力,设计并发流程数,分配每个流程的子包 总包设计技术原理:
a) tRunjob组件可以传参动态调度子包
b) tRunjob组件调度的子包需要预先圈定在列表范围内,范围尽量大 c) 总包调度子包时,子包错误则中断整个流程
d) 总包调度子包时,子包的context参数被总包覆盖,保证整个总包调度内的参数共享
对应的tRunjob的属性框设置如下图:
e) 参数(context.Dyn_Job1)通过存储在数据仓库中的ETL包配置信息表(UNI_ETL_INFO)读取传
递
ETL说明手册
并发的设置:
并发的设计需要谨慎,并发数过多则容易造成java虚拟机的启动内存不足,而导致分支执行失败,目前默认为3个分支,每个分支消耗内存在256M到1024M之间。
每个分支执行的ETL子包,需要根据目标表的记录数以及子包的执行时间自行制定。 设计方法:
? 分支个数,对应总包中毫无关联的模块的个数 ? “多线程的执行”参数勾选
2.3 调度管理方式
ETL的调度管理,通过后台配置信息表来完成,后续产品版本中,可以把配置信息表的维护做成前台界面,实现工具化的ETL配置,管理,调度。
开发者二次开发出新的ETL调度包,可以按照规范的命名规则,以及配置方法,添加到ETL配置信息表(UNI_ETL_INFO),包括ETL包的数据仓库层级,属性,所属业务领域等信息,执行序号,依赖关系等信息。开发者可以根据需要,通过修改配置信息表,改变ETL包的业务组合,是否执行,以及执行次序。
子包配置信息表:
ETL说明手册
字段编码 etl_id etl_code etl_name erp_type m_type module dw_layer tab_cls tab_code_dest tab_name_dest tab_code_src is_aggr etl_code_p result 字段名称 执行次序ID ETL包编码 ETL包名称 注释 执行次序ID(整型,代表执行先后次序,由小到大) ETL包编码(tRunjob调度时获取的子包编码) ETL包名称(编码注释) ERP的产品类型 ERP的产品类型(NC5X,U810...) 归属的总包 功能模块 数据仓库层次 表属性 目标表 目标表名称 源表 是否聚合 所属并发分支 是否有效 归属的总包(总包的ETL_CODE) 功能模块(UNI-公共,FA-财务,SCM供应链) 数据仓库层次(ODS,DWT,DW,DQ) 表属性(DIM-维度表 FACT-事实表) 目标表 (数据库中对象名) 目标表名称(编码注释) 源表 (数据库中对象名) 是否聚合(0:否 1:是) 所属并发分支(1,2,3...) 0:有效 1:无效 下面是会计科目档案的三个处理子包的配置SQL的示例:
insert into uni_etl_info (ETL_ID, ETL_CODE, ETL_NAME, ERP_TYPE, M_TYPE, MODULE, DW_LAYER, TAB_CLS, TAB_CODE_DEST, TAB_NAME_DEST, TAB_CODE_SRC, IS_AGGR, ETL_CODE_P, RESULT)
values (480, 'NC5X_FA_ODS_DIM_ACCSUBJ', 'NC5X_FA_ODS_DIM_ACCSUBJ', 'NC5X', 'NC5X_FA_PUB', 'FA', 'ODS', 'DIM', 'ODSNC_FA_DIM_ACCSUBJ', '会计科目表', 'BD_ACCSUBJ', 0, '3', 0);
insert into uni_etl_info (ETL_ID, ETL_CODE, ETL_NAME, ERP_TYPE, M_TYPE, MODULE, DW_LAYER, TAB_CLS, TAB_CODE_DEST, TAB_NAME_DEST, TAB_CODE_SRC, IS_AGGR, ETL_CODE_P, RESULT)
values (540, 'NC5X_FA_DWT_DIM_ACCSUBJ', 'NC5X_FA_DWT_DIM_ACCSUBJ', 'NC5X', 'NC5X_FA_PUB', 'FA', 'DWT', 'DIM', 'DWTNC_FA_DIM_ACCSUBJ', '会计科目表', 'ODSNC_FA_DIM_ACCSUBJ', 0, '3', 0);
ETL说明手册
insert into uni_etl_info (ETL_ID, ETL_CODE, ETL_NAME, ERP_TYPE, M_TYPE, MODULE, DW_LAYER, TAB_CLS, TAB_CODE_DEST, TAB_NAME_DEST, TAB_CODE_SRC, IS_AGGR, ETL_CODE_P, RESULT)
values (541, 'NC5X_FA_DW_DIM_CCODE', 'NC5X_FA_DW_DIM_CCODE', 'NC5X', 'NC5X_FA_PUB', 'FA', 'DW', 'DIM', 'DW_FA_DIM_CCODE', '会计科目表', 'DWTNC_FA_DIM_ACCSUBJ', 0, '3', 0);
三、ETL过程添加以及维护
3.1 ETL过程添加
当用户分析需求超出数据仓库预置数据的覆盖范围时,用户需要添加扩展数据仓库内容,创建新的数据表,并产生填充数据的ETL过程。操作步骤如下:
1) 根据命名规范,以及子包设计原则,创建目标表的子包,测试,并执行通过 2) 根据命名规范,以及总包设计原则,创建目标表的总包 3) ETL总包配置信息表中添加总包信息 4) 设计总包的并发分支数
5) 将子包信息配置到UNI_ETL_INFO表中,设定对应的总部,所属分支数,执行次数等字段值 6) 在总包的tRunjob的列表中添加子包job 7) 导出可执行脚本,测试
如果添加的子包可以归属到已有总包,则上述步骤可以跳过2),3),4)。
3.2 ETL过程维护
总包维护:
1) 添加并发分支数
复制已有一个流程,添加context参数Dyn_Job*(*为自行设定,不能与已有参数重复),替换
复制流程tRunjob中的context.Dyn_Job参数
更改原总包中UNI_ETL_INFO中子包的字段“所属分支”,重新进行分支执行配置。
2)添加执行的子包
在tRunjob组件中添加新的子包到列表
在UNI_ETL_INFO中添加子包信息,并将M_TYPE(所属总包)字段设为当前总包
子包维护:
ETL说明手册
子包进行修改并测试通过后,导出“可执行作业脚本”,将导出的目录中子包名对应的JAR包,拷贝复制到对应总包目录下,将原有子包的JAR包替换,即完成维护。
附录 1 执行参数获取
根据用户需要,BQW前台将提供用户ETL执行的配置界面,ETL执行的参数信息将临时存储到XML文件中,ETL作业包从XML文件获取执行所需的信息,信息内容包括数据仓库,ERP源库的数据库连接参数,以及ETL处理的业务年度,公司维度,相关业务单据的状态参数开关。
XML文件保存相对路径(/usr/BIData/ETL_TALEND/BQW_CONF):BQW_ds.xml。XML文件格式如下:
附录 2 ETL日志信息表
每个可执行的ETL作业包里,都含有数据仓库日志表记录的过程,记录本次ETL包的执行过程及结果。根据日志表(UNI_ETL_LOG)的记录,BQW前台向用户展示最后的执行结果。
ETL说明手册
编码 etl_code table_src table_dest table_rows etl_time start_time remark 名称 ETL包编码 源表 目标表 记录条数 结束时间 开始时间 备注
附录 3 ETL明细包配置信息表(UNI_ETL_INFO)
Name ETL包标识 ETL包编码 ETL包名称 ERP类型 总包类型 业务领域 数据层 表分类 目标表编码 目标表名称 源表 是否聚合 上级ETL包编码 是否可执行 Code ETL_ID ETL_CODE ETL_NAME ERP_TYPE M_TYPE MODULE DW_LAYER TAB_CLS TAB_CODE_DEST TAB_NAME_DEST TAB_CODE_SRC IS_AGGR ETL_CODE_P RESULT
ETL说明手册
附录 4 ETL总包配置信息表
ETL_ID ETL_CODE 10 20 30 40 50 60 70 NC5X_PUB_PUB NC5X_FA NC5X_FA_PUB NC5X_FA_GL NC5X_FA_FA NC5X_FA_ARAP ERP_TYPE ETL_COMMENT ETL_CODE_P IS_DEFAULT IS_DIM NODE_TYPE 表结构调整 公共模块 财务 财务公共 财务总账 财务固定资产 财务应收应付 0 0 0 NC5X_FA NC5X_FA NC5X_FA NC5X_FA 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 NC5X NC5X NC5X NC5X NC5X NC5X NC5X_UNI_DB_REDEF NC5X
ETL说明手册
附录 4 ETL总包配置信息表
ETL_ID ETL_CODE 10 20 30 40 50 60 70 NC5X_PUB_PUB NC5X_FA NC5X_FA_PUB NC5X_FA_GL NC5X_FA_FA NC5X_FA_ARAP ERP_TYPE ETL_COMMENT ETL_CODE_P IS_DEFAULT IS_DIM NODE_TYPE 表结构调整 公共模块 财务 财务公共 财务总账 财务固定资产 财务应收应付 0 0 0 NC5X_FA NC5X_FA NC5X_FA NC5X_FA 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 NC5X NC5X NC5X NC5X NC5X NC5X NC5X_UNI_DB_REDEF NC5X
正在阅读:
ETL-Talend开发技巧总结03-15
“十三五”重点项目-泡菜专用辣椒碎项目可行性研究报告 - 图文10-17
质粒营救法和TAIL-PCR法获得水稻 T-DNA旁邻序列的效率比较07-20
我想成为一名建筑师10-19
三语下12《荷花》 - 图文03-16
市场营销调研报告范本02-25
我咋这么粗心呢作文500字06-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 总结
- 技巧
- Talend
- 开发
- ETL
- 五种基本句型 主谓宾宾(宾补)结构 实用练习加详细解析
- 数控铣床、加工中心操作工(中级)模拟试卷(4套)
- 从芭丝谢芭的成熟过程看哈代的女性主义意识
- 四年级语文上册:《语文园地五》教学设计-教学教案
- 2019年高考真题和模拟题分项汇编生物 专题04 遗传的分子基础 含答案解析
- 农作物生产技术 - 耕作制度测试题
- 2018届中考语文专题复习修辞手法练习
- 招投标考试试题
- 浅谈乡镇宣传文化思想工作存在的问题及对策
- 机电一体化毕业论文-PLC机械手控制设计(1)
- 长江三角洲 - 图文
- 天然气购销合同
- 数据结构与算法实验报告
- 论教育与社会分层和社会流动的相互关系
- 星巴克面试技巧
- 计量经济学(23章习题)
- 我国公共安全管理存在的问题及其对策研究
- 《大学本科思想道德修养与法律基础》试题
- 2013年全国大学生数学建模A题国家奖优秀论文
- 中建史名词解释