innovate511 发表于 2011-05-31 22:20

为BI开个好头--数据模型构建概要

为BI开个好头--数据模型构建概要


BI的 数据模型抽象过程,是对业务过程的再梳理,将线性的数据流,改造成多视角的立体数据。

那么有了数据模型的强大支持,数据分析才有了足够发挥空间,数据分析之后就是BI的应用。在数据分析阶段,用户可以介入很少,就是提出分析的方向,由分析人员根据分析方向自由发挥,在BI应用阶段,则需要用户全程加入。


传统的数据模型中,都是以常规的维度和事实来描述事务,这种模式下,BI应用要分析得更加深入,往往需要BI分析人员将DW的原始数据抽取出来(经过清洗整合的数据还是比业务源数据好得多),然后自己再加工处理。这样既增加了数据分析的难度,也增加了成本和风险。


观察一下多少BI分析是这样操作的,你就应该知道数据模型是否需要改进,反正我是这样判断的,如果有满足不了分析的数据模型,我就会考虑模型再造,既是对公司BI的负责,也是自己的提高。我想包括很多XX牛项目,也存在这样的情况吧,只不过如果分工很细的话,数据仓库的数据模型再造较难推进,随着当前企业多业务交错融入,好的数据模型越来越难以设计。

如果对数据模型再造,来改进BI的现状,就要再深入理解业务,可能需要抽象出新视角、新的维度,以及新的指标,来辅助数据分析更加深入透彻。

例如我在构造电子商务数据模型的时候,不会依据电子商务5大数据源来构建数据模型,而是依据电子商务业务本身来划分专题、专题之间的相互关系等,构思出了客户访问生命周期模型、客户订单生命周期模型、客户生命周期模型、商品生命周期模型四大类,而且四大模型之间的影响关系也非常清晰,从这四大模型之中,完全看不到任何业务数据源的影子。

而在实体商企业中,商品生命周期模型,可以作为企业级生命周期的一部分,作为数据集市构建,这样避免重复开发,也能满足电商的特殊性。作为品牌商经营,这几大模型就足够了,不过如果作为零售代理商或电商平台商,还需要有商品竞争对比模型,而品牌商有自主定价权,这类分析重要性没那么大,主要在渠道特点的分析上。


如果我们的数据模型是根据业务系统的表结构来构建,那就只相当于有个物理模型,因为业务系统的业务数据都是线性的,无法直接拿来有效地分析,完全没理清楚,从分析角度,需要哪些数据信息。例如电商业务系统会至少有订单信息、付款、物流数据,也有点击流日志数据、外部网站爬取数据、客服数据,然后还有企业方计划数据。 像这些看似独自独立的数据,包含了业务运营的相关的全过程,以及相关影响信息,所以数据模型就需要按照上述专题进行描述。因为这样的描述,可以衍生新的维度、指标,将业务描述清晰,从而将静态的业务数据,在BI数据模型中,演变成可以多层次、多视角动态分析的立体模型。

另外说一个项目开发问题,正因为我的数据建模未太多依赖数据源表结构,BI的导入也非常快,数据模型实现建好,拿到数据就可以顺利导入,数据分析也随即展开,BI应用也逐步和用户讨论。

innovate511 发表于 2011-05-31 22:29

有朋友在QQ里提到,模型应该有层次的,不能混在一起。不过层次的设计是一门技术,是模型设计的一部分,所以概要帖子短短数百字就没办法说了。

数据模型的主题设计,肯定是有层次关系的,其中物理模型的层次关系,在INMON的书中描述的比较清楚,逻辑模型的层次关系,在KIMBALL的书中描述的比较清楚。只不过业务模型的层次关系,二者好像都未提到。

记得以前参与的基于CRM的国际大项目,主题分为4个层次,每个层次相对独立的建模、相对独立的ETL,但是都互相有数据接口,这是由他们业务层次决定的。

在我举的例子中,访问订单生命周期需要访问生命周期的分析支持,而订单生命周期结合访问生命周期,就是更高一层的用户生命周期的支撑,只不过用户生命周期除了上述2个外,还需要客服等业务的加入的支持。商品生命周期与用户生命周期,他们之上,就是战略和财务这个级别的层级。

innovate511 发表于 2011-05-31 22:30

现在就说到数据模型来进行数据分析了。就拿大家常见的客户行为分析,从我举的例子中可以看出,客户行为分析其实可以贯穿全部数据模型,因为任何一个专题,都可能影响客户的行为,包括商品生命周期。 那反过来说,我们能不能设计模型的时候,从客户行为来设计呢?

我想如果以数据分析,甚至BI应用层面作为数据模型构建的基础,那是十分荒谬的。这也是为啥要将数据模型、数据分析、BI应用作为三个阶段独立又结合上下层关系考虑。


众所周知,客户行为的分析,必须从哪些地方可能影响客户行为入手,例如电商,就包括商品(商品品类和价格为主)是否符合预期、网站是否能帮助他快速找到合适的商品(包括商品描述是否能让客户足够知晓)、下单和付费是否满足客户的习惯、出货和快递是否及时、商品到货后是否达到他预期、客服服务是否及时满意、是否根据客户的需求有相关活动等对客户有利的提醒、提示,等等。


那如果你要根据这些东西来建模,势必杂乱无章。当你有新的因素导致客户行为变化的时候, 是否又有进行模型改变? 所以根据数据分析来进行数据建模,是十分荒谬的。


那么基于数据模型,如何进行数据分析呢?我想至少有2个出发点进行分析,一是客户的需求方向进行分析,二是从数据异常入手进行分析。如果客户只提出要几张报表,那么可能是客户定位这个系统就是报表系统,而非BI系统,或者客户想建BI系统,但不知道BI是何物,以为BI就是更方便地出他们原有的报表而已。


就拿客户分析来说,针对不同行业不同企业的特点,有着不同的分析目的,这需要多和客户交流确认分析目的。二是客户数据异常分析,包括客户生命周期变化、访问周期异常、商品喜好购买异常。

innovate511 发表于 2012-03-26 20:12

没关系,老帖子了

zhlin0054 发表于 2012-08-10 19:11

感谢各位的分享
页: [1]
查看完整版本: 为BI开个好头--数据模型构建概要