数据改写与数据迁移面临重大挑战但也播种伟大。
在从前十年,我常常须要面对无数次的数据改写义务,无论是从旧有的数据库迁徙到新的数据库,仍是应用新的程序工具挖掘大批数据系列,又或者cisco
jabber是其余的大量义务,以某种形式得到数据并以新的方法转存为数据,这样的事件每时每刻都会频繁产生。对包含it人在内的大多数人,数据改写和迁徙都只是个空幻的魔法。
让我们花多少分钟的时间来说明下全部进程是怎么运作的。大家可能会发明,援用这些有助于向那些不太懂技巧的人沟通讲授比拟奥妙的后端技巧流程。
所有先从excel开端
我们抉择一个不太荣幸的常见情况:恐怖的excel电子表格。一段时光以前,有一家很遥远的公司,他们确定需要收集波及到贸易流程的数据库存、销售、客户等企业占有的所有数据。因为缺云应用少适合的工具,有个人应用excel电子表格实现了这项工作。跟着时光的流逝,数以千计的记载大量积累,excel表格变得越来越不用途,终极该公司决议将所有数据转到真正的数据库中,他们聘任了征询团队,定义了内部资源,最后派一个人接手了该任务。
首先要做的就是检查数据自身的清洁度。在一个完善的世界,电子表格有点类似于数据库,每一列都有公共区块如名字、姓氏、街道、城市等等。然而,运作的办法并不老是这样,布局有可能自上而下,信息包括在统一列下独自的行中,如接洽列下有全称、公司、地址、手机号码等独自的行。下一列则有可能是2012年最后的订单或销售或其他数据,这带来了一个更具挑衅性的问题。
让我们看看第一种情况,这种最为简略。数据绝对清楚,构造显明,可以便利地外移到csv上,通过自定义的解析器将其转化为一个数据库。好的csv解析器可以将所有记载拉到一个数组中,数组可以剥离不同的数据记录,并嵌入到新的数据库中。实现这些流程后,我们能检查数据,也能修正数据,以更好地适应新数据库的格式。
举例来说,我们可能会在一个电话号码字段中运行正则表白式,将各种各样的手机号码格式转换成一种标准格局,这需要折腾所有的特别字符,从新设定结果串,而后才干将数据嵌入到新的数据库。这种才做会将数字如555-1212、212-555-1212、2125551212、212数据存储
555
1212、212.555.1212等转换为相似555-1212的尺度格式,有助于可读性和搜寻。
我们可能用类似/+/的正则表达式卸除这些内容,而后用如//这样的正则表达式再将它们从新组合,最后匹配结果是212、555和1212。我们现在可以我们爱好的任何格式来重新设定手机号码,假如我们遇到一个数字,因为数位过多或过少而不能成为手机号码数字时,我们也能摆脱窘境。
形式自由所有都自在
当我们进入到更自由的表单字段后,情形变得更为不确定。断定地址特殊麻烦,由于设定地址格式有各种各样不同的方式。我们也需要面对大量的街道和城市名,需要肯定我们是否准确地控制了washington,
dc 、washington/dc 、washington dc,以及一些相似winston-salem dc、king of prussia,
pa、scranton, penn n. providence ri、 houston, tx和ofallon,
il等怪僻的地名。
这些各种各样的变更能让解析器出错,由于我们不能打消某些特别的字符。此外,我们不能指望一个城市的数据量能跟一个州,或州内现存和领有的缩写的数据量比拟。因而,我们需要结构前提抒发式,凝成一股劲来尽最大尽力肯定实际的城市和州,甚至需要对美国的每一个城市和每一个州的数据库进行核查。依据结果,我们依然需要在该记载上解脱窘境,假如没法做出断定的决断,至少提出一个需要手动检讨的问题的记载。
我们当初才仅仅开端发明事件的表象,还有大量的工作,就是搞明白每一个记录中的城市、州、手机号码等,依据内容,我们需要冲刷并反复电子表格中的每一个其他字段。
这种凌乱的直接成果是,不受束缚的自在情势的数据项,无时无刻无论何地都困扰着每家公司,而且它不必定是excel情势。数据项能够是access,一个自主开发的数据库,或者其余任何利用程序。除非能检讨输入的数据的有效性跟格局,否则这些数据很可能只是一个烂摊子。当然,问题的要害是树立一个适合的数据库前端来处置数据的输入:咱们能够清算修饰数据进入的方法,这样能连续进步数据的正确性跟可用性,这是摆在首位的应用数据库的利益之一。
然而,我们不能疏忽在后端处置这品种型的数无线设备据集所付出的尽力,当初也已经开发了各种工具来简化流程,但他们并不能实用于所有情形。固然他们可能对输入数据的某云计算技术局部起作用,不能起作用的部门可能导以致用那些工具更加艰苦重重。
这种性质的工作非常乏味,尤其重视细节,请求大批的手工数据测验、试运行、调试,同时须要在该名目上工作的局部的开发者具备前瞻性思维。当上面说到的所有货色都实现了,成果确定是:咱们的付出是值得的。
应用清洁的数据,一切都变得很简略,只有别低估清算数据的旅途中可能面临的宏大挑衅就行。