关于作者

用户名:happyscry
笔名:happyscry
地区: 北京-北京
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



My Link

BI

bLoG

fORum

访问统计:
文章个数:414
评论个数:344
留言条数:2




Powered by BlogDriver 2.1

头头脑脑

 

搜索BI百科全书

文章

《ttnn BI 观点》电子杂志下载  (作者置顶)
摘要:《ttnn BI 观点》2005年11月创刊,每月发行,选取内容暂时来源于ttnn邮件列表中对BI话题的探讨,欢迎下载,当然是免费的。同时也希望有志愿者共同加入发展此杂志。 本页暂停更新,最新下载请至:http://happyscry.googlepages.com 查看全文

- 作者: happyscry 2005年12月19日, 星期一 11:19  回复(6) |  引用(0) 加入博采

暂停公告

本BLOG将暂停更新,未来新文章见ttnn 邮件列表:http://groups.google.com/group/ttnn

- 作者: happyscry 2006年04月19日, 星期三 13:39  回复(0) |  引用(0) 加入博采

维度是正交的吗
再来谈谈正交。
 
如果用坐标系来说明正交的含义,是比较清晰的。但如果要说在OLAP分析中,"对于一个"事实"我们可以从"多个不同的正交的角度"来观测,每个角度就是一个"维度"",这句话就有些不妥了。用正交的角度去观测事实,那是理想不过的,但那些维度必定是不正交的,至少目前无法那样。
 
考虑的极端一些,所有维度不正交,于是形成一个维度——"发生的事"。横坐标就是这个维度,纵坐标是度量值。其实这就可以想象成一个关系型的事实表,表中有多少记录数,这个横坐标上就有多少坐标点。对每个坐标值的描述,可能就是"2005年6月某地某产品的销售量",其中"2005年6月某地某产品"就是这唯一维度的维成员。这当然不是正交。因此可以将这个维度拆成三个正交的维度,月份、区域和产品维。他们互相之间没有依赖关系。
 
看,那么事实表的结构也能够体现这点。一般事实表可以用(维ID1、维ID2、维ID3、度量1、度量2)的结构来表示,其中三个维为该表的主键。如果维度是正交的,这三个维ID相互之间没有依赖关系,这张表是遵循第三范式的。如果有一个维其实是依赖另一个维的,例如一个地区维和一个营销案维,营销案只能在某个地区发生,对地区有依赖。显然这就不遵循第三范式。那么可不可以将地区维去掉,直接从营销案维中上钻到地区不就行了?这可能涉及到统计口径的问题,而且,有些营销案可能确实还是所有地区共用的。
 
姑且先不谈统计口径的问题,为这个事实表再加上一个维度,营业厅维。显然一个营业厅肯定是在某个地区的,它也是依赖地区。如此,即使在这个维表中去掉地区维。营销案维和营业厅维也是不正交的,必定存在某个营业厅不承担某种营销案的情况。对此,如何将这些维度正交化?
 
故此,我认为正交的的维度是一种理想化的。维度应该是从业务上面考虑观察事实的角度。它更应该贴近业务上的分类,例如对于产品,可以是按照地区划分类别,也可以按照产品类型或者目标客户群来划分。不过现在通常的做法是从数据得到维度,将某一个代码表转换成维表了事。
 
不过将正交的维度找出来到也是好事,至少想到一个用处,可以估计这个事实表,或者cube的数据量吧。理论上,事实表的记录条数和cube的单元格格数略等于这些正交维度维元素数目的乘积。

- 作者: happyscry 2006年04月17日, 星期一 13:10  回复(1) |  引用(0) 加入博采

数据探索 之 数据源分析
一位同事正在作数据探索,我问,"数据探索有什么方法?",答曰,"没有固定的方法,就是看看数据,作作统计"。
 
不是没有方法,只是没有形成模式。如果一位即将进行此项工作的人,面对一堆数据,他该怎么办?我想第一个问题是"目的是什么?"。如果他对数据不熟悉,答案可能是"搞清楚这些数据结构和关系"。如果他要做的是数据挖掘工作中的一部分工作,这个答案可能是,"哪些客户群是需要关注的?考虑哪些因素?"而对于后者,如果他对于数据还不是非常熟悉的话,恐怕还是得像前者一样,搞清楚数据结构。
 
曾经做过一些数据源分析的工作,是为了定义生产系统和经营分析系统之间的接口,工作的目的就是搞清楚数据结构。这种目的不算非常强,所以采取的方式是首先确定大范围,再逐个表分析,给出表的定义,约束关系以及和其他表的关系。例如需要分析客户、帐务、业务使用的数据,而资源、数据业务的先不管,缩小范围。一般来说,这个范围可以缩到很小,数量级在20以内是个不错的选择。如果太多数据只会让人产生恐惧,难以入手。但其实最终需要分析的表肯定超出20个,因为沿着表之间的关系,能够引出一些新的需要分析的表。
 
虽然一般都会有数据字典帮助你理解数据,可几乎这些文档都只是记录了表结构,表名、主键、外键参照等,而字段之间的逻辑关系,表的概念定义很少见到。例如对于一个用户表,到底这个表里面存放的数据表示什么业务含义呢?找不到这样的信息,如果说这张表中存放了所有的用户(假设我们已经给用户一个定义,客户定购某种产品的契约关系),那么这个"所有"是指历史上所有出现过的用户?或是当前活动的用户?
 
