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

简介: 快速学习网站流量日志分析—数据入库—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 层表

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

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

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

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
3月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
774 59
|
3月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
253 30
|
7月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
4月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
553 1
|
8月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
584 117
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
412 0
|
4月前
|
数据采集 运维 监控
|
6月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
736 4
|
9月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
174 0
一招高效解析 Access Log,轻松应对泼天流量