互联网|B端通用批量数据导入方案设计( 二 )
1.2.2 导入文件表头校验
格式校验没问题后 , 再校验导入文件表头是否与数据表中 , 需要导入的字段是否匹配 。
表头校验的方法是:将导入文件的表头每个字段与数据表需要导入的字段逐一比对 , 检查同一序号对应列的字段名是否一致 。
只有导入文件所有字段序号和字段名与数据表完全一致时 , 导入文件表头校验才匹配 。
- 导入文件中第一列是“手机号” , 但数据表第一列是“姓名” , 即为不匹配;
- 导入文件中第一列是“手机号” , 数据表第一列是“手机号码” , 也是不匹配 。
若不匹配 , 在数据导入时 , 导入文件中的数据无法找到对应的数据表字段 , 从而无法导入 。
1.2.3 导入文件字段值校验
表头校验正常后 , 再对导入文件中具体的字段值做校验 , 确认其是否合法 。
如果不对字段值进行合法性校验 , 直接导入到数据表中 , 就有可能导致业务数据错误 , 甚至引发严重事故 。
导入文件中“奖励积分”列的值 , 本来应该填写奖励的积分数量 , 但被错误地填入了用户手机号 , 结果导致每个用户发放了100多亿个积分 。
字段值校验的方法是:根据数据表对各个字段值的格式定义 , 逐个检查导入文件中的对应字段的值是否合法 。
字段值校验可能会遇到以下不合法的情况:
- 基本要求不满足:导入模版中有要求值的字符类型、字符长度、业务规则限制 , 但导入文件就中的值不满足 。 若强行导入 , 会导致数据错误 。 如导入模版要求是11位数字 , 导入文件的值是中英文的字符;
- 找不到匹配的值:导入文件中的部分字段的值 , 要求在已有数据表中存在 , 但数据表中查不到 。 若强行导入 , 会导致该数据找不到对应的归属主体 。 如导入文件中“用户ID”的值 , 在用户表中找不到;
- 与其他字段的值不匹配:某几个字段的值之间有联动关系 , 但导入文件中的值联动关系错误 。 若强行导入 , 会导致对应数据错乱 。 如导入文件有员工籍贯所在地 , 分省、市、区3列 , 若省的值为广东 , 则该条数据中 , 市的值必须是广东省的地级市 , 不允许出现了其他省的市 。
1.3 使用异步方式 , 快速导入正确数据
在批量录入数据的场景下 , 用户的核心需求是:快速将数据录入系统 。 产品方案应该要围绕该核心需求来设计 。
1.3.1 字段值完全正确的数据行 , 可以直接导入
在执行数据导入前 , 我们有必要先确定导入文件中 , 每一行的数据都完全正确吗?
其实并不需要 。
用户在整理导入文件时 , 难免会出一些小错误 。 比如导入文件有100行数据 , 某1行数据的某个值错误 , 但剩下的99行数据的值都是正确的 。
如果要求所有数据都完全正确 , 才能被导入 , 那就会导致完全正确的大部分数据 , 不能更“及时”地录入系统中 , 必须要将其中极少数错误的数据修正后 , 重新检验数据 , 再尝试导入 。
更高效的做法是:导入文件中 , 字段值完全正确的数据行 , 可以直接导入 , 而错误的部分数据行 , 提供下载功能 , 让用户修改后 , 重新导入 。
1.3.2 覆盖更新已有数据
在系统导入过程中 , 若某条数据在系统中已经存在 , 而导入文件也包含了该条数据 , 此时应该如何处理?
在产品的角度看 , 通常有三种处理方式:
- 不允许导入 。 若用户需要更新该条数据 , 就需要先删除已有数据再重新导入 , 或到系统中修改;
推荐阅读
- 互联网|上线半年收获6700万用户,这款聚焦下沉用户的陌生人社交APP是怎么做到的?
- 互联网|5G商用一周年,华为云向互联网企业大抛绣球
- 互联网|中台产品经理实战(14):中台与SaaS、微服务关系
- 互联网|行业观察 | 你所不知道的5G消息
- 互联网|多名知名人物推特被黑,拜登奥巴马都“中招”,比尔盖茨也在其内
- 互联网|发放高利贷,还要窃取用户信息?这些金融APP在秀“道德底线”
- 互联网|东莞先知:数字智能,先觉“先知”
- 云计算|从互联网到AI崛起,上海能弯道超车吗?
- 行业互联网,5G|江苏有线顺利完成园区5G信号开通测试
- 行业互联网,AI人工智能|城市教育大脑以“ AI+ 大数据”为核心 , 引领教育变革