要是对业务熟悉,脑中已经有个概念模型,很快就可以切入重点,三户关系如何设计的?销帐流程是怎样在数据中体现的?预存、托收、赠送费用都如何体现的?带着这些问题去探索数据,当然是事半功倍,可以将这些问题看作为更进一步的探索目的。
 
在纷繁的表、字段中,你真正关注的为数不多,需要将它们挑选出来,重点描述。例如对于帐务上面的费用字段,他们之间的逻辑关系可一定要搞清楚。对于这种关系,一个好的方法就是选取一些用户的实际数据,观察他们的费用,在帐户上的余额每月如何变化,而帐单上的明细是多少,销帐明细中从哪些帐户上扣掉这些费用。观察了四五个客户,这种关系自然明了。
 
最终,可以形成一份数据源分析报告,从限定范围内的每个表开始,给出概念定义,以及设计层面与概念层面不相符之处(例如概念上用户表存放的是当前活动用户,而销户的已经转移到另一张表,但其实此表中还是存在已销户用户),将表的字段进行分组,例如在通话详单中,可以分成本方用户信息、对方用户信息、网络信息、通话信息,计费信息等,这可以便于理解。
 
说了这么多,不还是分析三步曲吗:
1、明确目的——探索数据为了什么?能不能带着问题进去啊?
2、分门别类——根据主题缩小范围,对字段进行分组
3、去芜存菁——挑选重点的字段,用样本观察
 
上面都是在说如何理解数据结构和含义,也将它叫做"数据探索"的一部分了,当然如果是数据挖掘,其数据探索步骤还有更强的目的性,容以后再谈。

- 作者: happyscry 2006年04月12日, 星期三 13:18  回复(0) |  引用(0) 加入博采

饿老婆的悲哀
数据驱动的饿老婆没什么好结果,这可以说是这些年来的惨痛教训。以至于,现在很多客户对于饿老婆没什么好感,认为她太复杂,没有利用价值,于是就有买了相关产品而不用的浪费情况。
 
不过并不是说他们没有用OLAP产品,就没有OLAP应用了。其实这个概念背后包含的是一种分析思路,是共性的。无论报表、即席查询都可以OLAP一下。都是从若干角度去观察事实。
究竟是什么原因导致OLAP难以被接受呢?
 
一般来说,将"分析的对象"称作为"主题",例如"离网用户","集团用户"等等。可通常即使确定了这个对象,却不明确究竟为了什么目的而分析。早先时候,曾经写过一些"分析"的东西,现在想来,和OLAP也是有相似之处的。首先,还是要明确分析的目标,然后对分析的对象进行分类。这应当是OLAP普及的瓶颈吧,至于以往提到的诸如界面操作复杂、缺乏培训,那些恐怕还不是根本的。有人也提到数据质量太差,致使人无法相信OLAP展现的数据,我不能确定这点是否比缺乏分析目标更重要。
 
至于文兄提到的受众明确,这也是个原因。以前,OLAP的界面甚至是直接面对领导的,认为这千变万化的多维组合必然能够满足决策者的任何分析目的。现在,很多客户已经改变了这种想法,注重KPI、CPM等应用,这些才是给决策者的,而OLAP是适合数据分析、市场分析人员的。因此可以说多维分析是个过程,而非目的。
 
在这点上,通过OLAP产品的体系结构也能看出些端倪。现在大多的产品都提供web界面,零客户端的应用。但其弱点还是在功能不够强大,因此一般也提供客户端的工具。除此以外,还有一个重要的特点是,纷纷提供Excel的OLAP插件。哈,毕竟excel是用的做的数据分析工具,这些产品不得不妥协啊。

- 作者: happyscry 2006年04月11日, 星期二 18:15  回复(0) |  引用(0) 加入博采

上周有同事让我对两种报表界面给出评价,一种是Brio的,一种是Crystal的,看哪一种更漂亮。
 
现在俺也学会了中庸,说"两种都不错",这是跟老高学的,他以前看到前端开发的任何界面,都是同样的一句话,"啊,真是太美丽了。",为此,曾经鄙视他,怎么不实话实说哩?
 
这种评价确实没有意义,除了能够给开发者以信心(当然这也非常重要),没有达到预期的效果(除非是界面设计者有意炫耀)。审美这个东西,很个性,俗话有"萝卜青菜各有所爱",也有"情人眼里出西施",你说用蓝色好看,他说用红色好看;你说用宋体好看,他说楷体好看。能分出对错吗?不能,如果你硬要说自己的审美感要强一点,别人也不服啊。
 
出于这个原因,不知道从何时开始,当有人征求我关于界面的意见时,基本上学会隐瞒自己真实的想法。特别还有人除了让你作出选择以外,还顺带给出理由。这可难办,"嗯,这个界面比较素净,颜色搭配非常协调",这样的解释岂不是非常主观,什么叫做素净?什么叫做协调?这种主观的判断,尽可交给设计者去决定好了,如果设计者就是喜欢大红大绿,非要其设计简朴素净的,勉为其难。
 
