csv文件存储数据时在结构上基本和一个数据库表相当,不过因为读写方便,所以使用频率很高,例如输出一些临时结果,或者持续记录类似日志形式的数据。不过,当需要对这些数据进一步处理时,如果还要先导入数据库,那么csv本身的便利性也就没有了。
事实上,通过集算器,可以直接对csv文件进行处理,而且还可以进行一些“高级”操作,就像本文要介绍的比较两个csv文件的差异。
假设在一个简单的销售系统中,前端系统只负责录入,包括新增、修改和删除订单,同时,每天会把数据文件做一次备份归档。在后期分析中,需要查看某个时间段内的新增、取消和修改的订单。下面就是不使用数据库,直接比较csv文件的操作。
例子中使用了2015年3月的两个文件,早一点的是old.csv,晚一点的是new.csv。文件中的逻辑主键是userName和date,需要分别找出新增的、删除的、修改的数据行。源文件如下:
Old.csv | New.csv | |
1 2 3 4 5 6 7 8 9 |
userName,date,saleValue,saleCount Rachel,2015-03-01,4500,9 Rachel,2015-03-03,8700,4 Tom,2015-03-02,3000,8 Tom,2015-03-03,5000,7 Tom,2015-03-04,6000,12 John,2015-03-02,4000,3 John,2015-03-02,4300,9</ |