数据源之Excel和它的坑

数据源的种类有很多种,比如:

1:用户的行为日志文件.

2:业务业务数据库数据(关系型数据 和 非关系型数据库: 文档, KV(键值)等).

3:excel文档(财务 和 行政的一些报表).

我目前所负责的就是excel文档的一个入库,在入库的过程中发现了一些比较坑人的地方,如下:

1:科学计数法

Excel中如果数据超过12位,则会自动进行数据转换成科学计数法数据;由于Excel的精度为15,所以数据超过15位后面的部分自动会用0补充进行科学计数,所以在超过15位的时候用数据库提供的系统函数转的时候会丢失精度.

解决方案:

  • 将这一列单元格以文本的方式保存(感觉不实用,后面有可能被自动以科学计数法的方式保存).
  • 将这一类单元格通过前面后者后面加双引号或单引号转换成字符串(入库之后统一去除)

2:单元格错误造成数据的错误

  • 本来是一行的数据,有可能做表格的人员用了几行.第一列合并了单元格,而后面了又没有合并写在了第一行中.这样的情况下第二行开始空出来的就会是null了.

3:不同的输入法造成的字符串的长度不一致.

  • 有一些数据数字位的长度都是一样的,后面都加了括号,用length()函数求出来的长度就不是一样长了.

其实入库excel文档的方式有很多,比如kettle,好像Navicat也是支持的,但是我们项目组用的就是最原始的.首先将数据在excel中做初步的清洗,然后将excel存成csv格式的文本,再通过pgadmin 或者psql的copy导入的数据库.

(吐槽: postgreSQL版本为9.2实在过低,连JSON都不支持呀)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值