还剩5页未读,继续阅读
文本内容:
脏数据的定义脏数据是指源系统中的数据不在给定的范围内或者对于实际业务毫无意义,或者是数据格式非法,以及在源系统中存在不规范的编码和含糊的业务逻辑比如会员已存不存在的,但数据库中还存留着他的留言信息,好友信息等等,实际没有作用,又占地方,到时还要影响统计的正确性脏数据的隐患很少有什么项目比数据整合更令人头疼的了如果我们换个方式思量,就会发现有一件事是IT比数据整合更可怕的,那就是数据整合浮现了问题有时候,这是由于用户出错或者恶意用户的蓄意破坏,导致不良数据堆积引起的问题有时候原始数据是完好无损的,但是从一个系统/数据库转移到另一个系统/数据库的过程中丢失、被删截或者被修改了,也会造成麻烦数据会过时,也会在你企业内部的人事斗争过程中不幸被流弹击中,要知道每一个人都是死抱着自己的一小片数据存储地盘,不愿与其他人分享有不少的方式会导致数据项目的流产,本文列举了其中五种最常见的情况,告诉你究竟是什么地方出错了,将会导致什么样的后果,以及可以采取什么措施避免同样的情况发生在自己身上文中所涉及的公司名字一概隐去希翼不要让你自己的经历像本文所叙述的对象那样沦为他人口中的经验教训“亲爱的白痴”邮件事件
1.小心你的数据来源,它有可能会反过来摆你一道这个事例源于一个大型金融服务机构的客户呼叫中心就像几乎所有的客服柜台一样,这里的客户服务代表们要做的就是接听电话,并把客户信息输入到一个共享数据库里这个特殊的数据库里有一列是用来记录称谓的,并且是可编辑的但是数据库管理员并没有对这一列的输入规则进行约束,例如只能输入某某先生,某某女士之类的称谓,反而可以接受客服代表输入的任何长达或者字符的内容在倾听一些客户愤怒的投诉时,部份客服代2030表就会给每条记录添加一些他们自己想出来的不彻底友善的注释,例如“这个客户真是个白痴”这种的注释这种情况持续了不少年,因为机构里的其他系统都不会从这个称谓列中提取数据,所以没有人注意到这一情况其后某天,市场部决定发起一次直接邮寄活动来推广一项新服务他们想出了一个绝妙的点子与其花钱购买一份名单,不如利用客服柜台的数据库于是,以诸如“亲爱的白痴客户这样的措词抬头的邮件开始源源不断的发到客户邮箱Linlin”里固然没有任何客户会签约使用这项新服务该机构直到开始检查他们所发出的邮件时,才弄清晰前因后果我们拥有的数据不是属于我们自己的如今世界的联系日益密切,很可能会有人找到了你的数据,并把它利用在一个你彻底想象不到的地方如果你从别的地方获取数据,那末在你利用它们执行新任务时,必须要确保你的数据质量管理水平过关了判断水平“过无非关”,取决于你要如何利用这些数据正确性是判断数据质量的基本要素之一,对于直邮产业,数据的准确率达到至就可能就够了而对于制药业,你就必70%80%须达到甚至更高无非,没有什么公司想要或者需要完美的数据,更不用说为了得到完美99%数据而付出金钱,因为要数据保持完美的代价太昂贵了问题是要怎样利用数据,以及数据的准确率达到什么程度才足够好死去的人有没有选举权
2.相信大家对数据清洗这个术语并不目生,它是数据整合过程中必须进行的一Data cleansing个复杂过程,通过检测和清除掉垃圾数据包括不正确、过时、冗余以及不完整的数据,以保证数据的正确性、可靠性、完整性和一致性从字面上,我们就可以看出数据清洗是一个“生死攸关”的问题下面讲述的也是“生死攸关”的事例年美国国会选举期间,某政府工作志2022愿者在通过电话让已登记的选民来投票的过程中发现,每十个选民中有三个是已经死去的人,因此没有资格投票现代社会里死者数据不全所引起的问题很常见,确实也给生者带来了很大的困扰对于诸如保险公司、投资公司、基金公司、通讯公司等拥有大量客户的服务类企业而言,客户数据是其重要的财富来源然而,客户数据质量问题却向来是困扰企业开辟新服务项目的绊脚石在一项关于客户数据质量的调查研究中发现,平均而言,・的客户数据记录存在各种问815%题,例如各种证件号码输入错误、联系方式过期等等其中有五分之一的数据问题是由于客户的死亡造成的,其中一部份客户死亡时间超过十年却仍保留着股东的身份这并非客户的疏忽,只是自然发生的问题私营企业上市、被并购或者拆分,而他们的股东数据却向来被保留着,甚至长达数十年之久无非这些垃圾数据所引起的问题可能比起在不必要的邮寄费用上浪费一点钱更为严重最令人耽心的问题莫过于欺诈和盗窃如果这些情况发ID,生在颇具影响力的机构组织里,必会导致更为严重的现实问题,例如已故股东的红利被目生人兑现,继承人的继承权被剥夺,公司机密泄漏等等那末要怎么解决这个问题呢?利用商业评测软件可以识别不同系统的异常数据并做好标记方便检查即便如此,所有的企业都应当加强重视,做好内部监控,严格执行例行的基本检查事实上,每一个企业都或者多或者少存在垃圾数据方面的问题从风险管理的观点来看,最好的解决方案就是持之以恒地检查如果你从上文的内容能认识到这个自然发生的现象可能会对你产生什么影响的话,已经有了一个好的开始数据重复的代价
3.用户出错会引起麻烦事,用户自作聪明造成的问题可能更严重某保险公司从上世纪年代开始就将大部份客户资料保存在一个主应用软件中,并规定数据录入操作员录入新数据70前先要搜索数据库中是否已经有该客户的记录,但是搜索功能执行起来非常慢而且不够准确,所以大多数操作员再也不执行这一步骤,而从头开始输入新记录,这样做确实简单轻松多了然而,结果是不少客户公司的记录在数据库里重复达儿百次,使系统运行地更慢,数据搜索结果更加不许确,形成为了恶性循环不幸的是,这个应用软件已经根深蒂固的嵌入到该公司的其他系统了,管理部门不愿意花钱把它替换掉最后,该公司的部门发现如果公司再也无法查找用户资料了,将会造成的每IT天万美元的损失直到这时候,公司才如梦初醒,使用识别系统来清洗数据,最终清除了近75四万条重复记录重复数据的问题向来都让管理员头痛不已数据库越庞大,这个问题越严重但是,很IT少有人真正认识到问题的严重性如果有人告诉你他的客户数据库里有的重复数据,很可
2.7%能低估了无非,我们也没有什么灵丹妙药彻底解决这个问题,即使我们能够利用数据匹配技术来沙里淘金,跨越多个数据库找出惟一实用的信息,最难的一关可能是让企业里的不同利益团体就什么数据可以大家共享以及如何构建匹配达成一致同一个机构里的两个不同的部门可能对匹配和重复项有彻底不同的定义类似的数据整合工作会因为相关人员不能对“谁才是数据的所有者”以及“什么数据可以拿来与别人交换”的意见不和而土崩瓦解.小心老化的数据4相信不少人对魔域大冒险这款最经典的文字冒险游戏还记忆犹新,通过问答形式由游Zork戏设置提供情景描述,而玩家输入选择关键词判断来推动游戏发展,是现代游戏的鼻祖RPG现在,还有不少人仍在开辟这种古老的游戏,这也没什么,问题是他们数据库里保存的用户资料也同样的古老某老款游戏开辟商利用的网络营销服务来联系以前的一万名客户,就是为了提MailChimp醒他们游戏的第二版终于完成为了他们所用的大部份电子邮件地址至少是十年前的,其中有一部份是帐户,很久之前就被遗弃不用了,以致微软已经把这些邮件地址当成垃圾邮件Hotmail陷阱了于是,一天之内,所有的邮件都被的垃圾邮件过滤器列入了黑名单MailChimp Hotmail幸好游戏开辟商以前保留了原始记录,包括每位客户下载其游戏时的地址,这成为了IP的救命稻草给的客服发了紧急申明,证明这些邮箱帐户是合法MailChimp MailChimpHotmail客户,只是年代比较久远第二天,就把从黑名单中拯救出来了hotmail MailChimp所有的数据都会快速老化,就像放射性物质发生衰变一样,而联络数据比其他数据老化得更快数据库管理人员必须定期更新每一个系统的数据美国工商资料库是个巨额产业,而联络资料是所有资料中最受销售人员青睐的,但也是最难维护的年成立于美国的是一个在线商务联络资料数据库,面向销售专业人2004Jigsaw.com员,采用式数据清洗方式来维护该网站的三十多万名用户通过上传新名片资料或者纠正Wiki错误的名片资料来换取点数,上传的每条记录必须完整,如果上传不正确或者是资料太老旧,就会扣除相应的点数而用户能得到的利益就是用获得的点数购买自己所需要的名片资料的首席执行官称一家科技公司想要把他们公司的数据库和的数据Jigsaw JimFowler Jigsaw库进行比较,以便清除不良数据该科技公司拥有四万条记录,其中惟独是当前可用的,65%而且全部数据都不完整发现他们大部份合作客户都拥有不少毫无价值的数据,根本就Jigsaw没办法去匹配纠正公司花费了数百万美元在客户关系管理软件上,可见这些数据有多糟糕有时候公司的真正价值不在拥有的数据本身,而在于有没有能力与时俱进地跟上数据变化的速度的能力正是在于完善数据并进行自我清洗,如果没有自我修正的机制,也只无非Jigsaw Jigsaw是一家毫无价值的数据公司而已.小错误与大麻烦5好数据和不良数据之间的差别很可能就体现在一个小点上某专案优化解决方案供应商的高级顾问告诉我们,他曾经为一个大型数据整合项目做顾问,这个项目看起来一切都运行正常,但六个月后,某人打开一个数据表,只看到了一排排符号,什么数据都没有这其实只是一个字符代码错误本来在一些域里应该用省略号(三个点)的,但有人只输入了两个点,导致了整个数据线的崩溃该公司不得不费竭力气从备份中重新创建整个数据库查找省略号,然后用正确数据替换不少时候,问题不仅仅是简单的数据录入错误或者是“脏数据进脏数据出”的问题而已不少企业在进行不同操作系统之间的数据移植或者从老的版本中升级数据等操作时并没有做SQL好充分计划他们总是希翼利用手头上任何可利用资源火速进行,而把数据清洗任务冀望于以后完成更甚者,他们的测试环境和操作环境可能并不一致,或者他们只用少量数据子集来测试,没有测试过的数据很可能会在后面的操作引起大麻烦企业经历着深刻的技术革命,却没有在数据整合和维护的管理上花费足够的时间和精力,最终只会成为不良数据的牺牲品在数据迁移的过程中,有无数的机会让它们成为不良数据不要指望部门来验证你的数据让与这些数据密切相关的有能力的用户来匡助你做好数IT据整合计划和测试在你决定进行整合之前,先查看一下所有数据,确定用于从中提取数据的应用软件如果可以,最好测试所有的数据而不是其中某个子集,要知道正如上面的例子所示,就算是一个小的不能再小的错误都会把你和你的数据拉进痛苦的深渊我们最后再用一个实例来说明小错误和大麻烦之间的关系某商业风险管理解决方案供应商的某位客户创建了一个服务器数据库,用来确定是否SQL有错误的文件在其网络内部流窜原本的设想是,如果错误的数据包超过某设定阈值,公CAD司管理员就会知道并进行数据挖掘和清洗工作问题是他们不小心颠倒了数据库的规则设置(把两个阈值放反了),导致错误数据包越多,提交公司的报告里显示的网络运行情况就越好最后该公司网络被某种蠕虫病毒入侵,破坏了他们的工程档案他们不得不重头开始花费大量CAD的金钱来重建大部份的文档这一切都是因为一个非常简单数据提取设置错误造成的希翼本文讲述的内容能够让大家对数据整合有个正确的认识,数据整合不可规避,并且要谨慎行事脏数据的处理目前,基于数据仓库的商业智能应用已经成为国内许多企业的规划项目,并受到企业管理层IT的关注作为商业智能的基础,数据质量的好坏是影响商业智能应用效果的关键,但由于企业的信息化经过长期的积累和发展,数据质量参差不齐,脏数据的存在妨碍了商业智能应用的进程,下面将重点谈谈如何让脏数据改头换面数据的“往事”脏数据的存在主要是由于源系统的设计不够严密造成的主耍表现为数据格式错误,数据不一致,数据重复、错误,业务逻辑的不合理,违反业务规则等例如,未经验证的身份证号码、未经验证的日期字段等,还有账户开户日期晚于用户销户日期、交易处理的操作员号不存在、性别超过取值范围等此外,也有因为源系统基于性能的考虑,抛却了外键约束,从而导致数据不一致的结果目前,大多数的银行业务系统的输入界面是采用语言或者语言开辟的,界COBOL C面处理功能不是很强,一些要素被设计成“输入”而不是“选择”,如企业客户的信用等级被设计成输入,输入的正确与否彻底由操作员的理解决定,这也是脏数据产生的原因之一例如,如果被设计成“选择”就不会浮现把输成或者其他了AAA“1”转换与清洗的实例下面以银行业务系统的客户的惟一标识一客户号为例来讲解如何转换与清洗数据客户信息的处理是整个数据抽取、转换、清洗和装载工作中最复杂的部份目前ETL业务系统中常见的客户信息处理的难点主要有以下两个方面客户的惟一标识混乱银行的客户号普通由证件类型与证件号组成,这里就有一个问题,如果客户有多种证件怎么办?或者说某个客户办了移民,有了新的身份,系统中怎样体现出他是同一个客户?这些问题,除了少部份是由于发证机关造成的如身份证重号,大部份是由于操作人员的操作不规范造成的主要表现在以下三个方面、客户身份证号问题A最常见的问题是客户的身份证从位更换为位首先操作人员只要能输入新的客1518户号,就认为是一个新的客户;其次,即使操作员知道客户的身份证升位了,但在银行的客户信息中,客户号是惟一标识,如果对惟一标识进行更新,作为增量反映到目标系统中,但没有记录原客户号,对于目标系统来说就是一条新记录,而删除原有的客户信息在实际操作中可能是不允许或者做不到的,因为在这个客户号上可能还挂了许多账户,即便物理删除了这条客户记录,也不可能作为增量数据传输到分析系统,因为这条数据确实已经不存在了所以在实际的业务操作中只是简单地增加一条客户信息,新开的账户就挂在新的客户信息上,这样业务系统中就登记了两条客户信息在处理时,对上面这种情况普通都直接转换为位,但在首次全量处理时,必须ETL18通过比较姓名来真实证明两条记录是同一个客户增量处理时需要同样的处理这样做需要更多的系统时间第二个客户身份证号问题是位身份证号中有字母如数字被误写为字母150第三个客户身份证号问题是长度不为位与位1518第四个客户身份证号问题是同一身份证多个客户号身份证号问题在时要生成异常客户信息记录文件,再交由业务部门处理,如把原ETL位身份证上挂接的账户重新挂接到位上,删除位的客户信息,删除错误的客户信息,151815重新录入正确的客户信息,并进行账户挂接、多种证件问题B多种证件也会导致一位客户有多个客户号,技术上没有能力来发现,惟独依靠业务人员来采集、更新维护信息如果通过建新表来保存这种关系,将增加数据处理、查询的难度、其他问题有些账户上没有客户信息或者虚编了客户号,比如年月以前C199911开设的账户,没有客户可以挂接,于是随意设了客户号,在汇总统计时要注意区分这种情况多数据源导致多客户信息由于客观原因,银行可能有许多分散独立的业务系统,没有做到彻底的集中,这些系统中都有客户信息多数据源导致多客户信息,同一客户在不同系统中有不同的数据描述,或者详细程度不同,在一些系统中甚至可能没有明确的客户代码与客户信息在处理时,主要根据客户信息的详细程度与更新时间来考虑,并确定一个信息修改的原则首先我们把来自最大的数据源一一核心业务系统的客户信息作为基础,这些信息数据量大,虽然有很全面的数据结构,但大部份的字段内容为空,而来自个人信贷系统、银行卡系统等的客户信息数据量相对较少,有详细的内容,正常情况下客户记录应该是核心业务系统的一个子集数据仓库系统应该综合所有系统的客户信息,客户记录数应该是并集,客户记录字段应该是一些重要字段的并集然后确定不同数据源有公共字段的修改顺序首先按信息的修改时间来判断,但最新的信息修改不一定有最全面的信息,如在柜面开户,核心系统仅录入了身份证与姓名,没有录入地址等其他公共字段信息,而个人信贷系统或者卡系统虽然建立的时间比较早,但有较全面的信息,不能用核心系统信息直接更新所以公共字段的修改原则是在源数据与目标数据的字段不为空的情况下,以最新的信息为准但这样做要耗费大量的系统资源,特殊是在做全量数据初始化时,好在客户信息变化的频率不是很高,在实际全量数据初始化时往往是确定一个顺序,例如,以核心业务系统信息为基础,银行卡信息覆盖核心业务系统信息,然后再用贷款信息覆盖增量处理时一种折衷的方法是,在目标系统中记录客户信息的来源系统,如果来自贷款系统,则不能用其他系统的增量信息更新,只能用贷款系统的增量信息更新,而贷款系统的信息可以修改来自其他系统的信息实施经验转换与清洗的时机普通来说,转换与清洗发生在数据抽取之后,一些转换与清洗可以在抽取的同时去做对于一些相对不繁忙的业务系统,如个人信贷系统,由于不是小时运行,在每天完成正常的24数据处理后,仍有不少时间空暇,在数据卸载时可以进行转换与清洗,这样做能够减少数据仓库的负载量需要注意的是,不能对源系统进行清洗,因为源系统数据正确性的标准可能与目标系统不一样,对源系统的数据进行任何的修改与删除都是不允许的固然源系统清理自身错误的数据对加快数据抽取会有好处数据清洗的六个步骤数据仓库领域的权威博士把数据清洗的过程分为六个步骤W.H.Inmon步骤一元素化(将非标准的数据统一格式化成数据元素)步骤二标准化(将元素标准化,根据数据字典消除不一致的缩写等)步骤三校验(对标准化的元素进行一致性校验,即在内容上修改错误)步骤四匹配(在其他记录中寻觅相似的记录,发现重复异常)步骤五消除重复记录(根据匹配结果进行处理,可以删除部份记录或者把多个记录合并为一个更完整信息的记录)步骤六档案化(将结果写入元数据存储中心这样可以更好地进行后续的清理过程,使得用户容易理解数据库以及更好地进行切片、切块等操作)。
个人认证
优秀文档
获得点赞 0