数据收集及处理的经验记录

在系统构建的时候免不了需要灌入大量的初始数据,本文将基于个人在工作中总结出的经验,给出数据收集的流程,数据处理程序的结构及常见问题的说明。只是一些浅显的见解,还需要更多的经验。

1. 数据收集流程

根据特定情景的不同,数据收集可以分为两类:

  1. 直接获取数据:需求方已经有数据的积累,多是使用Excel表格存储管理,有些甚至是使用Word画的表格进行存储管理。
  2. 主动收集数据:需求方没有数据积累或者只有少量的积累,需要根据需求方的要求和资源去收集数据。

1.1 直接获取数据

此类情况的处理流程为:

  1. 获取所有数据中的字段名及其覆盖率;
  2. 分析字段的情况,如果有字段名称不一致的问题,则需要确认主要使用字段并构建字段映射表;如果有多种不同类型的表,还需要找出其中的关联并确保字段值的一致性;
  3. 根据字段覆盖率确认哪些是重要字段(必须存在或者具有主键作用的),哪些是次要的(值可以为空的),哪些是不需要的;
  4. 根据确认的重要字段查看信息的完整度情况(比如,重要字段全都存在的数据量);
  1. 确认存储结构,尽量不丢失信息
  2. 确认字段存贮策略(特别注意查重策略,合并策略)。特别是信息描述不一致的问题,如果不易处理,需要人工参与(此处需要与数据使用方进行沟通);
  3. 根据存储策略查看损失数据情况,根据接受程度动态调整“重要字段”、“存储结构”和“存储策略”;
  4. 最后给出“数据库字段说明文档”和“字段处理策略文档”;
直接获取数据流程

此类情况获取的数据一般存在以下问题:

  1. 字段名称不一致,如:“email”,“邮箱”,“电子邮箱”;
  2. 信息描述方式不一致,如:“地址,“住宅地址”,“工作单位地址”,“工作单位”;
  3. 相同字段信息填写不一致,如:生日有的填写到月,有的到日,有的是中文数字有的是阿拉伯数字;工作单位,有的是中文,有的是英文,有的是缩写;
  4. 多个信息填写的问题,如:一个人有多个邮箱,有的是在同一个单元格中使用回车区分,有的使用email1,email2两列进行区分;
  5. 信息错位的问题。

这些问题的处理不再本文的范围之内,会在别的文章中再做讨论。

1.2 主动收集数据

此类问题,如果时间和条件允许,应该构建一个信息管理系统,一个登录页,一个注册页和一个信息更新的页面就可以很好的解决该类问题了。但是时间和条件不允许的化,那么就需要使用Excel表采集的方式了。处理流程为:

  1. 确认收集数据的字段及其数据类型,根据需求的不同可能需要字段的中文翻译;
  2. 确认字段的重要程度,是否为必填字段,或是选填字段(虽然可以在收集完成之后根据字段覆盖率确定,但是避免产生无效收集的数据,最好提前确定)
  3. 表格设计,每一列的信息都是独立的,清晰的,易处理的;根据字段的需要进行数据验证的设置(内容的形式,如时间格式;填写内容的范围,如:性别,民族)。根据需求方的使用场景不同,还可能会有表头的需求;
  1. 收集完成后,获取字段覆盖率、信息完整度(有效填写信息数量);
  2. 确认字段存贮策略(特别注意查重策略,合并策略);
  3. 如果收集前准备充分,收集过程中严格执行,那么可以直接入库;
  4. 如果依然存在问题,需要根据情况不断调整字段存贮策略。如果存在不易处理的数据,则需要人工协助;
  5. 最后给出“数据库字段说明文档(包字段数据验证要求)”和“字段处理策略文档”。
主动收集数据流程

