1.纸币采集系统,此系统是个人独立开发,主要是对银行金库清分中心清分机所采集到的纸币信息进行入库存表及查询管理。此系统的难点主要是纸币信息大数据的管理以及快速查询功能。这里主要采取的是数据库的横向,纵向分表的方式,来减轻数据库的压力,使数据能够快速的查询出来。在查询方面,采用的是多线程的方式进行查询。
2.转运后台管理系统,此系统主要是针对公司跨境电商业务后台管理系统,跨境电商业务很复杂,流程很多,主要是针对系统做了数据库查询方面的一系列优化,提高了系统查询速度,优化存储过程及查询sql语句,一般的报表统计数据都是来自于好几个表,并且需要做一些合计,平均或百分比等,需要进行一系列的计算,我的处理方式主要是通过过滤字段,优先查看是否能建立索引,索引建立的好,查询速度立竿见影,先优化出查询结果的最小数据结果集,再进行一系列的计算获得统计结果。这是对于需要随时查询能出结果的报表。对于一些更复杂的月度报表,季度报表或者年度报表,可以采取数据库作业的方式,再出报表的前一天进行统计,结果存入一个临时创建的表中,在查询时就能够无压力。还有一个功能是导入一个excel表格,对导入数据进行处理,这里的业务很复杂,导入的数据一般是一些转运单号,导入这些单号需要进行入库,这里面需要通过好几个表,并且是批量的,之前的同时,使用的是读取excel中数据,再通过在程序中直接写sql用in的方式,来进行入库,这种方式又慢,又容易出问题,一般订单数据有几百上千个,可能就直接卡死了,更别提后面的业务操作了。我这边采取的是表值参数,直接将excel导入到数据库,采用存储过程直接在存储过程中将业务处理完成。这样执行速度只要几秒或者几十秒就能够完成,不像之前几分钟都不一定能够执行完成。
3.数据爬虫,用.net实现数据爬虫,主要使用fiddler抓包工具,查看网站请求,获取请求地址,以及cookie值,有些cookie值是进行了加密的,需要进行多次转换才能够成功获取,进行发送get或post请求,获取返回数据结果,有一些返回数据进行了加密,需要进行解密才能够获得明文的数据,或者有一些获取的结果密密麻麻特别麻烦,需要找到其规律进行破解。一般的网站返回格式比较简单的就是html格式的或者是json格式的。其中碰到的典型案例就是汽车之家,返回结果是进行加密的了,使用的是js加密,这里需要在获取到数据结果后,使用JavascriptContext执行js获取明文结果。还有一个是天结果合的数据抓取,这里主要是返回结果进行了加密,很难找到规律。这里我采用的是程序模拟浏览器的方式获取数据。使用的是WebDriverWait模拟鼠标点击,用HtmlAgilityPack获取结果的方式。