有些时候,选择会容易作一些,设计者将几套备选方案发给好些人,你只需要像作选择题一样给出一个答案就行了,不用回答为什么。这好像民主一些,应该能够起到一定的作用,至少能够选出不是那么太难看的。
 
但其实,界面的视觉效果是给用户的第一印象。就像人一样,有的人着重打扮自己,为给自己的第一印象加分,有的不修边幅,甚至鄙视外表给自己加分。软件界面也是如此,有的界面华丽,却内容空洞,无甚内容,有的界面简陋,功能却丰富。如果要问,难道这两者就不能结合起来吗?少,也还是像人一样,长得出众又心灵美丽的不多。
 
所以,选择一个软件系统,也跟挑老婆一样,是美貌重要,还是啥啥啥呢?

- 作者: happyscry 2006年04月10日, 星期一 13:15  回复(0) |  引用(0) 加入博采

多维分析的历史
OLAP这个名词是1993年提出来的,可是多维分析不是,早很多年。
 
最早的多维分析是从什么时间开始的?
最早的多维分析软件产品是什么时间出来的?
最早的ROLAP是什么时间出来?
 
从OLAP Report的一份资料中,有这些答案,请看http://www.olapreport.com/origins.htm
 
从不同的角度去分析发生的事实,这是分析问题的本质。虽然我们现在将OLAP和多维分析划上等号,但在93年之前,人们也是在进行多维分析,只是无名而已,人若无名,方可专心练剑。
 
早在上世纪60年代,也就是四十多年前,已经有人发明一种语言,APL(A语言),使用在大型主机上的。大约十年后,1970年,Express问世,也就是现在Oracle Express的前身;在大约十年后,八十年代初,Comshare的System W出台,这应当是第一个使用"多维立方体"概念的产品,以后的Essbase也是大受其设计理念影响。Express和System W刚开始都是用在大型分时主机系统上的。八十年代后期,开始往DOS、Windows上移植。看,这些厂商命运波折啊,Express在95年卖给Oracle,却停滞了好几年,直到01、02年的时候,Oracle才开始着力发展,将Express集成到Oracle 9i中。而Comshare,于03年卖给Geac,这是一家作ERP的厂家,Comshare的产品也就此消亡。因为Geac竟然舍弃自己的多维数据库产品,而去用Essbase和微软的Analysis Service,真是伤心啊。
 
Metaphor可以算是第一个ROLAP产品(当然那时并不叫ROLAP),于1984年推出,因为他提出基于关系数据库来模拟多维操作,这个概念也是直到90年代才流行。之后有Metacube、Whitelight和Microstrategy等采取相似概念的产品。可惜,基于这一策略的独立开发商几乎没什么好下场,至今只有MicroStrategy撑了下来。
 
人们使用多维分析对性能的要求可谓很好,以前的这些产品虽然在性能上做了很多的考虑,例如预先汇总计算、多维存储、聚集表都是能够提高多维查询效率的。到1990年,Cognos推出Powerplay,这是第一个桌面OLAP产品,并且也是第一个基于Windows平台的。桌面OLAP,缩写为DOLAP,其特点是cube数据量小,可以下载到本地,这在十几年前网络带宽不够的情况下,赢得最终用户的青睐。1992年,Arbor推出Essbase,在整个90年代,曾经辉煌一时。98年,微软进入OLAP领域,为了迎接挑战,Arbor便和当时的Hyeprion Software合并,成为现在的Hyperion Solutions。
 
99年微软发布了其OLAP Sevice产品,也就是现在Analysis Service的前身,2000年改的名。并且积极推进OLAP标准化的进程,OLE DB for OLAP,MDX,以及和Hyerion、SAS联合搞XMLA规范,都显示其野心。
 
到了新世纪,一些多维分析产品的厂商纷纷合并,各厂家都在联合优势力量朝全面方案解决提供商迈进,因为那些大厂,诸如十八摸、微软都在虎视眈眈盯着这块市场。于是BO、Hyperion、SAS等都纷纷买入公司打扮自己。但这些资本运作是真的壮大他们还是加速死亡呢,说不准。但OLAP走向标准化却是大势所趋。
 

- 作者: happyscry 2006年04月7日, 星期五 17:32  回复(2) |  引用(0) 加入博采

啥是System Of Record

继续昨天关于主数据的话题,又想到一个概念,“system of record”,这个词语我也一直不明白是什么意思,从字面上理解,曾经将它理解为记录原子数据的表,将它用中文表述成为“记录系统”。见《度量数据仓库系统的指标》。

但恐怕它并非此意,而跟主数据有着很类似的含义。由此,又开始犯糊涂,它们俩到底有什么区别呢?

System of record是一个比较古老的概念,应该是在主数据之前。它是记录某种信息的地方,是唯一的,是标准的。

数据一般会分布、复制。在作版本控制的时候,总得确定一个最新版本,这个版本可以被取出,但如果你要修改,就要锁定这个最新版本,告诉别人,这个最新版本在你这里,修改完了在解除锁定,否则,造成版本混乱。因此,可以将最新版本看作是一种system of record。

