为什么全面预算管理软件必须要用多维数据仓库

为什么全面预算管理软件必须要用多维数据仓库,第1张

全面预算管理作为管理会计的一部分,属于典型的财务分析业务。国外对应的业务是Planning,也称为企业计划。包含了战略计划、业务计划、财务预算等等。对应管理会计业务,国外称为EPM- Enterprise Performance Management –企业绩效管理。

国内外软件厂商对全面预算管理软件的定位差别很大。国外厂商首先是把Planning定位为财务分析应用,是给FP&A服务的,因此软件的数据分析功能是核心。基于数据分析强大的多维数据仓库搭建Planning应用就很合乎逻辑。这也是为什么好的Planning软件厂商,都是数据仓库厂商的原因。如:Hyperion的Essbase,Cognos的TM1。

而国内的厂商可能是对核算业务比较熟悉,把全面预算管理软件也定位为业务应用。因此基于交易型系统技术搭建全面预算,功能实现也只能停留在:“填表单,走流程”这个层面。估计他们也看到了Hyperion这些财务分析系统的多维分析功能,也在自己的全面预算系统里引入了“维度”概念,但由于底层不是基于多维数据仓库搭建,无法把所有业务数据属性抽象成维度,也就无法建立起各部门业务数据的关联性。最典型的特征就是需要设置大量的表间勾稽关系、汇总关系及取数公式。而这些在基于多维数据仓库的全面预算系统中都不需要设置。

全面预算管理软件的设计理念,并不是仅仅解决预算编报的需求。它真正的价值在于把各业务部门的相对孤立的业务数据,在企业或集团层面整合起来,形成唯一版本的事实(Single Version of the Truth),并建立之间的因果关系关联性。比如企业的战略目标跟销售计划的因果关系,销售计划与研发、生产、库存的关联关系,人力资源计划与财务计划的关联等。这种业务数据关联的建立,可让管理者随时找到导致执行偏差的动因,并随时调整。这比仅仅实现预算编报更有价值。而这是基于交易型平台的ERP无法实现的。

很多企业目前用Excel编报预算而且用的很满意。从预算编报角度来看确实可以解决问题,但从财务分析角度,Excel并不能建立Single Version of the Truth和各部门业务数据的关联性。大家可以看看手上的Excel预算表单,一共有多少个版本,有多少次发错了版本,Excel表间的计算性能多么差。回到对全面预算系统的定位,可以确定,全面预算是财务分析业务,而不仅仅是预算和业务计划的编报业务。

企业信息化的传统步骤是:先做业务应用,如财务软件,进销存,ERP之类,先解决部门级的运营需求。这一步信息化完成后,上财务分析系统,如全面预算管理,商业智能分析BI之类。这也是国外前20年的做法。这种做法的缺点是:在第一阶段的信息化规划时,由于没有考虑到第二步上分析系统的需求,经常导致购买了一堆系统,很多用不上,用上的数据也整合不到一起。

随着企业管理理念的提升和管理软件技术的发展,目前较为合理的企业信息化方案,应该是根据企业的绩效管理方案,设计财务分析应用(全面预算,商业智能分析等)的需求和模型。进而根据分析系统数据的需求,选购能够提供前端业务数据的业务软件。由前端的业务系统采集业务运营数据,再由分析系统进行加工分析,然后向管理者提供分析过的决策数据。这样的信息化规划,使整个企业的信息化系统形成了一个复杂的业务数据加工生产线,源源不断地向管理者提供决策支持数据。这才是信息化能给企业带来的真正价值。

python标准库中的模块 textwrap 可以满足你的要求。示例:

>>> S = "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife"

>>> print(textwrapfill(S, width=30))

It is a truth universally

acknowledged, that a single

man in possession of a good

fortune, must be in want of a

wife

实践是检验真理的唯一标准。

Practice is the sole criterion of truth

实践是检验真理的唯一标准

Practice is the sole criterion for testing truth

只有社会实践才能是检验真理的唯一标准。

Only social practice can be the criterion of truth

实践是检验收真理的标准。

Practice is the measure of truth

考验真理唯时间。

Time try truth

现在考试分数是衡量学生学业成绩的唯一标准。

Now the examination score serves as the only criterion for a student's academic performance

已经进行了一项实验以检查某些标准的可靠性。

An experiment was made to check up on the reliability of certain criteria

为了检验某些标准的可靠性,进行了一次实验。

An experiment was carried out to check up on the reliability of certain criteria

为了检验某些标准的可靠性,进行了一次实验。

An experiment was carried out to check on the reliability of certain criteria

实践标准

practice as criterion of truth

作者 | 傅一平

来源 | 与数据同行

今天跟着我来学学数据仓库的基础知识,希望你结合案例可以把它吃透。

一、数据仓库建模的意义

如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。

数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系”,最能够说明数据模型的重要性。

只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。

