一、数据仓库
1.概念
是一个面向主题的,集成的,相对稳定的,反映历史变化的数据集合,用于支持管理决策
2.组成
3.架构
3.1技术缓冲层(临时区):
定位:服务于数据加载和转换的需要,不对外提供数据服务
特点:
- 数据原样加载,与源系统结构一致
- 有增量,有全量
- 可能需要保留数天历史(重加/查数)
3.2近源层:
定位:尽量保持源系统数据原貌,提供基于业务数据原貌的访问
特点:
- 简单处理
- 不考虑整合
- 保留较短期历史(重点考虑保留策略?)
3.3整合模型层:
定位:长期的,细节的,整合的数据存储,为各类业务需求提供支持
特点:
- 面向主题,数据整合
- 提供规范和共享
- 中性设计,偏范式化,灵活可扩展
- 细节信息,保留长期历史
3.4共性加工层:
定位:提供性对中性,具有业务意义的初级加工数据,支持上层应用的数据加工,或供业务人员的访问
特点:
- 全局考虑,提炼需求共性
- 多层次设计,多种数据粒度
- 侧重业务理解,蕴含丰富的业务规则
设计目标:
- 避免相同汇总数据的重复计算和存储,减少系统开销(技术层面)
- 实现共享,降低应用开发和数据查询的复杂度(技术层面)
- 避免数据加工口径的不一致 (技术层面)
- 实现对常用统计口径的统一定义和维护(业务层面)
- 便于业务人员理解,直接进行数据分析(业务层面)
3.5应用集市层:
定位:提供特定应用支持
特点:
- 面向应用
- 形式各异,各自独立
- 按需定制,满足特定业务的需求
工具:
实现工具:
SQL+脚本+ETL
应用:
Hive
数据仓库与OLTP
OLTP:
是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易,资金从A账户转到B账户,这整个过程就是一次交易事务。
OLAP:
是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。如我们的业务系统中每天都需要出销售日报,这个操作需要对当天所有数据进行汇总,并需要进行计算,以得到全天收入、产品销售排名、分时段的销售量,甚至于过去30天及去年当天进行对比,这样的操作都属于OLAP
二、数据模型
1.分类
1.1概念模型
是一种面向用户、面向客观世界的模型,主要用来描述世界的概念化结构。根据业务的需求进行分类和总结,所提炼出一些概念性东西
1.2逻辑模型
是一种既要面向用户,又要面向系统的模型,主要用于数据库管理系统(DBMS)的实现。实现概念模型所描述的东西,是对概念模型的进一步细化
1.3物理模型
是一种面向计算机物理表示的模型,是可以用DDL描述的,在某个数据库上的物理实现
2.数据仓库建模流程
2.1需求分析
确认范围
2.2系统设计
系统分析
表级字段级分析
信息调研:
- 主键:明确每张表的物理主键(自增列),业务主键
- 更新方式:表下发方式,增量或全量;数据是否更新,删除
- 下发频度
- 代码类:同一编码
- 单位:明确单位
概念模型设计:按业务需求,以主题分类
逻辑模型设计:主题细化,关系模式
物理模型设计:转化成表,物理实现
2.3开发测试
三、金融领域数据模型
四、ETL
1.过程
1.1数据抽取
确定所有数据源:数据来源于哪些系统?比如信贷系统、核心系统、客户系统等
定义数据接口:
- 接口的字符集编码
- 分隔符(字段里面不能有规定的分隔符)
- 接口类型(表,文件)
数据抽取方法:
- 主动抽取还是源系统提供文件
- 增量还是全量
- 数据抽取的频度是每日还是每月
- 数据抽取的标识
1.2数据清洗与转换
数据清洗:
- 不完整的数据(字段缺失)
- 错误的数据(乱码、字段定义与内容不符)
- 重复的数据
数据转换:
- 代码标准化(比如都是性别,但不同的系统用不同的数据表示,有的用男女,有的用mw.)
- 数据粒度的转换
- 根据业务规则进行计算
1.3数据装载
将源系统的数据加载到目标数据库对应的表中,根据不同的数据平台采用不同的加载工具
2.架构(理论和实际)
理论上(ETL):数据抽取、数据转换、数据装载
实际上(ECLT):数据抽取、数据清洗、数据装载、数据转换(转换是在入仓之后操作)