譬如对于目前移动正在建设的数据集市,同样的数据会出现在省公司数据仓库、地市公司集市,例如客户的姓名、地址资料,帐单、详单等。总得要以某个为标准,这个标准就是system of record,按理来说,这个标准是在省公司的。但很多实际工作中,并没有这样的标准。例如客户资料,在营业系统中录入的客户资料很多都是不准确的,大客户部门提取大客户资料进行一对一关怀,在沟通过程中完善了客户资料,可这些资料有时就保留在大客户部门自己手中。如此,也就没有了标准。

在统计工作中,通常发生统计口径不一致的现象,同一个指标数,从市场部得到,和从生产部门得到的,有差别。可能是指标定义不同,也可能获取的途径不同。这也是缺乏标准的结果。

我想system of record无非就是强调标准化。作数据管理也要想作版本管理一样,要有个作为标准的地方,可以将数据复制发布下去。如果副本修改,需要更新标准。

因此,说到system of record与主数据的区别,我想他们应当是不同领域中,在不同语境中用到的两个词,前者是在信息架构中用到,是一种数据管理的基本思想。而主数据,大多在数据仓库领域,谈论数据质量的时候谈到,可以认为它用到了前者的思想。

- 作者: happyscry 2006年04月6日, 星期四 13:22  回复(0) |  引用(0) 加入博采

主数据定义之争

看到一篇关于主数据管理的文章,国外的。"主数据"这个概念已经在很多厂商的产品线中出现了,SAS、海波龙等,在ttnn中也多次提及。可对于主数据的理解还是非常模糊的,知道大概是那么个东西,是记录那种实体性的数据,诸如客户、产品等。一般可以划入数据质量的范畴,参见《 数据用途分类,主数据

原来国外对这个概念也是百家争鸣在,各位专家对这个词语下的定义含义上都有所不同,包括数据仓库之父比较郁闷。有的说主数据就是对那种被参照的数据进行管理,所谓被引用的,客户、产品不都是这种数据吗?这确实是记录某种实体的,但是被引用的不光是这些,还有诸如产品类型、客户信用级别,这些看上去可不算是"实体"啊,只能说是实体的属性。

还有一位说主数据是那种表示"跟踪状态"的数据,什么叫跟踪状态?在此之前,此位专家将数据分成三种,跟踪事物状态的、跟踪事件行为的、记录关系的(包括依赖事物的关系和依赖时间的关系)。那么所谓"主数据"就是跟踪事物状态以及记录依赖事物关系的数据,而非跟踪事件行为和依赖事件之关系数据。哎哟,真累,像绕口令一样。这种数据分类方法中,跟金球先生提出的三种分类,有两种是重合的,累积快照型=跟踪事物状态类,事务型=跟踪事件行为类,还有一种周期快照型和这里的记录关系类对应不上。金先生的分类可以用来作为ETL增量抽取之依据,但对于此处的三类,尚不知其用途为何?难道是仅供参考?

扯远了,此位专家提到的跟踪事物状态,也就是累积快照型数据,和主数据关系很大。说到主数据是此种类型的数据,但是否可以说此种类型数据就是主数据呢?未必。

看到这些不同的见解,很是欣慰,很多人认为国外的数据仓库体系很成熟了,其实不也是争执不休吗,争执不休算好的,有些厂家更是强推自己的概念、名词,也不管哪些东西是否让你感到困惑。例如跟主数据管理相关的,就有客户数据集成(CDI)、产品数据管理(PDM)等。如此,国内的数据仓库从业人员也不用妄自菲薄乐,五十步笑百步而已。

在追求这个概念本意而不得之后,不由要重新回头看看为什么会冒出这个概念。其实主数据管理主要还是保证数据的一致性,也就是在整个企业中建立数据标准。客户、产品需要标准化,不然,让你统计究竟有多少客户数都口径不一;客户级别也要统一,分金牌、银牌、普通,其他每个地方都用这个级别。

这是它的目的,要建立数据标准。但主数据是什么?是标准本身?还是标准与那些不标准之间的对应关系,这点还没有想明白。而且,如果说标准,整个数据仓库的目的岂非也是要达到这个目的,所谓"Single Verion Of the Truth"。似乎大家都在争当标准,可究竟谁是"唯一"呢?

- 作者: happyscry 2006年04月5日, 星期三 17:17  回复(0) |  引用(0) 加入博采

一体儿产品的核心能力
一体儿工具究竟给什么样的人用的?
 
从目前主流的一体儿产品来看,有一种将开发者当作傻瓜来看,他们用鼠标托拽就可以完成一个过程,开发、维护都很方便。可有一个问题,开发者并非真的傻瓜,他们希望有更强的定制能力,能够有更强的批处理能力。
 
前段时间,论坛上不是有个人问如何导八百个表的问题吗?源、目标结构一样,考虑用工具实现,那不得做死他,点击鼠标直到抽搐。如果此时能够自动得到源表、目标结构,设计一个模板,生成SQL脚本来处理岂不妙哉?原来的问题提到早先是用SQL实现过,但性能不行,这应当不是没有使用工具不行,恐怕是哪些语句写的不咋地。
 
