数据仓库 - 2.数据仓库设计思路及ETL设计思路
一、数据仓库构建思想
构造数据仓库有两种方式:一是自上而下,一是自下而上。
Bill Inmon先生推崇“自上而下”的方式,即一个企业建立唯一的数据中心,就像一个数据的仓库,其中数据是经过整合、经过清洗、去掉脏数据的、标准的,能够提供统一的视图。要建立这样的数据仓库,并不从它需要支持哪些应用入手,而是要从整个企业的环境入手,分析其中的概念,应该有什么样的数据,达成概念完成整;(会考虑到很全面的设计)
Ralph Kimball先生推崇“自下而上”的方式,他认为建设数据仓库应该按照实际的应用需求,加载需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期较短,客户能够很快看到结果。(针对客户的需求,需求要什么就做什么)
二者都要达到同一个目标:企业级数据仓库。实际上在建设数据仓库的时候,一般都参照这两种方式结合使用没有硬性规定。
二、ETL(Extract/Transformation/Load)
用户从数据源中抽取所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去;ETL是数据仓库系统中最重要的概念之一,ETL在一个数据仓库系统项目中要花一半以上的时间。
1) ETL调度目标
数据来源:数据库、数据库文件、文本文件、程序生成(派生列)
系统数目:单个系统、多个系统(过多的系统可以考虑接口实现)
数据库的类型:同种数据库/多种数据库
2) ETL调度参数设计
调度优先级/调度次序/中断标志/回滚标志/成功标志/调度开始结束时间等
3) ETL调度日志管理
文件记录/数据库记录
作业名称/作业执行开始-结束时间/作业执行结果/异常信息捕获/作业编号等
4) ETL调度JOB设计
数据文本文件加载/SQL在程序中调用/存储过程/ETL工具的WORKFOLW
5) ETL调度策略设计
全量数据加载:用户信息类数据,状态会更新发生变化的数据
增量数据加载:流水分批调度设计,抽取数据一般在比较闲暇的时候进行,凌晨时候比较多,而且按照要分析数据的周期,还分为按日、按月数据;由于涉及到的业务系统的数据量庞大,需要分批进行抽取,以及抽取数据后面的一系列处理过程。
调度并发设计:JOB并发涉及、并发冲突设计、异常处理设计、成功/错误退出方式
三、存储管理和模型设计
数据仓库的真正关键是数据的存储和管理。数据仓库一般遇到的几个问题:
1)大数据量的存储和管理
数据库的设计,安装、集成根据数据抽取详细设计要求设计数据库应用方案等;
2)针对决策支持查询的优化
分区表、索引、簇集索引、MQT、SQL优化等方式。
3)支持多维分析的查询方式
是否有相关报表软件及查询方式的优化。