在过去的十年中,我已经经历过了无数次的数据修改任务(一个真正的技术术语)。无论是将一个老的数据库迁移到一处现代化的数据库;还是通过新的加工工具拖动庞大的数据集;又或是无数其他的将数据由一种形式转化成另一种新的形式的任务。类似这样的工作处理频率很高,几乎是每天都有这样的工作内容,而这对于绝大多数人而言都不能不说是相当神奇的,甚至包括相当一部分的IT人员。

让我来花一点点的时间来为大家解释一下这一工作原理吧。

让我们选择一个最恐怖也最为常见的情况:可怕的Excel电子表格制作。曾经有一段时间一家公司决定他们要收集有关的业务流程数据资料,包括库存、销售、客户资料等一系列的数据。由于缺乏适当的工具,相关负责的工作人员只能做了一个Excel电子表格,结果差点疯了:随着时间的推移,成千上万的记录需要进行收集,而Excel电子表格的功能越来越无法满足其需求。最终,该企业决定把这些数据信息放入真实的数据库。他们聘请了一家咨询集团,将这些任务交给专业的人员来处理。

首先要做的第一件事是检查数据本身。在一个完美的世界中,电子表格就像一个数据库,每一格都属于其所在列的分类中——如姓氏、名字、街道、城市,等等。然而,这一方法并不总是奏效的。有时候,我们可能在单独的一行或一列涵盖所有的联系信息,如一列里面需要包含全部的联系信息,如姓名、公司、地址、电话号码,等等。而在下一列则可能是关于最后订单或2012年的销售数据或其他数据。这就提出了一个更具挑战性的问题了。

让我们先来看看这第一种情况,因为它是最简单的。在这第一种情况下,数据是相对干净并经过了良好的组织,它可以导出为CSV文件并通过自定义解析器运行,将其转换成一个数据库。一个好的CSV解析器将把所有这些记录导入到一个数组,可以通过记录插入到新数据库分开记录。在这一过程中,可以对数据进行检查,同时数据可以被修改,以便能够更好地适应新的数据库格式。

例如,我们可能会运行一个电话号码字段的正则表达式,以便将各种不同的电话号码格式转换成一种标准的格式。这需要把所有的特殊字符和格式化的字符在被插入到新的数据库之前串起来。该操作将把诸如(212)555-1212、212-555-1212、2125551212、2125551212、212.555.1212这样的每条记录统一变成(212)555-1212,这样的标准化格式,这将有利于方便数据的读取和搜索。

这样,我们现在可以以我们喜欢的方式重新格式化的电话号码。这就帮助我们摆脱了那种可能遇到的多一位数,或者少一位数的不可能是电话号码的困境。

鉴于我们可以采用更加自由的格式,处理起来也就变得更为方便了。地址的处理是特别挑剔的,因为他们可以用各种不同的方式格式化。我们还需要处理街头各种变幻莫测的街道和城市名称。我们需要确保我们能够正确的处理“Washington,DC,”、“Washington,DC,”和“WashingtonDC”,以及各种古怪的拼写方式,如“Winston-Salem,NC,”、“KingofPrussia,PA,”、“Scranton,Penn.,”、“N.ProvidenceRI,”、“Houston,tx,”、以及“O'Fallon,IL.”。

如果我们不加以特殊的考虑,上述这些各种各样的奇怪的拼写字符都可以访问分析解析器,因为我们不能去除特殊字符。此外,我们不能指望国家或州名的缩写都正好符合某一字段长度。因此,我们需要构造条件表达式,以尽最大努力的明确表达城市和国家实际的名称,甚至包括对美国每一座城市和州数据库的核对。基于这些结果,如果没有明确的标志,我们可能仍然需要手动检查有问题的记录来摆脱困境。

上面所介绍的内容,其实我们刚开始触及表面。我们还需要投入大量的工作来搞清楚每个记录中的城市、州和电话号码信息。我们需要根据不同的内容处理和重复的电子表格中的所有其他领域。

这种混乱是由允许数据项不受约束的自由格式所直接导致的。其对于每家公司所造成的困扰无处不在。当然,其不必是Excel格式的电子表格。其可以是企业自主开发的,能够被访问的数据库,或是任何其他应用程序。除非有相关的排查以保证输入数据的有效性和格式化,这些数据将可能一直是混乱状态。当然,问题的关键是建立一个合适的数据库前端来处理数据的输入:我们可以清理数据,并交给员工们导入数据的正确方式,这无疑将在一个持续的基础上大大增强数据的准确性和可用性。这是使用数据库最为重要的好处之一。

当然,我们不能低估在处理这些类型的数据集方面所做出的努力。目前已开发出来各类工具来简化这一过程,但这些工具并非适合所有情况。虽然他们可能仅仅对于一部分输入的数据是奏效的,但错过的部分,如果处理不当会造成更加麻烦的问题。

这种性质的工作是乏味的,需要格外注重细节。它需要大量的人工数据检验、测试、调试和对部分项目的开发工作的前瞻性的思维。当上述所强调的一切都满足之后,其结果几乎可以保证是值得我们努力的。

使用干净的数据,可以使一切变得更简单。但是不要低估在清理数据这一过程中可能具到的挑战。

【责任编辑:冯柯 TEL:(010)68479336】

转载于:https://blog.51cto.com/7637676/1272183