工具的好处在于其便于管理一体儿过程,特别是具有复杂转换关系的一体儿。但对于普通关系不复杂的转换,以前我们曾经考虑不用工具实现,用存储过程更加简单,例如仅仅从一个表汇总,用存储过程就是一条语句(当然,一般得套上一个通用模板),用工具,得拖上源结构、目标结构,然后再拖上汇总组件等等。可见,如此的开发其实并不便利。再说维护,当一个目标表结构变了,如果是存储过程,改写其中的过程即可。如果是工具呢?恐怕要重新导入目标结构,再用鼠标托拽几次。特别如果是一系列相同类型的变更,例如有十个表的某个字段名要重新命名,在存储过程中可以全程替换。而在工具中,还得一一重新设置,此时的开发者,可真的像傻瓜一样了,坐着枯燥重复的工作。
 
当然,此处并非说存储过程比工具好。而是想抛出一个问题——"一体儿工具的核心功能到底是什么?"
 
常见的工具,如Datastage和Powercenter都在图形界面,对转换这个环节的考虑,内置了多少种插件等等,然而它们在流程控制上其实做的并不十分漂亮。反而,我认为后者应当是一体儿产品的核心功能。
 
请注意用词,上面一直都是在说工具,此处改成了"一体儿产品",因为以前一体儿产品给人的影响是帮助开发者做转换的,是"工具",但实际上其更重要的功能应当是提供数据整合的框架,也就是打好骨头架子,排骨在哪儿,盆骨在哪儿,然后填肉。对于数据整合的工作来说,这个骨头架子就是流程、元数据的支撑。
 
流程,也就是抽取、转换和装载等过程的依赖关系,它们执行的串行、并发控制等;元数据则集中在一体儿的元数据,先不用考虑其他诸如数据质量等元数据,一体儿的元数据其实主要就是源、目标结构,转换逻辑,过程依赖关系、数据依赖关系等。
 
缺乏这个核心能力,一体儿只能是一种工具,一种造肉的工具,本来想堆个人性,可哪些肉就像烂泥一样摊在一起。
 
可以套用一个一般性原则,"专业的人作专业的事情",不光是个人,是企业,都要考虑自己的核心竞争力,在这方面做的比别人强才牛比。那么一体儿产品的竞争力在何处呢(这里并非是指具体某种产品)?是否有其他可替代的呢?如果说在抽取、转换、装载本身上,肯定有替代,抽取,一般用SQL能做到,产品的竞争力可能是内嵌对多种数据源的支持,可一般国内,这种情况似乎也并不十分多见,常见的数据源类型也就是表、数据文件嘛;而装载,即使是现在,基本也都用的是数据库自带的快速装载工具。至于转换,上面也提到,没有复杂规则的转换也不是其强项,只有那种具备复杂的规则(难以管理)的转换,它可能还能凸现作用。说到转换的性能,可能工具在这方面考虑的比较多,确实能够比普通的SQL性能好,可一般也都有复杂的参数配置,诸如缓存大小什么的,如果你配的不好,恐怕连普通SQL的性能都达不到。反而也体现不了它的优势。
 
能够形成自己优势的就是对流程的控制、调度,数据库没这个功能;元数据,其实数据库里面已经有表结构的元数据,可可能分散在不同库中,或者如果数据不是放在表里,而是在文件里面,这个元数据也就未被数据库记录了。因此这也可以算是一体儿产品的 优势之一吧。
 
如果一体儿产品能够提供如此的框架,再在抽取、转换、和装载上面提供一些可选的内置功能。最后,在项目中,开发者可以用存储过程来处理转换,可以编写c程序来抽取数据,可以用命令行调用第三方工具来装载数据。而这些程序都遵循一体儿产品的某个接口,例如输入输出参数、命名、位置等约定,那么这些过程就都能够被管理起来,形成比较完整的数据整合系统。

- 作者: happyscry 2006年04月3日, 星期一 17:37  回复(0) |  引用(0) 加入博采

度量、指标和指示器之区别

有位朋友提到什么是KPI(Key Performance Indicator,恐怕这篇文章不可避免地提到英文了,大开杀戒),对此,正好说说度量、指标和指示器的区别。

度量,用中文表示可以是名词,也可以是动词。名词的意思可以是"度量"的结果值或是指"度量"过程。动词就是丈量、衡量这个行为。在英文里面,Measure可以是度量值的意思,也可以是作动词,而"度量过程"这个名词用Measurement来表示。

因此理解度量这个词,可以从其本身意义理解。度量,其相近含义包括丈量、衡量,首先得有个标准,譬如说丈量得有米尺,衡量有杆秤。度量出来的结果,度量值也就必须是有个单位的。例如重15斤,长1.4米等。此处,斤、米就是标准,有了这个标准,不同的度量值才有可能比较,你用15斤和1.4米比较可没什么意义。

度量和维度构成OLAP的主要概念,这里面,对于在事实表或者一个多维立方体里面存放的数值型的、连续的字段,就是度量。这符合上面的意思,有标准,一个度量字段肯定是统一单位,例如元、户数。如果一个度量字段,其中的度量值可能是欧元又有可能是美元,那这个度量可没法汇总。

在OLAP中还有计算度量的说法,用一个总费用除以用户数,得到每户平均费用。但这究竟还算不算度量了呢?我认为已经不是原本意义上的度量了,只是为了称呼方便而已。

