网站流量日志分析--统计分析--新老访客需求剖析|学习笔记

简介: 快速学习网站流量日志分析--统计分析--新老访客需求剖析

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第四阶段) 网站流量日志分析--统计分析--新老访客需求剖析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/696/detail/12239


网站流量日志分析--统计分析--新老访客需求剖析


需求:将每天的新访客统计出来。

实现思路:创建一个去重访客累积表,然后将每日访客对比累积表。

1、每天新老访客的统计新访客老访客从业务上很好理解只要来过一次再来都是老访客如果一次没有过就是新访客从业务上梳理该如何通过每天集的数据进行比较判断识别出当天是新访客还是老访客

2、为了更好理解进行画图比如每天都会收集采集到当天的数据网站的标识收到今天的网站访问数据

image.png

3、根据今天的网站访问数据能够得到在数据有访客的识别以 ip 表示因此可以根据当天收集到的访问数据得到当天的访客有哪些所以第一步去重统计 ip来了一次来了多次只算一去重ip统计得到今天的访客比如今天有 ip1,有ip2,ip4,ip5,ip6 等。

image.png

4、五个访客判断哪些是新访客哪些是老访客需要有判断比较的依据所以应该设计一个表用来保存历史上是否有来是否有访问过比如记录只要历史上过一次都会在这里记录进行判断因此为业务的持久进行至少还需要历史累计访因为是不断累加的过程

image.png

5、比如表有一种特殊的情况今天是公司开业的第一天今天来的所有的人都是新访客有 ip1,ip3,ip5,ip7。

image.png

6、两份数据进行判断比较口述很简单在历史访如果今天访存在就是老访客,明他如果不存在就是新访客,问题在于口头描述都比较好理解如何转化成 sql 呢今天和历史就是两个表两个表之间进行数据的操作应该会涉及表之间 join表之间的关联关联 join 涉及到内外左右以今天的数据为准所以在左边join 在 sql 层面是 left join

image.png

left join on 的表达式能进行关联的条件就是 ip今天的 ip 等于历史的 ip

image.png

关联以左表为准左边的数据全部显示出来右边与之关联关联上的显示关联不上的显示为 nullip1 显示为 ip1,ip2 没有显示为 nullip4 也没有显示为 nullip5 显示为 ip5,ip6 没有显示为 null有了结果之后左边是今天 ip右边是历史 ip

image.png

写 where 条件如果:where 历史. ip is null 没有关联上关联上证明在历史表中没有所以是新访客where 历史. ip is not null 关联上证明在历史表中有所以是老访客需求转化为 sql 就是两个ip是否能关联上今天的新访客永远是明天的老访客今天来过之后不管什么时候再来都是老访客因此最后需要把今天的新访客追加到历史累积访客表中作为后续的新老访客判断识别的依据这样更贴近于实战把业务变得更加完整

image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
14天前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
26 2
|
3月前
|
小程序 Linux 数据安全/隐私保护
Linux学习笔记十六:日志管理
Linux学习笔记十六:日志管理
|
3月前
|
监控 安全 前端开发
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
Nginx 访问日志中有 Get 别的网站的请求是什么原因?
33 0
|
5月前
|
Java
JVM学习笔记-如何在IDEA打印JVM的GC日志信息
若要在Idea上打印JVM相应GC日志,其实只需在Run/Debug Configurations上进行设置即可。
66 0
|
6月前
|
缓存 NoSQL Redis
Redis学习笔记-AOF日志&重写机制
Redis学习笔记-AOF日志&重写机制
82 0
|
6月前
|
NoSQL Redis
Redis学习笔记-AOF 日志和 RDB快照
Redis学习笔记-AOF 日志和 RDB快照
65 0
|
6月前
|
SQL 存储 关系型数据库
MySQL学习笔记-redo log 和 binlog&两阶段提交
MySQL学习笔记-redo log 和 binlog&两阶段提交
61 0
|
21天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
75 1
|
22天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
77 1
|
26天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位

热门文章

最新文章