前言
最近有点坑,麻辣烫的活落手上了,上个迭代除了自己的开发任务,还有处理接手的工作。然后节后问题又多,还有前1个迭代没有测试的模块本迭代测试,烦死了。
这次这个数据处理的活,以后希望可以交出去,写了个文档,这里也顺便分享下。
一、分享内容
目前公寓没有提供设备导入,绑定空间的功能。以前操作都是开发自行处理,这个处理过程就看开发处理思路了。大致分为以下:
- 写代码读取Excel处理
- 直接数据库手动处理
写代码可能涉及到本地代码连接生产数据库的问题,怕误操作。公寓项目目前是微服务的,感觉比较麻烦。我这里是采用第二种方式,先建一张设备的复制表,数据通过一些列操作,搞到这个表,确认没有问题了,然后再往正式表插入。
以上不管通过那种方式都是需要先处理数据,我这里是在Excel处理基本数据,然后在通过sql手段把业务字段补充字段值
二、使用步骤
项目经理提供的设备空间数据,就是简简单单的房号、设备编号等基本信息,具体的社区、楼栋、单元、楼层、空间信息、房间信息就需要自己找关联关系补充了。
1先建一张门锁设备复制表
2处理基础数据
我这里先处理Excel文件,基础几个字段就行,例如:
第一行是字段名,下面是从项目经理提供的数据复制过来的。这个字段就根据各个业务具体判断了,我这里其实都还可以更简单,就要一个id、lock_no,source_type。因为我也是摸索的处理,所以写这个教程就懒得改了。
3保存处理的基础数据
我用的DBeaver数据库连接工具,用到的是它的数据导入功能,它支持的格式有csv、xml等。我选择保存为csv格式:
数据之间都是,号隔开的。第一行字段、下面是数据。
4数据导入复制表
1) 选择表,点右键,选择“导入数据”
2) 选择csv文件导入,下一步
3) 选择csv文件,下一步
4) 检查表映射,
注意,如果Excel当时设置的字段与表字段不一致,需要自己一个字段一个字段的设置。
5) 后面就是“下一步”,“继续”
6) 执行完成后,查验表数据
5处理业务关系
这里就需要结合自己的业务进行处理了,我这里是使用sql更新复制表的其他字段值,通过之前设置的房号。
因为我的关联关系在房间表都有字段冗余了,这里就直接一条sql就可以处理了,如果大家遇到的是多表关联的,也是一样的多次重复这个过程就行。
5.1Sql:
updatedevice_lock_copy c,office_room r
setc.location_id = r.location_id,c.location_name = r.location_name,c.building_id = r.building_id,c.building_name = r.building_name,c.unit_id = r.unit_id,c.unit_name = r.unit_name,c.floor_id = r.floor_id,c.floor_name = r.floor_name,c.room_id = r.id,c.house_id = r.house_id
wherer.room_number = c.room_name ;
5.2原理
实际就是把关联业务数据的字段更新到复制表的其他字段,通过一个关联条件。
6插入数据到正式表
这个就不说了,你可以沿用刚刚的思路,查询一张表的数据插入到了一张表,也可以保存为插入语句,修改表名后,执行。
总结
- 思路重要
- 工具也重要
就简单写写,也是个笔记,希望能帮到大家,下班!