网站流量日志分析—数据入库—宽表具体表现1—时间拓宽|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习网站流量日志分析—数据入库—宽表具体表现1—时间拓宽

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

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


网站流量日志分析—数据入库—宽表具体表现1—时间拓宽


为了得到它,需要搞清楚几个问题,第一个宽表的数据由何而来;第二个宽表需要拓宽哪些字段,有宽表就有窄表,需要增加那些字断;第三个使用什么技术进行字段的扩宽。把这三个问题搞明白就可以得到最后的宽表。

首先看一下第一个问题,宽表的数据由何而来,想想既然有宽表与之对应的是窄表就是原始日志数据表,所以自然而然想到宽表由窄表数据得到,那么所谓的窄表就是原始日志表,没有经过处理的叫做窄表,这时候可以想到当去创建一个宽表之后,大致语法结构是什么,可以搞个伪代码叫做 insert inton 宽=select from 窄,这个语法非常重要,从侧面告诉宽表的数据来自于窄表的查询;

第二个宽表扩宽需要哪些字段,这个就跟项目息息相关,来到项目当中,这时候需要扩宽两个字段,根据数据来看,第一个字段是时间字段 time local 当中包含年月日时分秒,为此把这些属性提出来变成一个新的字段,首先原来的字段还叫 time local 提取出来一个日期的,时间的 month day hour 这五个字段就相当于从 time local 当中提取出来,第一个需要的字段跟业务需求相关,接下来叫做本项目中进行两个字段的互换,第一个就是时间的字段 time local 由这个字段当中一区相关的属性变成演变时间表,第二个字段,在表中还有一个字段叫做 http referer,也就是说数据当中有一个字段表明从哪里来,哪个页面来,这个字段 referrer ,这个字段需要互换什么,说过标准的 url 有哪些属性,看 http 叫协议,后面 host.name 叫做主机, host 叫做IP 请求的具体资源还可以拼接参数,referer 当中通常是一个 url ,那么就可以统计网站的域名、资源、路径等等来进行相关的分析,所以说第二个需要拓宽资源的叫做 http referer ,第二个字段叫做来访的字段,这个表(如下图)中的字段有一个来源、

image.png

来访的 host ,主机、一个来源的路径 path,查询的所有参数 query,指定参数对应的值,这四个字段相当于这个宽表新增了九个字段,这五个字段来自于对时间的扩宽,而这四个字段来源于来访的扩宽,这样就得到了宽表。当然其他的字段如果有 url 也可以进行扩宽,就完成了扩宽字段的创建。

接下来把宽表的建表语句创建, create table 叫做宽表,叫做 dw 表明它来自数据仓库,从 ods 窄表经过 detail 把它导入到宽表,当中的这些字段是它之前本来就存在的字段,而要把新建的字段创建出来,在项目资料当中有数据入库当中有一个叫做 dw-detail.sql,打开它,这里面指定了创建宽表的语句,后面这个表是注释,这里面有有效标识 IP referrer,当中再次强调从日期开始这五个字段是新增的(如下图),下面来访的号 ,总共扩宽了九个字段。接下来把建表语句创建下来,因为窄表是分区表,宽表也是分区表,一一对应的,给你1号的窄表数据肯定不能得到2号的宽表,这个一一对应的过程,一天一分析,一周一分析,把表创建一下,复制,打开服务器,粘贴,因为后面是注释

image.png

接下来 show tables

image.png

这样就完成了宽表的 dw 建表语句,当然建表完成之后并没有数据,

接下来涉及到第三个问题,使用什么样的技术进行字段的扩宽,但是核心思路是把宽表数据进行插入 ,插入的数据来自于查询返回的结果,至于插入什么样的数据完全取决于查询语句返回的结果,宽表实现的重担就落在查询,在查询的时候因此就需要使用 hive 的函数进行字段的扩宽操作,以项目来说,需要扩宽两个字段,

image.png

第一个字段叫做 time local 这个字段看一下表数据就是一个非常标准的字幕上的时间,里面有年月日时分秒,需要日期时间的,针对它的操作没有太多的难度,第一个针对时间维度扩宽很方便,需要 substring 截取出来。

image.png

举个例子来看,提取这个06,从第十二开始截取为两个,要获取月份,比如说十一月份012356,从第六个开始提取两个,只要数的清楚,数的准确,就可以解析出来。

演示示例,打开 hive 数据库,首先 select*from 表叫做 origin ods ,为了方便加关键字 limit1 ,这时候不需要其他字段,只需要 time local ,执行语句,运行结果如下:

image.png

返回的是时间,接下来想要 month 几月份,截取出来 substring ,把 time local 作为字段,首先里面 time/local,接下来怎么截取,就是数,从第一位,第二位,第三位,第四位,第五位,从第六位开始截取两个,写个六,提取完之后,as month, 这是第一个,接下来再截取一个字段叫做 as day,只要数的准确再执行,

image.png

针对第一个字段采用 substring 截取就可以,要截取直接完成使用。

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

热门文章

最新文章