数据迁移其实是很难的相关推荐

  1. iphone换机数据迁移_苹果手机换华为、小米怎么同步数据?来了!

    将「雷科技Lite」收藏为我的小程序,不再错过精彩内容 雷科技数码3C组编辑 | MoFirLee 苹果.安卓手机之间同步数据其实不算太难,难的是没有找对方法.当然,游戏数据无法互通,这里面的问题就复 ...

  2. 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...

    自从今年苹果秋季发布会以后,iPhone 11的预售又出现了之前商店排队的"盛况",按照目前的情况来看,去年苹果在iPhone上失利的局面应该会在今年被挽回,库克最近可是非常高兴了 ...

  3. 互联网服务线上数据迁移的原则和方法

    互联网业务变更非常快,随着业务规模扩大,线上的业务也会涉及重构和迁移.比较难的就是存储迁移,可能从前的存储不适合新的业务模型了,例如从关系型数据库迁移到nosql,或者数据的存储格式发生了巨大的变化. ...

  4. 苹果手机怎么备份所有数据_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...

    "本娘子将为您介绍互联网的最新咨讯,关注数码科技相关的内容.之前小娘子的工作关于数码科技.本公众号将致力于为你分享玩机知识.购机秘籍.选机技巧,还会为你分享手机保养秘籍.手机维修小技能. 手 ...

  5. 为什么数据挖掘很难成功?

    大数据时代,数据挖掘变得越加重要,曾经做了很多,成功有之,失败的却更多,举一些例子,探究其失败原因,也许于大家都有启示吧. 数据缺失总是存在. 为什么数据挖掘的数据准备工作要这么长时间,可以理解成取数 ...

  6. 数据迁移的应用场景与解决方案Hamal

    本文来自网易云社区 作者:马进 跑男热播,作为兄弟团忠实粉丝,笔者也是一到周五就如打鸡血乐不思蜀. 看着银幕中一众演员搞怪搞笑的浮夸演技,也时常感慨,这样一部看似简单真情流露的真人秀,必然饱含了许许多 ...

  7. 天通苑海鲜餐馆数据调查,很难想象消费越贵越受欢迎

     天通苑海鲜餐馆数据调查,很难想象消费越贵越受欢迎 麒麟 2017-05-26 11:18:58 数据分析 评论(0) 作者:麒麟 本文为36大数据原创,未经允许不得转载 我们调查了多家地图与餐饮 ...

  8. ua获取手机型号_取证人员为什么很难从移动设备上获取电子数据证据?

    "法拉第袋" 英文名为Faraday bag 移动设备是动态系统,在提取和分析电子数据证据时会给取证人员带来很多挑战.来自不同制造商的不同型号的手机的数量的快速增加使得难以开发用于 ...

  9. 没有人觉得B站的搜索很难用吗?— 怎么用Tableau(数据可视化)帮助饭圈女孩磕CP

    没有人觉得B站的搜索很难用吗?- 怎么用Tableau(数据可视化)帮助饭圈女孩磕CP 前言 提到数据可视化,大部分朋友可能会联想到公司决策,商业洞见等等很高大上的关键词,但其实数据可视化软件也可以用 ...

  10. 报表系统搭建很难?其实选对数据填报系统就简单了一半_光点科技

    随着企业信息化的发展,产生的数据越来越多,对报表的需求也越来越大.业务每天都在增加需求,报表开发每天都在加班,抱怨.随着时间的推移,公司的运营效率降低了.许多企业渴望建立一个完善的数据填报系统来解决报 ...

最新文章

  1. 正确的理解iOS MVC
  2. 人脸识别走光引热议!原来后台能看到的不只有脸,网友已社死,审核辣哭眼...
  3. Condition_number
  4. php url参数时间戳,AJAX GET 请求 URL 最后面缀的那个类似于时间戳的参数是什么啊?...
  5. 想要高清壁纸,高图桌面壁纸网站值得收藏!
  6. NSLog 输出格式集合
  7. 利用Python进行数据分析--数据加载、存储与文件格式
  8. nginx负载均衡fair模块安装和配置
  9. 计算机系统结构模拟试卷3,计算机系统结构全真模拟试卷.pdf
  10. win10计算器rsh_Win10系统有哪些计算器快捷键
  11. 利用lavarel框架实现Todos App
  12. lambda函数 python菜鸟教程-python
  13. android短信发不了图片,手机发不出短信怎么办?-安卓手机发不出短信的解决方法 - 河东软件园...
  14. 宴会泡泡机市场前景分析及研究报告
  15. 基于MRF和CNN的图像生成
  16. 开源配置管理系统的选择和搭建
  17. html点击链接直接加微信群,微信给文字加链接代码分享(原来微信超链接是这样加的)...
  18. C#,Winform 声音、音量控制操作
  19. 深搜、广搜、搜索剪枝
  20. 艾默生流量计如何做好清洁排空工作

热门文章

  1. Java空字符串与null区别
  2. ibatis的ibatorForEclipse的安装与配置和ibator的错误日志查看
  3. 《CoderXiaoban团队》第一次作业:团队亮相
  4. [洛谷P3181][HAOI2016]找相同字符
  5. Python-flask中数据库连接池DBUtils
  6. 130242014075 杨利城 《电商系统某功能模块》的需求分析与设计
  7. android 教程实例系列
  8. COM编程入门 第三部分(网文补充)
  9. mysql中find_in_set()函数的使用(转载)
  10. 【转】HeadFirst 组合模式+迭代器错误原因以及解决代码