这就得说到指标,英文的Metric。在绩效管理软件里面,通常是有这个概念的。如果非得给Metric一个定义,我愿意表述为"它是表示某种相对程度的值"。区别于上面的度量概念,那是一种绝对值,尺子量出来的结果,汇总出来的数量等。而指标至少需要两个度量之间的计算才能得到,例如ARPU,用收入比上用户数,例如收入增长率,用本月收入比上上月收入。当然可能指标的计算还需要两个以上的度量。

而Indicator的字面意思为指示器,在KPI中,最后一个I就是它,但是用中文称呼它的时候,几乎总是叫"关键绩效指标",而没有叫做"指标器",也就造成一些混乱。

想想我们身边哪些东西是充当指示器的。红绿灯,提醒行人车辆是否等待或通行;监控室里的警报灯,提醒哪儿出现异常;汽车仪表盘,提醒驾驶员油是否足够,速度如何。它们起到的作用是传递一种宏观的信息,促使人的下一步行动。红灯停绿灯行;看到警报亮起要赶紧派人查看。目前常见的企业绩效管理软件中,仪表盘(有的地方称作驾驶舱)的展示界面也是必不可少,正是用这种直观而比较有象征性的指示器反映企业运营状况。

可以设想提出KPI的初衷,是希望企业通过一些粗略(非细节)的信息(而非数据)来为下一步的决策作出依据。导致不同的决策行为必定是离散的输入,最简单的就是一个开关,是或不是(例如警报灯)。如果说度量和指标是定量话,指示器就是一种定性的

现实中,大家对于三者的称呼并不那么严格,"指标"是最通用的称呼,"度量"显得有些学术和技术话,而"指示器"很少听人提起。在电信的经营分析中,确实很多都实现KPI,正如上面所言,领导不可能去看细节的数据,他们关注的是宏观面的经营状况,因此需要一些"指示器"来反映。

然而,这些系统中的KPI并非完全上面提到的指示器,很多系统建设称为度量系统或是指标系统。而对一个企业,哪些指标能够充分反映经营活动,这也是需要精心制定的,而不是让技术部门提出一堆似是而非的指标名称,诸如在网用户数、收入之类,这不是KPI。

关于这三者的区别,曾经在数据质量的考虑中应用过,参见《数据质量体系 之 概念》。再总结一下。

"度量"是绝对的定量值;
"指标"是基于两个或更多度量计算得出的相对值;
"指示器"是基于度量或指标,并依据某个基准值得到的定性结果;

- 作者: happyscry 2006年03月31日, 星期五 16:25  回复(0) |  引用(0) 加入博采

分析模式之实践
目标、角色、策略、评估。
 
昨天在和客户交流过程中,用这个模式取得不错的效果,基本上涵盖需求的内容。从顺序上看,客户对策略的谈论兴趣要大于对角色的兴趣,而且角色似乎没什么好谈的,而策略是非常详细的业务规则。当然,这可能是特例,不遵循"先总体后细节"的原则。
 
需要对这个模式再深入思考。
 
用这套模式是为了引导谈话,譬如说目标,明确指出是否有一系列指标,并有相应计划值。未必立马就能给出这个数字,或者是含含糊糊,这是必须明确的。
 
谈到角色,后来发现,这种定向类营销中的角色其实大致一致,分成外部系统和用户两类吧。外部系统包括数据源系统和营销支撑系统两种,用户类包括模型设计者、营销设计者、活动执行者三种。如此,需要将这几种角色对应到实际环境中,例如数据源系统有计费系统、客户管理系统;营销支撑有呼叫中心、大客户系统等;模型设计者一般是集成商自己了,而营销设计者可能是市场部或是相关职能的部门,活动执行者通常是客户服务中心、营业厅等。用户类角色在谈到策略的时候,还需要细化,落实到具体的组织结构
 
谈策略,原来我设想的有些理想化。曾想过能够对目标进行分群,不同群体的用户可以辅以不同营销方案,并且可以形成诸如决策数的策略判断路径。但实际上,做到这一步很难,而且并不一定能有好的效果。从另一个角度来考虑,目前谁对营销环境最熟悉?恐怕是处于最前线的人,他们天天接触客户,知道自己的营销方案哪种更加能够吸引人,只是这种知识是在他们的大脑中,没有形成文字。
 
如果非得拿出几套策略的话,必须得由这类一线人员一同讨论,而且显然这样的讨论周期不会短。但另一方面时间不等人,又不允许这个周期过长。于是就像数据仓库建模的矛盾一样,是建一个大而全的模型?还是一个小而精的?
 
以往曾经有个专题将营销策略做到很细化的程度,对不同类型的客户,其不同的消费特性,推荐不同的营销方案。然效果并不理想。因为这样定的太死,反而限制了一线人员的发挥。但从他们领导的角度,确实希望能够这些一线人员像傻子一样照剧本唱戏,却事与愿违。
 
因此,我们也选择了偷工减料,对于策略的细化暂且不作,因为凭在座的几位拍脑袋想出的策略恐怕也是贻笑大方。
 
