从Web服务器日志使用数据时SQL Server日期范围问题

从Web服务器日志使用数据时SQL Server日期范围问题,第1张

概述我一直在使用我的原始IIS日志文件导入SQL Server表 Log Parser工具现在已有几个月了.这样做是为了能够编写 SSRS根据此日志数据进行报告. 我正在研究的报告之一应该是确定的数量 访问每个唯一的IP地址.访问被定义为IP地址命中 网站上的一个页面,然后在一个小时内再发出4个请求 其他.所有5个请求都在一次访问网站内.后来就是这样 晚上,相同的IP地址访问该网站,除了现在是3小时后 我一直在使用我的原始IIS日志文件导入sql Server表
Log Parser工具现在已有几个月了.这样做是为了能够编写
SSRS根据此日志数据进行报告.

我正在研究的报告之一应该是确定的数量
访问每个唯一的IP地址.访问被定义为IP地址命中
网站上的一个页面,然后在一个小时内再发出4个请求
其他.所有5个请求都在一次访问网站内.后来就是这样
晚上,相同的IP地址访问该网站,除了现在是3小时后,所以
我们将这个新活动计入与新访问相同的IP中.这是一个样本
数据:

IPAddress,RequestDateTime,Uristem10.1.1.100,2010-10-15 13:30:30,/10.1.1.100,2010-10-15 13:30:31,/style.CSS10.1.1.100,/script.Js10.1.1.100,2010-10-15 13:30:32,/funny.gif10.1.1.100,2010-10-15 13:30:33,/picture.jpg10.1.1.101,2010-10-15 13:40:50,/page2.HTML10.1.1.101,2010-10-15 13:40:51,/style.CSS10.1.1.102,2010-10-15 14:10:20,/page4.HTML10.1.1.102,2010-10-15 14:10:21,2010-10-15 16:55:10,2010-10-15 16:55:11,2010-10-15 16:55:12,2010-10-15 16:55:13,/picture.jpg

通过查看上面的数据,我可以很容易地看出10.1.1.100 IP
地址已经访问过该网站两次,每次访问都有5次点击.但是,我
不知道如何在sql代码中表达它.是否有一种简单的分组方式
并按IP地址计算这些日期范围?

我知道可以使用诸如此类工具捕获此信息
AWStats,但我没有能够安装Perl的奢侈品
我们使用的系统.

解决方法 将代码提供给试运行.代码对来自每个IP地址的访问进行分组和编号.然后,它会查看与“阈值”值相比有多少“uristem”命中.我在名为“Foo”的表上测试了代码,您需要在运行测试之前检查表名和列名.
DECLARE @threshold INT;  SET @threshold = 4;  --this number should not include the initial visitDECLARE @lookbackdays int; SET @lookbackdays = 300; ;WITH postCTE as  (  SELECT       ipaddress,uristem,requestdatetime,RowNumber = ROW_NUMBER() OVER (ORDER BY ipaddress,requestdatetime ASC)  FROM      Foo  --put your table name hereWHERE      requestdatetime > GETDATE() - @lookbackdays )  --select * from postCTESELECT       p1.ipaddress AS [ipaddress],p2.RowNumber - p1.RowNumber +1 AS [Requests],p1.requestdatetime AS [DateStart]FROM      postCTE p1  INNER JOIN      postCTE p2       ON p1.ipaddress = p2.ipaddress       AND p1.Rownumber = p2.RowNumber - (@threshold )  WHERE      DATEDIFF(minute,p1.requestdatetime,p2.requestdatetime) <= 60

我在sql 2008上的测试输出是

ipaddress   Requests    DateStart10.1.1.100  5   2010-10-15 13:30:30.00010.1.1.100  5   2010-10-15 16:55:10.000
总结

以上是内存溢出为你收集整理的从Web服务器日志使用数据时SQL Server日期范围问题全部内容,希望文章能够帮你解决从Web服务器日志使用数据时SQL Server日期范围问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1134206.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存