有一系列的日志文件要入库,每天都会生成一个日志文件,然后通过spring定时入库。
日志文件里的格式如下所示
20110415 10:56:04;remoteHost=127.0.0.1;softname=微软官方MSN;softurl=http://www.ruan8.com/soft_6157.html;type=net
其中第一个参数为时间,第2个参数为客户ip,第三个参数为软件名字,第四个为访问链接,第五个参数为所属类型,所属类型有五种类似,net,enjoy等。现在的需求是这样的,如何定义表,才能很好的统计日访问量,月访问量,年访问量。我现在遇到的问题是如果有软件名字的话,可以统计该软件的日访问量,月访问量,年访问量,可是如果我现在遇到的问题是如何可以让全部的软件的的访问量显示出来呢?因为访问量是每天都在变的,所以没有创建访问量表,只是建了一个普通的soft_log表,表里面有soft_id,soft_name, soft_type,soft_day(当日),soft_month(所在的月份), soft_year(所在的年份)求高手解答。万分感谢~~

解决方案 »

  1.   

    你这么做在业务上没什么大问题,但是以后数据量增加的时候,在性能上会出问题。
    创建3个表,分别是当日LOG表,统计表,LOG储藏表。
    每天做的就是,先把LOG文件读进来,生成LOG表的数据,然后根据当天的LOG表数据更新统计表的数据。
    上面的操作都正常结束了,再把LOG表的数据移动到LOG储藏表,然后清空LOG表数据。
    LOG储藏表做成按照时间的分区表,每月建一个新分区,然后新分区上插入当月的数据,这样以后对LOG储藏表进行删除或者查询的时候,
    性能上会提高,管理起来也容易。
    当需要统计信息的时候直接从统计表中查询。所以怎么做这个统计表就很重要了,这个跟业务有关,没办法给你支招。