批量数据处理经验分享.ppt
《批量数据处理经验分享.ppt》由会员分享,可在线阅读,更多相关《批量数据处理经验分享.ppt(49页珍藏版)》请在三一办公上搜索。
1、China Construction Bank.|1,批量数据处理经验分享,中国建设银行 2011年2月,目录,China Construction Bank.|2,CRM数据线结构 批量数据处理经验分享,CRM数据线结构,China Construction Bank.|3,外部系统,ODS,ETL处理模块,OCRM,ACRM,TPS,WMSS,WPPS,CRM数据线数据类型-每日基础数据,China Construction Bank.|4,CCBS:活期、定期、银行卡、实物黄金账户每日增量国际卡:贷记卡每日增量证券:证券账户、持有证券、签约每日增量;成交每日全量A+P:贷款账户每日增量理
2、财系统:账户每日增量银保通:保单、签约每日增量CTS:资金账户每日增量ECIF:客户、1560、联系方式、渠道签约每日增量账户和客户每日增量包括最新的时点状态ETL模块在逻辑上积累这些数据的全量(ACRM数据库中),CRM数据线数据类型-每月汇总数据,China Construction Bank.|5,CCBS:活期、定期、银行卡、实物黄金账户全量国际卡:贷记卡全量证券:持有证券每月全量A+P:贷款账户每月全量理财系统:账户每月全量银保通:保单每月全量CTS:资金账户每月全量ECIF:客户汇总每月全量客户汇总数据包括客户当月的AUM、贡献、总负债等账户汇总数据包括月末余额,月均余额、当月累计
3、交易情况等,CRM数据线处理类型,China Construction Bank.|6,直传:项目组直接和ODS确定接口,数据送到ETL模块后,通过DPTF平台转发。目前OCRM、ACRM、WPPS、ICSP、ESME、TPS、OCRM房金、WMSS、CCOB、PBCS都使用到这种方式。加工:ETL模块对数据做加工,然后通过DPTF平台发送。目前OCRM、WPPS、WMSS、TPS、ECIF使用这种方式。加工规则主要包括:1、拼接字段,增加信息(增加ECIF客户号,或拼接几个档的数据)2、过滤记录(滤出某个客户群体的数据)3、数据质量完善(处理不同步的情况,或全量修复)4、代码转换 5、汇总(
4、ETL模块汇总数据,共享给其它系统如ECIF、OCRM),目录,China Construction Bank.|7,CRM数据线结构 批量数据处理经验分享,批量处理结构设计 datastage常用经验大数据量操作,批量处理结构设计-批量处理方式的选择,China Construction Bank.|8,我中心目前常用的批量数据处理方式包括三类:通过ETL工具(主要是datastage)进行批量数据处理,中心的大部分系统均通过这种方式进行处理,如OCRM、ACRM批量线等;通过SQL和sh脚本进行批量数据处理,使用这种方式的系统较少,ACRM部分应用使用PLSQL,如营销清单处理;编写C/j
5、ava代码进行批量数据处理,主要是ECIF系统;,批量处理结构设计-批量处理方式的选择-datastage,China Construction Bank.|9,datastage优点:并行数据处理效率高,特别是文件处理,可以达到平面文件处理效率的10倍以上,而且可以在同一个任务中做灵活的并发设置。其提供的join、sum、sort、group等节点,可以有效的降低数据库的压力;对于复杂的ETL应用,开发简单,而且提供任务调度、事件触发等功能,在批量处理环境复杂的项目中有优势;,批量处理结构设计-批量处理方式的选择-datastage,China Construction Bank.|10,d
6、atastage缺点:管理和维护的工作量较大。一旦使用datastage,必须在运行期间投入人力进行运维,主要体现在几方面:运维的大部分操作需要使用工具的client完成,命令行能力较差,因此运维难以实现自动化。例如日志一般情况下只能通过工具查看,很难导出;运行监控只能在工具中进行;错误查询时只能一个个stage的打开查看设置,无法搜索和批量操作等;Datastage的任务运行模式,使程序的错误处理很难做到自动,因为任务(job)自身不能定位错误发生在哪里,发生的规模有多大,因此当发生错误时最好的方式是停止程序并人为干涉,这一点和自己编写程序的ETL处理流程有很大差别;版本管理不方便;资源的占
7、用大,一个parallel job,如果stage较多,在运行是可能生成几十到上百的osh进程,cpu和io的占用会比较大。datastage对文件处理的高效是以大cpu占用,大io占用为代价的;Datastage工具本身没有提供包装业务逻辑的手段,其结果是完成一个操作的很多业务逻辑,被分散到了不同的stage中(甚至分散在不同的job中),在这种情况下,如果没有统一的规范,会造成开发出来的代码比较“乱”,除了开发者外其它人比较难以维护;,批量处理结构设计-批量处理方式的选择-datastage,China Construction Bank.|11,datastage适用场景:如果处理的数据
8、量不大,或者没有处理效率的要求,使用datastage的意义并不大,如果一定需要减少ETL开发的工作量,可以考虑使用server job,而不要使用parallel job,前者相对简单,维护的工作量也较小;如果ETL服务器和其它应用共享(如ETL服务器同时也是J2EE应用服务器或数据库服务器),不建议使用datastage,因为当数据处理繁忙时其它应用可能会失去响应;因为datastage的文件处理高效,所以比较适合大量文件操作的批量数据处理(或从多种不同的数据源取数,如从文件、不同的数据库)。相反,如果在同一个数据库中,从某些数据加工成另外一些数据,datastage的优势不一定能发挥出来
9、,这种情况下使用存储过程可能更合适;,批量处理结构设计-批量处理方式的选择-SQL和sh,China Construction Bank.|12,Sql和sh的优点:开发和部署相对简单;可以完全不需要批量处理服务器,直接在DB上进行批量处理;如果使用oracle的PLSQL开发存储过程,效率比较高,可以使用数据库的并发机制;一般在这种开发模式下,具体的业务逻辑在SQL或存储过程中实现,sh提供调度、触发、或定时的机制,比较容易分离业务逻辑,维护工作量较小;,批量处理结构设计-批量处理方式的选择-SQL和sh,China Construction Bank.|13,Sql和sh的缺点和适用范围:
10、这种批量数据处理方式的适用范围较小,不适合大量复杂的批量数据处理环境,也不适合有大量文件操作的批量数据处理。因此这种模式最适合的场景是在同一个数据库中,通过一部分数据加工出另外一部分数据(计算)。,批量处理结构设计-批量处理方式的选择-C/java程序开发,China Construction Bank.|14,通过C/java程序进行批量处理:目前,我中心ECIF系统使用的是这种方式,此方式的优点很明显,可以做各种灵活的控制,可以很容易的解决datastage在运行维护、错误处理、版本管理、资源占用上的问题,也可以灵活的在DB和ETL服务器间分配资源,但其缺点就是开发工作量和开发难度都较大。
11、因此,如果一个项目主要做批量数据处理,或批量处理任务较少且需要高稳定性,可以考虑使用这种方式。,批量处理结构设计-数据库和AP的负载分配,China Construction Bank.|15,目前中心的大部分系统都申请了单独的批量处理服务器,在使用ETL服务器和DB服务器配合工作的过程中(特别是大数据量的处理),需要特别注意批量程序开发中的负载分配问题。,ETL服务器,DB,ETL程序,SQL,批量处理结构设计-数据库和AP的负载分配,China Construction Bank.|16,如果使用datastage做批量数据处理,很多应用喜欢在数据库源上写复杂的sql,而在job层面使用的
12、stage很少。这种方式,计算的压力实际上是由数据库承担的,ETL服务器上只负责job的运行,压力很小,最终现象是数据库繁忙,而ETL服务器总是很闲。实际上datastage提供大量的计算工具代替数据库计算,如sum,join,group、distinct等操作,合理的使用这些stage,可以有效的分担数据库压力。如果数据库需要支持联机类应用,一种比较合理的批量处理方式是datastage只通过最简单的select语句从数据库中读取数据,复杂的计算通过各种功能stage完成,结果生成文件,在数据库不繁忙时(如晚上),再使用loader或merge批量修改数据库。如果使用sql或存储过程,开发者
13、必须意识到,ETL服务器只负责任务的调度,所有的批量处理压力都在数据库服务器上。因此,如果采用这种方式,除开调度程序运行和生成文件的问题,甚至不需要独立的ETL服务器。一般来说,自己开发C/java程序是最容易实现负载分配的,可以合理的把业务逻辑分担在数据库和ETL服务器上,这种方式从理论上说是效率相对较低的,但同时是最稳定,最不容易出问题的批量数据处理方式。,批量处理结构设计-批量处理调度,China Construction Bank.|17,批量数据处理的调度往往是事件触发的,事件类型最常用的是数据就绪和定时两种。目前OCRM、ACRM系统的ETL模块使用的调度是taskctl,这是OC
14、RM开发的一套公共调度程序,功能强大、稳定而且操作相对简单,可以调度datastage job,sh、sql、exec code等,并可以分为并行、串行调度,缺点是对于调度中的资源监控较欠缺。如果系统没有使用多ETL服务器,并在服务器间做任务分配,建议都可以使用taskctl。Datastage自身也提供调度方式,但datastage的调度实际上是通过crontab实现,功能较少,而且操作较复杂,不推荐使用。也可以通过crontab调度,但对于规模较大,处理复杂的批量任务,必须存在一个统一的调度程序,否则当出现错误时,维护的工作会非常大。,批量处理结构设计-时序问题,China Constru
15、ction Bank.|18,证券系统每日流水(交易账号),PPSS营销反馈(客户号),OCRM销售台账(客户号),全量1560(客户号交易账号),案例:匹配客户号,批量处理结构设计-时序问题,China Construction Bank.|19,未匹配的历史购买流水,每日流水,PPSS营销反馈,OCRM销售台账,全量1560,建立补充机制后,ECIF,批量处理结构设计-积累全量问题,China Construction Bank.|20,OCRM,VIP,NOR,ODS,VIP,全量,批量处理结构设计-积累全量问题,China Construction Bank.|21,OCRM,ETL模
16、块,VIP清单,全量,VIP数据,ODS/DW,全量,VIP数据,VIP清单,批量处理结构设计-星型模型和缓慢变化维,China Construction Bank.|22,常见的ETL需求有两类:数据的抽取、转换、加载数据汇总(报表计算)对于第二类需求,常用星型模型和缓慢变化维,批量处理结构设计-星型模型,China Construction Bank.|23,批量处理结构设计-缓慢变化维,China Construction Bank.|24,总行,上海,四川,浦东,岷江,2011-1月数据状态,批量处理结构设计-缓慢变化维,China Construction Bank.|25,总行,上
17、海,四川,浦东,岷江,2011-2月数据状态,批量处理结构设计-缓慢变化维,China Construction Bank.|26,总行,上海,四川,浦东2,岷江,2011-2月数据状态,浦东1,批量处理结构设计-缓慢变化维,China Construction Bank.|27,总行1900-1-1-9999-12-31,上海1900-1-19999-12-31,四川1900-1-19999-12-31,浦东22011-2-19999-12-31,岷江1900-1-19999-12-31,浦东11900-1-12011-2-1,目录,China Construction Bank.|28,C
18、RM数据线结构 批量数据处理经验分享,批量处理结构设计 datastage常用经验大数据量操作,Datastage常有经验-开发规范-结构规范,China Construction Bank.|29,结构规范:描述一个大的批量处理过程应该如何实现。在ACRM系统中,任何一个业务功能都被分拆成TR(数据处理)、LD(数据加载)两个过程,这两个过程可能包含多个job,因此用GE来进行统一的调度管理,这样每个GE就是一个独立的业务功能实现单元,它又依靠SE来进行集成,变成规模更大的功能包,最终,通过SH来包装SE,供调度程序使用。同时,这个规范还规定了每一层采用的技术,如:TR使用parallel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 批量 数据处理 经验 分享
链接地址:https://www.31ppt.com/p-5979205.html