网站流量日志分析—数据入库—ODS 建表操作|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析—数据入库—ODS 建表操作

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第三阶段) 网站流量日志分析—数据入库—ODS 建表操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/695/detail/12201


网站流量日志分析—数据入库—ODS 建表操作


整个建表需要创建事实表、维度表以及点击流模型表,当中来说,建表难度不大,唯一需要强调一点,就是表当中有哪些字段哪些模型,一定要跟数据对应上。

这个表为了方便发现是一个 partitioned 是一个分区表,今天的数据导过来之后,后面过段时间再去分析,如果说每隔一周分析一次,是不是把数据按照周来分析比较好,同样的要每天分析一次的数据表要为天,所以小技巧要注意到。

接下来具体操作,首先来到数仓当中建立一个新的数据库,打开服务器,当连接之后首先创建一个新的数据库叫做 IT 黑马 ,创建好数据库之后,使用切换的数据库,在这当中没有任何的数据。

image.png

首先创建一下原始数据表叫做 ODS 表。打开网站流量日志分析项目资料,当中有一个第三步数据入库 ETL ,当中有一个 ods-create sql,打开它,

drop table if exists ods-weblog-origin

create table ods-weblog-origin(

valid string,

remote-addr string,

remoye-user string,

time-local string,

request string,

status string,

body-bytes -sent string,

http-referer string,

http-user –agent string,

partitioned by (datestr string)

row format delimited

fields terminated by ‘\001’;

第一个表叫做原始日志数据表,再次强调,原始数据表对应的是 mr 处理完的数据,而不是买点采集的数据,这个表有 vaild 校验是否合法,是否有效,用户的IP ,用户的标识,时间,请求页面,状态码,发送的数据量,协议从哪来的以及终端信息,后面是一个分区时段,根据日期来进行分区,后面指定的是分割 row 01, 数据中也是0,所以写不写没有太多的问题。

接下来把表创建一下,上面第一条语序表示删除这个表,如果之前在操作可以删除,现在是新的库不需要执行它,把下面表复制过来,粘贴回车,这样就创建好第一个 ODS 原始数据表,

drop table if exists ods-click-pageviews;  

create table ods-weblog-origin(

valid string,

remote-addr string,

remote-user string,

time-local string,

request string,

status string,

body-bytes-sent-string,

http-referer string,

http-user-agent string,

partitioned by (datestr string)

row format datinited

fileds terminated by’\001’;

接下来还要把点击流模型创建,第一个叫做点击流模型的 pageview 模型表,还有一项专注的是绘画识别,绘画停留几步和停留时间,所以有这些字段信息,还要打开进来的数据,结合数据确定一下,有 SOH,IP, 时间,步骤号,步骤停留时间等等,发现有所谓的 SOH ,用户标识,停留的时间,time-local,visit-step 等等,这些字段是数据当中确定的,因此一定要心细。也是一个分区表,点击流模型数据来自于原始数据的一个梳理,它是业务上的延伸扩展,是1号数据,点击流模型也是1号,建立顺序表与它保持一致,分割符是杠01,接下来复制,点击流第一个模型叫做 pageview,复制它来到当中做一个粘贴与之执行。

drop table if exists ods-click-stream-visit;

create table ods-click-stream-visit(

session string,

remote-addr string,

intime string,

outtime string,

inpage string,

referal string

pagevisitioned  int)

partitioned by (datestr string)

riw formatdelimited

fields terminated by’\001’’’;

第二个点击流模型叫做 visit 表,它是点击流当中针对每个筛型做了一个起始和结尾情况的聚举,当中有这些字段,有绘画,用户进入时间,离开时间,进入页面离开页面,这就是点击流模型的 visit 模型表,创作数据表叫做 ods-click –stream-visit,这里有一个小技巧需要强调一下,在企业当中叫做什么名字,没有强制规定,但通常叫做以简短的英文表示该表的名字,不要用汉语拼音,更不要用中文,这样看起来易于别人的维护和阅读理解,创建好之后还是保持一样也是个分区表,分区阶段也是日期,因为在数据当中可以发现日期的字段,这里收集的数据是2018年11月1号的数据,所以说建立分区的时候要以日期20181101为分区字段,这是 visit 表模型复制一下创建,复制完成之后来到 have 当中右键粘贴,

drop table if exists t-dim-time;

create table t-dim-time(date key-int,year string,day string,month string,day string,hour string ) row format delimited flieds terminated by’

维度表的数据,在项目当中,以一个维度表为例,叫做时间维度,等下去分析数据的时候,可以从不同的时间维度来开展,时间,小时,月份等等,因此看一下维度表有哪些字段,第一个有一个无意义的主键( int year month day hour)可以想象一下,后面分析每一天确定天跟表进行关联就可以分析相关的指标。根据逗号来分割,之后说到为什么用逗号,需要看数据怎么生成来的,这是非常普通的时间维度表。

把这个表创建,创建完之后,使用命令叫做 show tables 看在数仓当中就存在原始的日志表和时间维度表以及两个点击流模型表,这个表现在当中当然没有数据,是创建表的结构,这样完成了第一步操作去创建 ODS 表的结构。

创建 ods 层表

表名通常以剪短的英文表示,不用汉语拼音甚至中文;

建表的时候表的字段顺序类型要和数据保持一致,心细;

通常企业中采用分区表进行优化,方便后续查询管理。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
167 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
3月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
556 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
3月前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
54 2
|
5月前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
5月前
|
jenkins 持续交付
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
jenkins学习笔记之三:使用jenkins共享库实现日志格式化输出
|
3月前
|
数据可视化
Tensorboard可视化学习笔记(一):如何可视化通过网页查看log日志
关于如何使用TensorBoard进行数据可视化的教程,包括TensorBoard的安装、配置环境变量、将数据写入TensorBoard、启动TensorBoard以及如何通过网页查看日志文件。
322 0
|
5月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
152 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
3月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
4月前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
268 3