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程序设计 #### 摘要与背景介绍 本文探讨了一个针对粮食行业数据仓库(Data Warehouse, DW)的专用ETL(Extract-Transform-Load)程序的设计与实现。该程序支持两种类型的数据源:...
ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发设计项目案例ETL开发...
《传统数据仓库ETL设计报告》 ETL(Extract, Transform, Load)是数据仓库建设中的关键步骤,涉及从源系统提取数据、转换数据格式和结构,并加载到目标数据仓库的过程。本报告主要探讨了ETL的升级策略,尤其是如何...
本实践指南将深入探讨ETL的设计与开发过程,旨在帮助读者掌握ETL的工作原理、最佳实践以及常见问题的解决方案。 一、ETL概述 ETL过程可以分为三个主要阶段: 1. 抽取(Extract):从源系统中提取数据,这些源可能...
以下是对ETL设计说明书的详细解释: 1. 概述: 在ETL设计中,概述通常会介绍项目的背景、目标以及ETL在整体数据管理中的作用。它可能会讨论业务需求,如提高数据质量、整合异构数据源、支持决策分析等。此外,概述...
BI 项目中 ETL 设计与思考 ETL(Extract、Transform、Load)是业务智能(BI)项目中一个重要的环节,它是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的...
商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库ETL系统架构设计.pdf商场数据仓库...
ETL 规范设计指南 ETL(Extract、Transform、Load)是数据集成的重要步骤,涉及到数据的抽取、转换和加载。为了确保 ETL 过程的高效性和可靠性,需要制定相应的规范和标准。本文档旨在提供一份完整的 ETL 规范设计...
本文档详细阐述了ETL的调度设计方案,包括调度系统、日志管理和ETL总体流程。 1. ETL调度系统设计: - **调度系统功能**:系统需具备配置JOB任务依赖关系、优先级、调度频率的能力,以及高配置性和可视化的界面,...
### BI项目中ETL设计与探究 #### 一、引言 随着信息技术的发展,企业面临着海量数据管理和利用的挑战。商业智能(Business Intelligence,简称BI)作为一种将企业现有数据转化为可利用知识的重要工具,旨在帮助...
首先,ETL工作的主要难点在于用户需求分析和模型设计。正确理解业务需求,创建符合业务逻辑的数据模型,是构建高效ETL流程的基础。这通常涉及到与业务部门的密切合作,以确保提取的数据符合他们的报告和分析需求。 ...
BI项目中ETL设计与思考.docx DataStage(ETL)技术总结.docx ETL增量抽取.docx ETL增量抽取方式.docx ETL工具点评.docx ETL常见性能瓶颈.docx ETL构建企业级数据仓库五步法.docx ETL高级教程.docx 三大主流ETL工具选型...
在ETL(抽取、转换、加载)过程中,数据结构的设计尤为重要,因为它直接影响ETL的性能、效率和可靠性。本章节将详细介绍数据结构的概念和在ETL中的应用,尤其是ETL架构设计中Staging Area(暂存区)的原则和常用数据...
ETL Automation Setup 是指安装和配置 ETL Automation 的过程,包括安装 ETL Automation Repository、安装 GUI 前端程序、配置环境变量等步骤。 ETL Automation Repository ETL Automation Repository 是 ETL ...
2.BI项目中ETL设计与思考 3.DataStage(ETL)技术总结 4.ETL常见性能瓶颈 5.ETL高级教程 6.ETL工具点评 7.ETL构建企业级数据仓库五步法 8.ETL增量抽取 9.ETL增量抽取方式 10.三大主流ETL工具选型 11.商务智能(BI)的...
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(Extract-Transform-Load,抽取-转换-加载)作为数据整合的关键环节,其重要性不言而喻。ETL工具不仅能够帮助数据仓库从业务系统中...
金融数据仓库中ETL的设计与实现