背景
下面的内容是基于参考中的文档进行的二次读书笔记。
数据分层
传统行业
传统行业的数据仓库工程师, 开始尝试架构工程领域比较流行的ER模型+维度模型方式,构建出一个四层的模型架构
- ODL(数据操作层, ODS层): 与源系统一致
- BDL(基础数据层, DWD层): 引入ER模型,加强数据的整合,构建一致的基础数据模型
- IDL(接口数据层, DWA/DWI层): 基于维度模型方法构建集市层
- ADL(应用数据层, ST层): 应用的个性化和基于展现需求的数据组装
阿里在构建ER时碰到了较大的挑战,主要是业务快速发展,人员快速变化、业务知识功底的不够全面,导致ER模型产出困难。
阿里得出了一个结论:在不太成熟、快速变化的业务层面,构建ER模型的风险很大,不太适合去构建ER模型,说的有点道理,比如运营商业务相对比较稳定,国际上也有一些最佳实践,从概念-领域-逻辑-物理的全局把控上还能应对,但面对变化,的确有其限制。
阿里巴巴
阿里业务和数据飞速发展,迎来了hadoop为代表的分部署存储计算的快速发展,同时阿里自主研发的分布式计算平台MaxCompute也在进行,因此开始建设自己的第三代模型架构,其选择了以Kimball的维度建模为核心理念的模型方法论,同时进行了一定的升级和扩展,构建了阿里巴巴集团的公共层模型数据架构体系。
- ODS: 操作数据
- DWD: 公共数据
- DWS: 公共汇总
- ADS: 应用数据
ODS(操作数据层)
把操作系统数据几乎无处理的存放到数据仓库系统中。
CDM(公共维度模型层)
又细分为DWD和DWS,分别是明细数据层和汇总数据层,采用维度模型方法作为理论基础,更多采用一些维度退化方法,将维度退化至事实表中,减少事实表和维表的关联,提高明细数据表的易用性,同时在汇总数据层,加强指标的维度退化,采取更多的宽表化手段构建公共指标数据层,提升公共指标的复用性。
DWD(明细数据层)
DWS(汇总数据层)
ADS(应用数据层)
存放数据产品个性化的统计指标数据,根据CDM与ODS加工生成。
数据挖掘中台
应用层ADM
- 竞争关系挖掘
- 销量预期,定价
中间层
个体中间层IDM
IDM层,个体挖掘指标中间层,面向个体挖掘场景,用于存储通用性强的结果数据
- 商品基础挖掘数据
- 买家基础挖掘数据
- 店铺基础挖掘数据
- 品牌基础挖掘数据
- 行业基础挖掘数据
关系中间层RDM
- 商品相似关系
- 商品竞争关系
- 商品搭配关系
- 店铺相似关系
- 店铺竞争关系
特征层FDM
FDM层,用于存储在模型训练常用的特征指标。
- 搜索
- 浏览
- 收藏
- 加购
- 支付
- 关系类数据
- 评论
- 地理位置
Hbase热点解决
Hbase数据是按照rowkey来进行hash的,因此关键在于rowkey的设计。
rowkey可以采取MD5+主维度+维度标识+字维度+时间维度+子维度2,例如卖家ID的MD5的前四位+卖家ID+app+一级类目+ddd+二级类目ID。
以MD5的前四位作为rowkey的第一部分,可以把数据散列,让服务器整体负载均衡,避免热点的问题。