分享记录:
下面是具体的模型设计,一般在数据仓库行业,业务模型有两类,一类是企业自有的数据模型,一类是行业模型,比如金融业:天睿,银行业、保险业、制造业、医疗生命科学行业,这些一般是实施顾问团队总结的。但这些行业模型在中国市场运行的不太好,除了金融和电信稍好点,其他行业因发展较快、业务变化较快,迭代较国外快很多。我不建议以自上而下的方式、预先用一个模型将自己框住,然后按填表似的填入各种业务数据,这些看起来美好,但是实际运营中问题较多。
整个数据仓库的规划实施是一个长期的过程,大体分为三个阶段:规划设计阶段、模型落地阶段、优化阶段,这是一直循环的,比如任何一个需求来了或者开发任务来了,这个循环都要重走一遍。前面一部分都属于规划设计阶段,比如需求评估分析、内容设计、分析思路,这些都是刚入行的人不太熟悉的,而我们熟悉的主要是实施阶段,从概念模型到逻辑模型到物理模型。但是现在很少做概念模型,多是从逻辑模型开始、然后是物理模型、元数据管理。优化部分,包括对数部分,这样的汇总逻辑是否合理准确,压力、物理模型调整、容量的规划,存储哪些、存储多长时间。实际上,数据仓库主要是一系列的实施方法论,主要是如何帮我们将业务主题的分析做好。
在数据模型的具体设计中,星型结构用的较多,但是在数据仓库项目中基本也不会出现雪花型的数据存储。星型已经兼顾了灵活性和线性增长,比如说:事实表就是中间的FACT,,它是线性增长的,但是维度表,像时间维度、部门维度增长较缓慢,一般是比较静态的。总结一下,数据模型的设计原则是方便查询,像目前流行的tableau、qlikview,基本已经不分表,将所有的维度和事实放在一张表里直接运算。
以我们前面的客户价值分析为例,刚才设计的表结构,把维表和事实,也就是维度字段与指标字段都放到一张表,不会维度表与事实表分开存储,这样会造成空间上的冗余和浪费,但是在查询速度与便利性方面,绝对会优于星型与雪花型的存储方式。
数据模型建好后,就会建立一个ETL来去跑,做成一个定时任务; 像T+1,每天凌晨会跑前一天的数据,或者每隔一小时跑数据,按业务需求。把业务系统的数据通过ETL写入到我们建立的数据模型中去。为后面的BI平台,数据挖掘或者其它报表需求来使用这些数据。
一个数据仓库建设的本身大概分这些层级。业务系统是企业本身就有的,会有临时区、历史数据区、明细数据层、数据集市层,这些大概就是数据仓库基本涵盖层面。临时区有的项目有,有的项目没有,主要牵扯到业务系统需不需要做临时处理,夜间是否可以中断,因为有的是7*24小时每秒都要跑的不能中断的系统。
而历史数据ODS层基本上是每个系统或者每个项目都会有的,它主要承担两种功能,一种是说它是跟业务系统表结构基本上有一个一一对应的关系,这样我们在对数时候,也就是我们经过轻度汇总、高度汇总后就可以直接跟ODS对数就可以了,不用回头再去找到业务系统去对数。ODS层的基础任务层是作为数据仓库的基础来源,它是通过定时任务跟业务系统一一对应的。
明细数据层是根据ODS层汇总、导入、调整来的,这一层过程中基本会做一些数据清理、合并、质量校验这样的一些工作。ODS本身为了跟OLTP对应,一般上是不做数据清洗的,可能会做一些简单的,但基本上清洗工作或者数据质量校验,一些基础的合并汇总都会在数据明细层完成。
对于数据集市层轻度汇总、高度汇总,典型的举例可以回顾一下刚才我们所用客户价值分析里面的两张表,一个是客户价值分析明细表实际就是轻度汇总数据,面向DC的高度汇总数据,就是我们高度汇总数据。这样一个数据仓库的完整流程大概类似于这样。
最后简单介绍两个项目案例,一个是金龙汽车,做大客车的;一个是麦考林,是做女性电商的。金龙汽车这边有一个比较好玩的是,用一个案例举例,客户订单及时交付率或者是订单及时响应率,这样的一个指标当时我们把它分解成十几个指标,真正背后应用场景是这样的,他们的客车是从订单到交付的中间环节特别多。
订单从意向订单到确认了以后,设计部门会要确认一下,因为像这种客车每一台发动机、轮胎、车厢都是个性化定制的,所以会要设计部门涉及确认,确认时间影响了整个订单及时率。从确认以后到订单签单、合同签订以及到设计完成、生产完成、质量检测完成、入库完成以及交付完成每一个环节都会有一个指标分析在做,中间甚至入库、或者中间生产过程都会四小时指标,每一个指标都有一个责任人,每一个责任人都要对这个指标负责的。
因为这次分享对象,很多是做数据挖掘,数据分析的同学。所以对于数据仓库的理解可能不是那么多,希望通过今天分享有所收获。而且对于开发工程师来说,一般数据仓库的项目,真正深入做完之后都会或多或少对你所做的业务理解的会比较深了。今天的分享大概会是这样,我先把前面的提问简单回答一下。
Q:
1. 数据仓库与数据挖掘有什么联系和区别?
2. 数据仓库与数据库有什么区别?
3. 那数据集市与数据库、数据仓库 有什么区别?
这三个问题基本算一类问题,我统一回答下。数据仓库与数据挖掘的关系,数据仓库是一个整体数据存储逻辑,数据挖掘是一个具体的知识验证,或者知识设想的时候做的一个具体工作,它发现的结果一般会存储在企业的知识库里。
时间关系,其他几个问题我会后续更新到网站上面,敬请期待。谢谢各位,共同学习。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。