此类情况问题一般存在以下问题:

  1. 收集表的字段设计问题:

    • 字段描述模糊,如:字段名为“报名时间”,该字段的含义包含两部分“报名开始时间”和“报名结束时间”,稳妥起见应该拆分成两个字段“报名开始时间”和“报名结束时间”;
    • 没有添加数据验证,比如:性别,民族等因该提供下拉表格,以防填写数据格式不一致;出现不可能的时间比如20190230,出现截止时间小于开始时间;时间填写格式不一致,有的填写到日,有的填写到月,有的使用-分隔年月日,有的使用/,有的直接写“2019年9月1日”。
  2. 不同类型的表格,关联信息不一致,比如一个表的公司名称使用全称,另一个表的名称使用简称

这些问题的处理不再本文的范围之内,会在别的文章中再做讨论。

1.3 强调说明

“确认字段重要程度”步骤十分重要,必填字段会影响查重合并的质量,也会影响有效入库数据的数量;确认的过程不仅需要和需求方协商、确认,还需要和使用方协商、确认(特别是前端、处理流程下游人员)。

2. 数据处理

2.1 数据处理流程

  1. 抽取字段信息
  2. 计算字段覆盖率
  3. 确定字段的重要程度
  4. 计算信息完整度
  5. 确定查重策略
  6. 确定合并策略(注意合并时的查重策略和5所涉及的查重策略可能是不同的)
  7. 确定字段的存储结构
  8. 编写文件数据验证程序,将不对的数据返回给数据收集人员进行修改
  9. 编写导入程序
  10. 数据备份(可选)
  11. 运行导入程序

导入前,可以使用程序验证文件的正确性,如果在处理某一行出现错误,应该将该行标出(比如使用不同底色),然后在该列最后增加失败原因,给出出错的字段,以便确认问题并进行修改。

2.2 数据处理项目结构

- data
  - backup # 数据备份文件
  - log    # 日志
- doc      # 文档,存放数据字典,数据发布文档,处理策略文档等
- input    # 存放输入文件
- output   # 存放生成的文件
- model    # 数据的存储结构
- service  # 数据库存取,查询等程序
- utils    # 数据库链接,API访问,日志等工具程序
- scripts  # 主要的处理流程的程序
- tools    # 在scripts中常用的程序,经过封装后可以移到这里,比如:字段抽取,字段覆盖率的代码

由于导入的需求视收集文件的结构而定,所以一般根据具体的需求编写具体的程序,但是积累一段时间后就会发现共同的需求,就可以封装成一个公用的方法,放到tools 中。

2.3 常用程序

  1. 抽取文件的字段
  2. 字段覆盖率
  3. 信息完整度

3. 团队结构

团队成员应该分为三部分:

  • 数据收集人员
  • 数据质量检察员
  • 数据录入人员
team_structure.png

3.1 数据收集人员

根据需要设立数据收集人员,数据收集人员主要的任务:

  1. 根据要求设计收集表
  2. 收集、汇总收集表
  3. 简单验证表的结构是否正确(避免出现错行的问题)

所需素质:

  1. 可以使用Excel的数据验证功能

3.2 数据质量检查员

为了减少数据录入人员的压力,设立数据质量检查员,其主要任务:

  1. 对数据收集人员提交的数据进行审核,判断数据是否可录入
  2. 对需要人工手动调整数据文件的情况,组织并开展相关活动
  3. 对接录入API的问题,撰写API文档,测试API,协调多方合作
  4. 对接数据使用方(可能是用户、前端等)的需求
  5. 录入数据后的审核

数据质量检查员,有些像产品经理,具有该角色的人需要充分了解数据导入策略及文件中各字段的含义、联系。

所需素质:

  1. 有编码经验,了解基本的数据类型
  2. 有API开发经验
  3. 有数据库操作经验

3.3 数据录入人员

数据录入人员的主要任务:

  1. 根据确定的导入流程、策略,实现程序
  2. 分析数据损失情况
  3. 备份数据
  4. 简单验证合并结果

4. 思考

  1. 该问涉及到的处理过程都是针对小数据量(几万)的,如果针对数据量比较大的导入情况该如何去做?

来源于:mr-wolverine

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容