谈评估的时候,也有这个问题。按照原来的希望,能够提炼几个真正评估营销活动效果和效率的指标,然而这也非易事。大家只能谈需要看什么信息,看什么属性、趋势。于是,再一次偷工减料。
 
这又引发另外一个不大相干的问题。作需求的时候,遇到不能决定之事,特别是那种可能需要很长周期决定的事,怎么办?是组织资源立马办了?还是延后呢?立马就明确,可能导致跟不上市场分析需要,而延后,恐怕又会不了了之。
 
哎,难呐。

- 作者: happyscry 2006年03月30日, 星期四 17:22  回复(0) |  引用(0) 加入博采

定向营销型专题的分析模式
有一种专题分析系统,它的特点是定位出目标客户群,采取特定的营销手段,初步形成了闭环反馈的流程。一般来说,由挖掘模型的支撑得到目标客户的名单,对这些名单分而治之之后,营销信息还需要反馈到专题系统进行模型、营销活动执行的评估。
 
姑且称此类专题为"定向营销型专题"。

本文主要谈谈此类专题作需求分析时候的模式,撇开细节的挖掘模型不谈,那是设计层面的东西,可以将它看作一个黑盒,输入一堆基础数据,输出目标客户名单。这一段如此表述,其通用性是很高的,对于不同城市,可能最终模型上有差异,但都是如此的输入输出。在名单输出之后,根据名单作营销,这是变化非常大的,有的城市可能使用自动的名单分配,有的可能是手动,有的利用现有的某个支撑系统,有的可能需要重新开发一个外挂系统。可以将这两者称为"分析模型"和"营销流程"两部分。

再简要重复一下,"分析模型"输出名单给"营销流程","营销流程"输出执行活动反馈信息给"分析模型"。

那么在作需求分析时,通常要在哪些方面是重点把住的呢?可以说这是一种"分析模式"吧。

"目标、角色、策略、评估"

首先是目标,这个专题最终要解决什么问题,通常,目标需要用一个或几个指标值达到某个特定值来表示。例如"至某年某月,离网率小于3%"。这也是衡量系统成败的标准,或许的营销活动都是针对这个目标的。如果是没有量化的衡量方法,可以说,这个专题已经存在很大隐患了。例如这样一个目标"让客户价值提高一个档次"。

当然,影响此类目标不光是技术原因,还有营销活动甚至是大局面的原因,技术原因要在"分析模型"中搜寻,而营销原因,恐怕要在"营销流程"中搜寻,所以面对总体的目标,必须得有评估模型和营销活动的方法。

第二个,角色,一般是指与系统边界之外与系统交互的人、物、系统。这里即是指参与专题所支持整个过程中,包括建模、营销过程的部门、人员,以及外部系统。从一般意义上,大致可以将分成数据源系统、营销支撑系统、建模人员、营销设计人员、营销执行人员几类。但对于不同客户,其对应到组织结构中是不大相同的,例如营销设计可能是市场部的职责,有的可能变成信息部的职责。究竟属于那个部门,也是需求分析阶段需要确定下来的。

对于具体的执行层面的角色,还得计算其数量,并且评估其可以承受的营销活动量,这会决定目标客户名单的数量。

第三个策略,其实在整个专题中,营销策略的制定工作量比重很大,只是他并非由系统设计者主导,多半由客户市场人员主导(除非是专门的咨询项目)。

在策略制定之前,需要对目标客户进行分群,哪些是高价值的,哪些通话行为有明显特征的。这种分群可以通过业务经验,当然也可以通过聚类的挖掘方法了。其目的还是为了支持后续的营销流程。

这个策略的本身设计就可以单独拿出来说的,从目标客户的分群,针对不同类型的客户将用用什么样的营销方案对待,谁来执行,执行的具体步骤等,都要在策略设计中实现。可以用策略图来表示,类似决策树的模样。针对每种类型的客户,考虑其属性,例如是否消费超过200等条件判断,最终落实到推荐的具体营销方案。例如对于低价值客户,可以用短信的方式群发促销信息,对于高价值客户,可以由客户经理一对一营销,甚至上门服务。

通过策略的制定,客户的类型、参与策略判断的属性,都需要体现在目标客户名单中,也就是说策略制定决定了客户名单的内容。

第四个评估,是要有方法衡量模型、营销活动的完成目标的效果。因此必须在执行营销活动之后将执行情况返回给模型。通常,评估也是通过一系列指标体现的,例如对于活动来说,如果是电话营销,可以有响应率、应答率来评估基本的通话情况,用成功率来衡量目标客户接受营销方案的比例等。

要得到这类评估信息,显然必须要将营销活动执行结果反馈至模型,对多少客户进行营销,多少失败了,多少成功了,多少根本就联系不上。

当然执行反馈信息可以从两个角度来看,一是从评估者的角度,评估者希望得到评估指标,希望能够有多多的反馈信息得到。也可以从执行者的角度,会有哪些反馈信息,执行人员能够承受填写反馈的工作量来精简反馈的内容。这似乎是对立的两个角度,一个希望反馈多,一个希望少填反馈,需要平衡。

此四点,窃以为是定向营销型专题的分析模式。当然,所谓"模式",是仁者见仁智者见智。

- 作者: happyscry 2006年03月28日, 星期二 15:20  回复(0) |  引用(0) 加入博采

