ETL设计的一点思考
前些天写了篇文章叫做什么是好的代码??这是对J2EE开发的一点思考。对于ETL开发来讲,其与常规的J2EE系统开发有所不同,在面向对象设计的方法大行其道的现在,对于操作关系型数据库还是采用过程化的思想,但也有通用的地方。
1、选择SQL还是ETL工具
ETL工具都有join group by操作,复杂sql完成的事情ETL工具很多都能完成,所以存在一个SQL处理与ETL工具处理的矛盾问题。到底是在ETL工具端处理还是数据库SQL、处理。我想从代码的可读性以及操作的简便性考虑,如果SQL不是很复杂,用SQL可以清楚表达你的逻辑,优先考虑SQL。毕竟一般跑批在晚上,充分利用数据库的性能,ETL工具承担调度的功能。
2、ETL系统分层设计
一般来讲都有数据源层、中间处理层、前台展示层或者说目标层。
对于数据源层,我不希望对于数据源表的名称在ETL过程中到处都是,一般外部系统的表只在ETL数据源层出现,其他各层不不要依赖外部系统表。尽可能地将与外界通信减少到最少。这也是符合迪米特法则的。而系统的分层也从一定程度上进行了处理过程间的相对解耦,每个层次的变化不影响或者很少影响其他层次。
3、粒度问题
中间层往往需要不止一个处理过程,那么在处理过程中如何划分呢??我想还是要粒度合适。怎么叫合适??每个处理不要太大,可读性好一点。第二处理过程划分为几个步骤,那么需要考虑哪些步骤对于查错是方便的,必备的,那么就需要分离这个过程,这是需要从业务上斟酌的。
4、日志记录问题
这是个基本问题,执行在哪一步,就应该记录哪一步的日志,便于查找错误
5、数据清洗
跑批过程,经常碰到跑不下去的问题。究其原因,跑不下去一定是抛出异常,是数据约束导致。是不是将数据清洗固定作为ETL过程的一个任务阶段。我们ETL系统的数据约束应该有哪些,数据的入口处应该拦截哪些数据,不符合规格的脏数据作何处理。
6、单表的数据量问题
数据量很大的表应该采用横切纵切的方法。那么多大的数据量应该切分了呢??对于实时查询,即使建立索引太大的数据量也是个压力,所以应有个标准,比如上千万的量是不是考虑切分,或者构建为分区表。
分享到:
相关推荐
ETL中的程序设计,ETL中如何运用程序设计,使用程序实现ETL的方法等。
ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发...
BI项目中ETL设计与思考.docx
ETL 工具 设计 很实用,概括程度高。
ETL设计与开发实践
ETL升级一方面采用元数据驱动ETL的方式,通过配置元数据驱动ETL;另一方面,在ETL调度控制方面,采用结合数据质量校验的ETL调度
商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库...
BI 项目中ETL 设计与探究 BI 项目中ETL 设计与探究
BI项目中ETL设计与思考.docx DataStage(ETL)技术总结.docx ETL增量抽取.docx ETL增量抽取方式.docx ETL工具点评.docx ETL常见性能瓶颈.docx ETL构建企业级数据仓库五步法.docx ETL高级教程.docx 三大主流ETL工具选型...
ETL设计说明书.doc
ETL实战ETL实战ETL实战ETL实战
2.BI项目中ETL设计与思考 3.DataStage(ETL)技术总结 4.ETL常见性能瓶颈 5.ETL高级教程 6.ETL工具点评 7.ETL构建企业级数据仓库五步法 8.ETL增量抽取 9.ETL增量抽取方式 10.三大主流ETL工具选型 11.商务智能(BI)的...
工作量最大的ETL设计蓝图,对BI项目中的ETL工作进行讲解和描述。
BI项目中ETL设计与思考.pdf CTL工具.pdf ETL-开发规范.pdf ETL_--_事实表.pdf ETL_文档.pdf ETL_架构.pdf ETL_调度系统技术方案说明书_V1.0.pdf ETL中的数据清洗设计.pdf ETL交流.pdf ETL培训.ppt ETL...
金融数据仓库中ETL的设计与实现
ETL开发设计规范,包括ETL概述,开发规范,设计规范
元数据在数据仓库系统中占据着十分重要的地位, 其中存放着许多重要的信息, 尤其是对于数据仓库 的ETL 过程, 可以说是ETL 的...提出了以CWM元数据模型标准为基础来开发标准的ETL 的设计思 想, 并描述了具体的开发步骤。
该产品由etl-engine引擎和etl-designer云端设计器及etl-crontab调度组成。etl-engine引擎负责解析ETL配置文件并执行ETL任务;etl-designer云端设计器通过拖拉拽的方式生成etl-engine引擎可识别的ETL任务配置文件;...
ETL架构设计系列,介绍ETL Staging Area架构原则和常用数据结构