Download presentation
Presentation is loading. Please wait.
1
数据建模介绍
2
支付宝业务系统简介 业务特点 线上子系统多而杂 系统间依赖程度参差不齐 类金融交易:充值、提现、账务管理
数据模型设计 业务特点 类金融交易:充值、提现、账务管理 类电子商务:购物交易过程变更、实际交易(对B机票、对C水电等) 非纯电子商务;纯金融 线上子系统多而杂 截止到2011年6月共有各类线上子系统259个 类型多样:对C、对B、对内、对金融机构 系统间依赖程度参差不齐 垂直依赖(业务与核心) 跨层依赖(跨过交易到账务)
3
支付宝数据仓库架构原则 屏蔽底层复杂业务 简单、完整、集成的将数据暴露给分析层 业务系统变化影响削弱在基础数据层(资金订单改造)
底层业务的数据驱动为导向同时结合业务需求驱动 便于数据分析 屏蔽底层复杂业务 简单、完整、集成的将数据暴露给分析层 底层业务变动与上层需求变动对模型冲击最小化 业务系统变化影响削弱在基础数据层(资金订单改造) 结合自上而下的建设方法削弱需求变动对模型的影响 数据水平层次清晰化 高内聚松耦合 主题之内或各个完整意义的系统内数据的高内聚 主题之间或各个完整意义的系统间数据的松耦合 构建仓库基础数据层 使得底层业务数据整合工作与上层应用开发工作相隔离,为仓库大规模开发奠定基础 仓库层次更加清晰,对外暴露数据更加统一 数据模型设计
4
传统仓库架构方法 需求驱动为主 数据模型设计 …
5
支付宝交易主题现状 数据模型设计
6
数据仓库模型建设目标示意图 数据模型设计
7
仓库基础数据层建设的意义 避免底层业务变动对上层需求影响过大 屏蔽底层复杂的业务逻辑,尽可能简单、完整的在接口层呈现业务数据
数据模型设计 避免底层业务变动对上层需求影响过大 屏蔽底层复杂的业务逻辑,尽可能简单、完整的在接口层呈现业务数据 仓库数据更加丰富 建设高内聚松耦合的数据组织,使得数据从业务角度可分割,有助于数据和团队的扩展。
8
第三方支付企业支付宝数据仓库体系结构 点击流数据 (Click stream) 数据库数据(OLTP) 文档数据(Documents)
数据模型设计 点击流数据 (Click stream) 数据库数据(OLTP) 文档数据(Documents) 其它数据(Other) 源数据 明细数据(DWD) 数据仓库 E T L 报表展示 自定义查询 数据分析 数据应用 数据挖掘 元数据管理 数据质量监控 KPI 账单应用 日志产品应用 高粒度汇总数据(DWS) 其它…… 数据集市、宽表(DM) 数据应用(ST) 低粒度汇总加工数据(DWB)
9
建立企业级概念数据模型(CDM) 的基本架构
相关方 安排 位置 相关方关系 相关方及安排间的关系 描述 相关方类型 业务概念框架提供了一套通用的结构,它描述了所有业务环境 IBM业务概念间最初的关系提供了 合约 分类 产品/服务 资源 事件 业务方向 条件 安排类型 所有业务信息都是可以用九大概念的词汇来表示 每一种信息概念都可用三个分层来详细说明: 分类分层(是什么) 描述分层(有什么) 关系分层(做什么) 数据模型设计
10
九大数据概念变迁 数据模型设计 主要变化: 1. 将产品中的介质以及分类中的帐户和渠道独立出来作为单独的数据概念
IBM FSDM九大数据概念 支付宝九大数据概念 当事人 地理位置 协议 资源项 事件 产品 分类 条件 业务方向 介质 帐户 渠道 主要变化: 1. 将产品中的介质以及分类中的帐户和渠道独立出来作为单独的数据概念 2.条件和分类不作为单独的数据概念,分散在各个数据概念中。 3.业务方向中的部分在事件数据概念中体现 数据模型设计
11
第三方支付企业支付宝数据模型设计 基于OMG推出的数据仓库元数据管理的CWM模型(Common Warehouse Metamodel)
物理模型设计 PDM设计方法 参考IBM的FSDM金融行业的数据仓库通用模板 参考NCR Teradata 金融服务逻辑数据模型(FS-LDM ), 参考新巴塞尔资本协议(Basel II Capital Accord)需提供三到五年的数据的规范 综合上述规范和要求,同时结合支付宝实际的业务, 推出数据仓库5层架构体系
12
DW五层模型架构介绍 DW五层模型是按照EDW各个应用层次的需求进行分层细化而来的,每个层次满足不同的应用。 分为以下5层:
1. ODS 数据准备层 2. DWD 数据明细层 3. DW(B/S) 数据汇总层 4. DM 数据集市层 5. ST 数据应用层 数据模型设计
13
DW五层模型架构介绍 ST层 DM层 DW层 DWD层 ODS层 数据来源及建模方式 服务领域 数据ETL过程描述 数据模型设计
数据准备区,数据来源是各业务系统的源数据,物理模型和业务系统模型一致。 数据来自ODS层,是DW明细事实层,数据模型是ODS一致 数据来自DWD层,是DW事实层,采用维度建模,星型架构,这一层可细分为dwb 和dws 数据来自DW层,采用维度建模,星型架构 为其它逻辑层提供数据,为统一数据视图子系统提供数据实时查询 为EDW提供各主题业务明细数据 为EDW提供各种统计汇总数据 数据挖掘,自定义查询,应用集市 前端报表展现,主题分析,KPI报表 数据ETL过程描述 通过支付宝分发中心平台,把业务数据抽取落地成文本文件,再装载到数据仓库ODS层,不做清洗转换 根据ODS增量数据进行merge生成全量数据,不做清洗转换,保留原始全量数据 从DWD层进行轻度清洗,转换,汇总聚合生成DW层数据,如字符合并, ,证件号,日期,手机号转换,合并;用代理键取代维度;按各个维度进行聚合汇总 从DW层的数据进行粗粒度聚合汇总;按业务需求对事实进行拉宽形成宽表 从DW层的数据进行粗粒度聚合汇总;如按年、月、季、天对一些维度进行聚合生成业务需要的事实数据 数据模型设计
14
DW模型架构第一层介绍-ODS层 功能 ODS层是数据仓库准备区 为DWD层提供基础原始数据 减少对业务系统影响 建模方式及原则
数据保留时间根据实现业务需求而定 可以分表进行周期存储,存储周期不长 数据不做清洗转换和业务系统一样 按主题逻辑划分 数据模型和粒度和业务系统数据模型保留一致(3NF) 从业务系统以增量方式抽取加载到ODS 数据模型设计
15
DW模型架构第二层介绍-DWD层 功能 为DW层提供来源明细数据 提供业务系统细节数据的长期沉淀 为未来分析类需求的扩展提供历史数据支撑
建模方式及原则 数据模型与ODS层一致(3NF) 不做清洗转换处理 为支持数据重跑可额外增加数据业务日期字段 可按天、月、年进行分表 用增量ODS层数据和前一天DWD相关表进行 merge处理 数据模型设计
16
DW模型架构第三层介绍-DW层 功能 为DM,ST层提供细粒度数据,细化成DWB和DWS
DWB是根据DWD明细数据进行清洗转换,如维度转代理键、身份证清洗、会员注册来源清洗、字段合并、空值处理、脏数据处理、IP清洗转换、账户余额清洗 、资金来源清洗等 DWS是根据DWB层数据按各个维度ID进行粗粒度汇总聚合,如按交易来源,交易类型进行汇总 建模方式及原则 聚合、汇总增加派生事实 关联其它主题的事实表,DW层可能会跨主题域 DWB保持低粒度汇总加工数据,DWS保持高粒度汇总数据 数据模型可能采用反范式设计,合并信息等 数据模型设计
17
DW模型架构第三层介绍-DW层 数据模型设计
18
DW模型架构第四层介绍-DM层 功能 这一层可以是一些宽表,是根据DW层数据按照各种维度或多种维度组合把需要查询的一些事实字段进行汇总统计并作为单独的列进行存储 满足一些特定查询、数据挖掘应用 应用集市数据存储 建模方式及原则 尽量减少数据访问时计算,优化检索 维度建模,星形模型 事实拉宽,度量预先计算 分表存储 数据模型设计
19
DW模型架构第四层介绍-DM层 数据模型设计
20
DW模型架构第五层介绍-ST层 功能 ST层面向用户应用和分析需求,包括前端报表、分析图表、KPI、仪表盘、OLAP、专题等分析,面向最终结果用户 适合作OLAP、报表模型,如ROLAP,MOLAP 根据DW层经过聚合汇总统计后的粗粒度事实表 建模方式及原则 保持数据量小 维度建模,星形模型 各种维度代理键+度量 增加数据业务日期字段,支持数据重跑 不分表存储 数据模型设计
21
DW模型架构第五层介绍-ST层 数据模型设计
22
DW五层模型架构特点 细化DW建模 对DW中各个主题业务建模进行了细分,每个层次具有不同的功能。 保留了最细粒度数据
满足了不同维度,不同事实的信息 满足数据重新生成 不同层次的数据支持数据重新生成 无需备份恢复 解决了由不同故障带来的数据质量问题 消除了重新初始化数据的烦恼 减少应用对DW的压力 以业务应用驱动为向导建模,通过ST、DM层提供数据 避免直接操作基础事实表 降低数据获取时间 快速适应需求变更 适应维度变化 明细基础数据层稳定,适应前端应用层业务需求变更 所有前端应用层模型之间不存在依赖,需求变更对DW整个模型影响范围小 能适应短周期内上线下线需求 数据模型设计
23
数据仓库建设规范 表命名规范 程序命名规范 开发模板 通用SQL文档 数据模型设计
24
数据仓库建设规范 表命名规范 表名命名格式说明 [层次]_[主题] [_表内容]_[分表规则] T表命名格式说明
临时表名命名格式说明 [tmp]_所属程序名_[自定义序号1..10] [temp]_[操作者缩写]_YYYYMMDD_[表内容] 视图命名格式说明 V_[表名] DWB层视图仍以DWB_开头,为了兼容日后业务变动 数据模型设计
25
数据仓库建设规范 表命名解释 层次 ODS, DWD, DWB,DWS, DM,ST
如ODS_TRD_TRADE_BASE_YYYYMMDD, DWD_TRD_TRADE_BASE_YYYYMMDD; 表内容 表名视图名总长度不超过64个字符 ODS层和DWD层:[层次]_[主题]_[业务系统表名字]_[分表规则] DWB(含)以上层次表名字:[层次]_[主题]_[有意义的缩写]_[分表规则] 尽量详尽说明表的具体内容 分表规则 日表YYYYMMDD 月表YYYYMM 日汇总DS,月汇总MS,日累计DT,月累计MT 数据模型设计
26
数据仓库建设规范 程序命名规范 程序命名 [目标表名(去除分表规则部分)]_[程序类型].tcl 程序名称一律小写 解释
目标表名为程序生成数据的表名,如数据ODS_TRD_TRADE_BASE_YYYYMMDD-> DWD_TRD_TRADE_BASE_YYYYMMDD,那么程序命名成dwd_trd_trade_base_dd.tcl 数据模型设计
27
Thank You !
Similar presentations