性能:帮助我们快速查询所需要的数据,减少数据的I/O吞吐,提高使用数据的效率,如宽表。

成本:极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。

效率:在业务或系统发生变化时,可以保持稳定或很容易扩展,提高数据稳定性和连续性。

质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。数据模型能够促进业务与技术进行有效沟通,形成对主要业务定义和术语的统一认识,具有跨部门、中性的特征,可以表达和涵盖所有的业务。

大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡!

下图是个示例,通过统一数据模型,屏蔽数据源变化对业务的影响,保证业务的稳定,表述了数据仓库模型的一种价值:

二、数据仓库分层的设计

为了实现以上的目的,数据仓库一般要进行分层的设计,其能带来五大好处:

清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。

数据血缘追踪:能够快速准确地定位到问题,并清楚它的危害范围。

减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

把复杂问题简单化:将复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。当数据出现问题之后,不用修复所有的数据,只需要从有问题的步骤开始修复。

屏蔽原始数据的异常:不必改一次业务就需要重新接入数据。

以下是我们的一种分层设计方法,数据缓冲区(ODS)的数据结构与源系统完全一致。基础数据模型(DWD)和融合数据模型(DWI与DWA)是大数据平台重点建设的数据模型。应用层模型由各应用按需自行建设,其中基础数据模型一般采用ER模型,融合数据模型采用维度建模思路。

三、两种经典的数据仓库建模方法

前面的分层设计中你会发现有两种设计方法,关系建模和维度建模,下面分别简单介绍其特点和适用场景。

1、维度建模

(1)定义

维度模型是数据仓库领域另一位大师Ralph Kimball 所倡导的。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。

典型的代表是我们比较熟知的星形模型:

维度退化

星型模型由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。

这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。

(2)建模方法

通常需要选择某个业务过程,然后围绕该过程建立模型,其一般采用自底向上的方法,从明确关键业务过程开始,再到明确粒度,再到明确维度,最后明确事实,非常简单易懂。

以下是阿里的OneData的建模工作流,可以参考。

(3)优缺点

优点:技术要求不高,快速上手,敏捷迭代,快速交付;更快速完成分析需求,较好的大规模复杂查询的响应性能

缺点:维度表的冗余会较多,视野狭窄

2、关系建模

(1)定义

是数据仓库之父Inmon推崇的、从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系抽象。

它更多是面向数据的整合和一致性治理,正如Inmon所希望达到的“single version of the truth”。

当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。

雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。

雪花模型更加符合数据库范式,减少数据冗余,但是在分析数据的时候, *** 作比较复杂,需要join的表比较多所以其性能并不一定比星型模型高。

(2)建模方法

关系建模常常需要全局考虑,要对上游业务系统的进行信息调研,以做到对其业务和数据的基本了解,要做到主题划分,让模型有清晰合理的实体关系体系,以下是方法的示意:

以下是中国移动的概念模型的一种示例,如果没有自顶向下的视野,基本是总结不出来的:

(3)优缺点

优点:规范性较好,冗余小,数据集成和数据一致性方面得到重视,比如运营商可以参考国际电信运营业务流程规范(ETOM),有所谓的最佳实践。

缺点:需要全面了解企业业务、数据和关系;实施周期非常长,成本昂贵;对建模人员的能力要求也非常高,容易烂尾。

3、建模方法比较

一般来讲,维度模型简单直观,适合业务模式快速变化的行业,关系模型实现复杂,适合业务模式比较成熟的行业,阿里原来用关系建模,现在基本都是维度建模的方式了。

运营商以前都是关系建模,现在其实边界越来越模糊,很多大数据业务变化很快,采用维度建模也比较方便,不需要顶层设计。

四、企业建模的三点经验

维度建模就不说了,只要能理解业务过程和其中涉及的相关数据、维度就可以,但自顶向下的关系建模难度很大,以下是关系建模的三个建设要点。

1、业务的理解:找到企业内最理解业务和源系统的人,梳理出现状,比如运营商就要深刻理解三域(O/B/M),概念建模的挑战就很大,现在做到B域的概念建模已经很不容易。

2、数据及关系的理解:各个域的系统建设的时候没有统一文档和规范,要梳理出逻辑模型不容易,比如运营商的事件主题下的逻辑模型就非常复杂。

3、标准化的推进:数据仓库建模的任何实体都需要标准化命名,否则未来的管理成本巨大,也是后续数据有效治理的基础,以下是我们的一个命名规范示例:

五、推荐三本书

总而言之,你可以把我的文章当成一个指引,具体还是要结合企业的实际去推进,但做事的时候要不忘建模的初心:即数据如何摆布才能提高支撑应用的效率,手段上不用区分什么先进不先进,好用就成。

以上就是关于为什么全面预算管理软件必须要用多维数据仓库全部的内容,包括:为什么全面预算管理软件必须要用多维数据仓库、python限制每行长度、实践是检验真理的唯一标准用英文怎么说急~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存