分类:
2008-10-28 18:10:11
当谈到数据的清理的动机的时候,公司会把孩子和洗澡水一起丢出去吗?或者,有没有含有洗澡水中能够捞到孩子的知识呢?
公司是否会在“清理”或者删除类似名字的替代拼写和原来的地址的信息的时候,失去有关他们的顾客的有价值的信息呢。保存并分析这些过时的,通常被称为脏数据的信息,可以减少市场营销的成本,帮助发现欺诈行为,并且提供对客户的超过360度视角的智能信息。把数据丢掉就是丢掉知识,David Loshin 说,他是位于美国马里兰州的Silver Spring 知识完整性公司的总裁和首席顾问。
“如果你清理了数据,那么你就可能删除了那些有可能带给你额外信息的有意思的材料,” Loshin 说。
因为在现实生活中一个人会扮演很多种身份,根据不同的环境,被赋予某个名字、昵称或者名字的首字母,Loshin 说只保留一个版本的名字并不会提供一个完整的画面。只在文件中保留最常见的名字或者地址,当涉及在不同数据库匹配记录或者查询列表的时候,就会带来障碍。Loshin 还认为从“前后关联的元数据”中可以获得有用的信息,例如某个人还会出现在哪个市场列表中,过去的雇主,甚至是以前的头衔。
但是Loshin 警告说,“如果你没有在合适的地方进行任何的数据质量处理,或者合适的数据管理处理,那么你也不要以为你已经开始从数据中获得有价值的内容。”他说,这个概念只有在公司能够以一种有意义的方式管理和处理数据的时候才有用。更进一步地讲,公司必须评估成本与修补系统和实现工具来利用历史数据所带来的收益。
处理这些数据,就是供应商们,例如位于英国的Reading Identity 系统公司,希望增加价值的方式。Identity Systems公司提供了数据查询和匹配软件,使用了算法和模糊逻辑,它们可以在系统之间找到并将身份数据归类。这个软件的动作就类似于一个业务用户,完成对人类来说很显然的工作,但是对计算机来说却没有那么容易。
Identity Systems 公司从法律执行和智能代理那里开始了工作,这两个地方都有保存他们收到的有关某个人和事件的所有数据的习惯,Ramesh Menon 说,他是北美运营公司的副总裁。在那些区域,他说,信念就是一字节的数据——即使是过时的数据——将来都有可能是有用的,特别是当与来自新的事件的信息或者来自另一家代理的知识相结合的时候。
Menon 相信,私人业务也可以从此类思考上获得收益。查询,数据库共享和制度遵守都是身份匹配可以增加价值并缩减成本的活动,他说。
例如,许多的公司在听说某个顾客最近搬家了或者结婚了之后,都仅仅会在公司的数据库中更新他们的信息,并且删除以前的历史。如果这家公司用原来的名字和地址进行查询的话,就有可能得到不正确的另外一个人。如果他们了最初的客户数据,当现有的客户发生另一个变化的时候,他们就会意识到。这类问题都有很大的成本,与此相关,类似重复的邮递、浪费的销售人力和其他的类似客户不高行的暗示。
但是当Identity Systems 公司给客户介绍他们“保存了一切”的时候,这个想法又不是那么容易接受,Menon 说。实现经过修正的数据库结构,并且和处理更多的数据是一个显而易见的问题,但是实际上还有更多的问题存在。
“这里也有一个哲学上的障碍”,Menon 说。“目前有这样的一个想法,就是数据必须被清理干净,否则它们就是没有价值的。”
就是说,Menon 承认,保存一切并不是对于所有的公司都是值得的。
“它根据客户对于这个企业的潜在的价值而定,” Menon 说。或者,他补充说,了解谁离开了可能是有价值的,因为有可能会出现这样的一种情况,就是Patriot 行动法案规定了公司如果雇佣了看守列表上的人就会收到严重的罚款。欺诈的检测是很多公司应该保存历史数据的一个原因。
Ted Friedman 是位于美国康涅狄格州斯坦福的Gartner 公司的研究副总裁,他同意历史数据具有一些价值的说法。但是对于大多数的公司,他说,成本收益分析并不支持系统的修补。
“你决定在多大的程度上保留旧版本的数据实际上是非常倚赖于行业和应用的,” Friedman说,引证了法律执行、金融机构和欺诈检测行业的历史数据具有的潜在价值。“我不认为每个人都应该保留一切。”
知识贴士:什么是“脏”数据?
数据库的并发操作带来的问题主要有以下三种:1)丢失更新问题;2)不一致分析问题(读了过时的数据);3)依赖于未提交更新的问题,在数据库技术中,把未提交的随后又被撤消的数据称为"脏数据"。
通俗一点就是在几个并发进程中,当有若干个进程都用到了数据A,比如当进程1刚刚读了A数据后,进程2就对A数据进行了某种计算操作,将数据A的值改变了并保存了,此后进程1本想再次读取原A数据,结果读取的却是已经改变的A数据,这样导致进程1的数据发生了错误,就把此时进程1读取已经改变的A数据称为读“脏数据”。
举个例子:
(t1,t2)是两个进程 t1 t2 A: 读c=100 c=c*2 写回 C: 读c=200 B:C恢复为100 这样t2进程读了个脏数据 |