传统行业如何建立数据仓库?
建立数据仓库是一个解决企业数据问题应用的过程,是企业信息化发展到一定阶段必不可少的一步,也是发展数据化管理的重要基础。数仓的知识市面上的书籍和文章不少,但是实际实施依据行业不同,企业核心诉求不同,从技术到方法论各有不同。
如何实施数仓项目,本文先以传统行业的数仓切入,从整体上讲下数据仓库的实施方法论!
数据仓库的通用实施步骤
一、需求分析
需求分析是数据仓库项目最重要的一个环节,数仓说到底还是服务于业务,支撑于业务,如果需求分析不准确,做了没人用,上了不好用,会直接影响业务/客户的使用,最终导致项目的失败。为了避免最坏的情况,磨刀不误砍柴工,前期一定要重视需求的调研、挖掘和分析,并采用一些严谨科学的措施和方法去做需求分析。
在实际调研过程中分享几个经验:
1、尽可能与业务方/客户方一起分析需求,引导对方将项目所要实现的整体框架和业务细节部分述清楚,最好的方式就是需求人员和设计人员基于原型来讨论,从而正确理解实际的业务需求。
2、必须实事求是地将数据仓库所能实现的目标和不容易解决的问题与协商清楚。这一个环节趟过不少坑,IT方急着上线,业务方对于项目还处于一知半解,甚至在推动的时候可能避重就轻,比如一期不满足的需求强行上,长远来看项目会产生不少推诿和扯皮,消磨的是对方的信任。
所以在需求讨论的基础上,需要理解业务工作流程,当然如果你已经具备了这个行业丰富的业务知识,那可以在需求调研的时候尽可能地让对方按照自己的思路去完成数据仓库系统的功能设计。
3、需求方群体的分类,BI项目最终的使用对象可以分为以下几类:数据查询者、报表查询者、企业决策者
这三类人群的需求特点完全不一样,沟通的时候需要注意区分并深刻理解
4、需求调研的再完美,也避免不了需求变更。现实是很多情况下需求是不确定的,业务方是提不出有价值的需求的,需求今天是A明天又变成B无法一步做到位的,这都很正常,作为项目实施者要做好心理预期。
一般情况下,业务方能够提供的都是需求的整体框架部分或者是实际需求的一部分内容,不能预见未来需要增加的需求,这也注定了数仓项目是一个不断循环、反馈,使系统不断完善增长的过程。
不能规避风险但是可以减少风险,所以科学的调研尤为重要。以下是调研模板,当需求调研完成时,需要对采集结果进行分析、归纳、整理,最终形成完整的需求分析报告。
摘于《数据化建设知识图谱》
业务需求的实施目的就是真正理解企业决策者的战略性目标。在理解建立商业智能系统目标的基础上,建立有效的企业管理模式,制定出详细的企业数据仓库业务管理规范,设计出常用的ETL数据采集规范和工作流程,从而明确商业智能系统的实施范围和目标。为了提高企业的分析决策能力,可以利用当下的局域网技术和互联网技术实现企业对各种信息的查询和分析,通过建立企业业务数据模型,分析商业智能系统的系统架构、数据源之间的差异、对数据质量的评估和各种信息的处理方法,有效地提高企业商业智能系统的分析和决策能力。
二、数据仓库的逻辑分析
数据仓库在逻辑上可以分成操作型数据库、数据仓库层、数据集市层、数据分析应用层和报表展示层,其架构如下图所示:
三、设计ODS系统
ODS 可以有两种形式:ODS 数据缓冲区和ODS统一信息视图区。
① ODS数据缓冲区
ODS数据缓冲区是业务数据流动过程的第一个存储区,实现了数据仓库从各个业务系统的数据源中将数据抽取出来,并且装载到ODS数据缓冲区的这一过程,从而实现统一的全局的企业数据平台,为以后的数据抽取、清洗、转换过程打下坚实的基础。对于数据的数据源可以采用增量的方式进行抽取,对于经常变化更新的数据一般采用全量的方式进抽取。ODS数据缓冲区具有实时性的特征,ODS系统将各个孤立的业务系统的生产运营数据集成起来,组成统一的、全局的企业数据交换平台。
② ODS统一信息视图区
ODS统一信息视图区是指有选择地集成各类业务源数据,对数据进行抽取、清洗、转换操作,以数据主题域为数据集成的基础,对数据进行分类和组织,使用户能够通过统一信心视图区获得跟某个主题域相关的实时性数据。各业务系统和ODS统一信息视图区可以互相访问,可以生成具有实时性的操作性报表和查询某一主题的近期全部信息。
③ ODS数据缓冲区和ODS统一信息视图区的区别和共同点
ODS 数据缓冲区主要为业务源数据抽取到数据仓库中提供中间数据缓冲的功能,与
ODS 统一信息视图区最大的区别就是数据抽取、清洗、转换、加载的转换规则和数据存储的方式不同。ODS统一信息视图区是完全按照主题的方式进行数据存储,向用户提供快速的报表展示和数据实时查询的功能。而ODS数据缓冲区的ETL规则一般只进行简单的汇总、计算,或者从操作型数据库中直接抽取而中间不进行任何转化。ODS 统一信息视图区的数据一般都是从ODS数据缓冲区中抽取过来的。
四、数据仓库建模
数据仓库建模在前面已经有了详细的介绍,数据仓库模型是IT技术开发人员、业务人员、决策管理者相互沟通的一套语言和平台。对于数据建模工程师来说,对业务的深刻理解是首要任务,因为数据仓库建模分为概念模型设计、逻辑模型设计和物理模型设计3个阶段,一般按照自顶向下的顺序依次对模型进行设计。
概念模型主要是模型设计人员对业务规则的理解,是最高层次的数据模型,几乎涵盖了业务所有的核心概念和重要的主题,为以后逻辑模型的建设打下了基础。
逻辑模型是对概念模型的分解、细化,将数据主题划分成一个个的实体和实体关系,一般将第三范式作为设计的模板。
物理模型在逻辑模型的基础上对模型实体进行细节性的描述,包括字段类型、长度、索引等因素,最后转化成数据库存储的物理表。
摘于《数据化建设知识图谱》
五、数据集市建模
一般数据集市模型的建设是基于需求分析得到的结果,数据集巾的建模主要针对事实表和维表的设计。例如,部门员工关系表,如果事实表包含部门编码,则数据可以分析到部门。如果事实表又包含员工编码,则数据既可以分析到部门,又可以分析到员工。一张事实表除了包含所要分析的维度编码外,还包括需要分析的度量值。例如,用户用电分析事实表,它的主题描述就是按地区、时间、电压等级统计用户的耗电量、应收电费,并进行同期对比;它的维度就是地区、时间、电压等级,度量值包括耗电量、应收电费等;指标来源就是数据仓库中的计费结果表、用户基本信息表。维表一般采用增量的方式进行抽取。
六、数据源分析
所谓数据源分析,就是对源数据进行分析和总结,得出源数据的范围、格式、更新方式、更新频率和质量好坏的过程。
数据源分析是指通过需求调研得知业务数据源的基本情况,并且加以详细说明,具体内容包括数据源中存在哪些物理表,表之间的关系和表中每个字段的数据类型和含义等。一般来说,业务数据源通常会有数据不完整、口径不一致,或者各个数据源存在业务规则不统一的情况。
另外,在分析的过程中,需要确定业务源数据中哪些数据需要被抽取。为了确定合适的抽取方式,需要在抽取之前对数据源进行分析,分析的范围一般包括数据的格式、数据的范围、更新的方式、数据质量的好坏。在分析的过程中,应该尽可能获取分析的结果,形成数据源分析报告,在仔细研究分析报告后,再选择合适的抽取、加载方式。了解这些数据源的特点,有利于ETL 抽取时对数据的整合和统一,从而保证数据的质量和可信度。
七、数据的获取与整合
数据的获取与整合存在于数据仓库项目中的各个阶段。数据仓库很重要的一个作用就是将散落在各业务系统的数据整合起来,不规范的数据规范起来,以一种便于分析和应用的方式放到数据仓库里,供前端应用分析。ETL 过程实际上就是数据流动的过程,即从不同的数据源流向统一的目标数据库。数据的获取与整合是完成数据仓库建设取复杂的过程,它关系到数据的质量,是数据仓库项目建设的根基。
八、数据应用和报表展现
报表绝对是让人痛苦的东西。格式复杂、需求多变,业务没事就改需求或者增加几个。虽然说起报表感觉很老土,但确实是整个数仓项目价值落地呈现的东西。
做报表多的人,基本上都会做一个自己的工具,至少也会做一个引擎,按照自己的理解用一种结构化加动态的方式去定义所需要的报表,可以灵活的选择所需要的数据,设计展现样式生成报表。现在一般都是采用专业的低代码的报表工具来做报表,比如FineReport去做报表,提升开发效率,侧重应用分析,毕竟没有谁想一天到晚被报表缠身。
结合前面谈到的数据分层的机制,会发现,不管基于哪一层,都有做报表的需求。个人认为报表的重点不在与报表的制作,而在于如何利用报表为业务为项目谋价值。
大公司都会有负责报表分析这块的项目人员,那针对报表延伸出来的工作,报表需求分析、指标体系规划、以及各位为经营为管理为基层人员的报表分类,还有围绕业务的分层设计。
对于基层员工,报表使用的最多的就是录数据,查询数据。比如商场售货员浏览数据来查看商品的售卖情况,以此来及时补货,还有每天的日销售数据录入。
对于部分业务人员,报表的不再是简单的展示和录入,会衍生出一些分析的需求,比如采购经理,他需要决定采购哪些品牌的商品,从哪一家供应商来采购,如何规划商店的商品。那方法就是看报表看哪些商品买的好,以此来考虑是否需要加购哪些品牌商品,放弃那些品牌商品或者搞促销。高大上一点的说辞就是利用数据优化商品结构,选择供应商。
对于企业管理层,更多的说是做dashboard进行指标的监控,做的业绩分析(时间、地区纬度等)。而这一过程,也是通过数据使管理层可以更容易的按照标准的管理方法进行决策(如果说员工是判断,领导就是决策了...)