《ttnn BI观点》200603 第五期发布,欢迎下载!

兄弟姐妹们,杂志第五期发布了,真是个好日子。

下载:http://happyscry.googlepages.com/ttnn_bi_opinion_200603.pdf (578K)
往期下载:http://happyscry.googlepages.com/

本期内容在数据仓库架构和需求分析这块有不少内容,也涌现出不少新朋友加入,发表自己的观点,好欣慰啊。

这个月大部分的时间都是在广州呆着,阴雨绵绵的天气搞得人很是无奈,而且上网很不方便,于是和很多朋友的联系变少,因此而受到一些责备。既然俺漂泊到广州,有没­有朋友愿意认识一下,通通邮件,或者发发短信,电话聊天,再甚者,出来饮茶更好了。

请看本期目录:

3 精神胜利法
4 怎样的架构设计才是真正的数据仓库架构
11 indicate的挖掘对数据仓库项目的重要性
14 变幻莫测
17 数据仓库总体架构
18 开源BI向我们走来(我们就是不向它走去,看,丫憋不住了吧)
20 再谈谈ODS
23 BI需求、分析模型之我见
26 爱你在心口难开
27 数据仓库是不是实时的?
29 分析问题的模式
30 数据仓库选型
33 BI传奇 之 龙虎斗(上)
34 对于产品和项目的需求分析有什么不同

- 作者: happyscry 2006年03月27日, 星期一 12:59  回复(1) |  引用(0) 加入博采

需求——对系统边界的描述

关于产品和项目的需求分析差异问题,和西宁私下沟通了过,明晰了一些。其实,我的回答并没有多少集中在差异上,而是对需求应该包含什么提出看法。

主要观点是,需求应该包括对系统边界的描述,不论这个系统是产品还是项目。所谓边界,也就是将这个系统看成一个黑盒子,和外界的交互。"这,是一个黑色的立方体,长45厘米,宽23厘米,高3厘米,盒子的每个角都不尖锐,上方平坦,并有柔软质感;下方在四角之处都有凹进去的螺丝口,可以接杆子,以作凳子用。"

这就是仅仅对其功用的描述,其目标是作凳子用。这可以看作是功能性需求,当然如果还有一些约束,例如"此立方体可以承受300斤胖人之重",这就可以看作是非功能性需求。但同样还是在描述边界。而对于其内部构造如何,在需求中不要描述,例如盒子是空心的还是实心的,材质用钢板还是木头,这都不是需求,而是已经在设计了。

因此,在描述需求的时候,重要的就是界定系统的内外。看过很多的需求,自己也写过很多的需求,界定内外不是容易的事情。有几个原因,一是没有内外的概念,不知道需求描述的是什么;二是知道内外,然而对于边界的定义,没有足够的词语描述清楚,只能用对系统内部设计来代替。这样的结果是,一份需求书,你搞不清楚它是需求还是设计。

譬如有的需求书,它描述了系统内部模块划分,三层结构,数据存储、中间逻辑等等。比如专题分析的需求中,包含了对挖掘变量的描述,嗬,将上百个变量列在文档中确实能够让页数增加。然而这恐怕不是阅读对象关心的,也不符合分离变化与不变的原则。需求书的阅读对象关心的是系统是什么,而非如何实现。系统是什么是相对不变的,而实现方式却是相对变化的。例如上面盒子的例子,用它作凳子是不变的,而至于用木头或是钢材,是后面考虑,可能会反复变化的。对于专题分析也是如此,这个分析针对的业务问题,诸如哪些客户最有可能离网,这个目标是相对固定的。而你是考虑使用呼转次数或是话费突降的角度来考虑,这是变化的。因此,在需求中,绝对不要将设计的东西加入进去(除非你是想便于说明问题),因为那种东西不能够作为一种"规格",用于验收、测试的标准。

当然,有时候根据客户在作要求的时候,并非完全从系统边界上考虑,而真的会从系统内部提要求。譬如说,这个凳子,你就得用钢板,不能用木板,至于为什么,可能这仅仅是他的喜好。软件系统也是如此,有时候他会提出要求,你就得用某种产品,你就得用分类模型或者是神经元算法来实现。面对这样的要求,我也不知道该如何在需求书中表述,难道写上一堆系统约束——必须用叉叉产品,不得在系统中出现任何英文字母…?

需求所描述的系统边界,用UML中的用例图来表示是比较简洁的,用例图中的"角色"既是外部与系统交互的人或物或其他系统,"用例"则是系统表现出来的功能,而上面还提到了一些"约束",不知道在用例图中是否有对应,研究不够。

用例图是起到示意作用,在需求规格说明书中,需要对这些角色、用例、约束进行阐述。例如在描述事务型系统的时候,会涉及到业务流程中参与的各个角色,有必要对每种角色进行定义。而对于一个分析系统,总感觉其流程不似事务型系统般流程清晰,因此,在早期的经营分析系统需求书中,大量篇幅在定义分析主题的维度、度量构成,却忽视,这个分析主题真正的业务目标和流程(谁来用这个多维分析?产生什么输出?)


- 作者: happyscry 2006年03月24日, 星期五 11:49  回复(0) |  引用(0) 加入博采