网站流量日志分析—数据入库—宽表具体表现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 截取就可以,要截取直接完成使用。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
SQL 运维 监控
SLS 数据加工全面升级,集成 SPL 语法
在系统开发、运维过程中,日志是最重要的信息之一,其最大的优点是简单直接。SLS 数据加工功能旨在解决非结构化的日志数据处理,当前全面升级,集成 SPL 语言、更强的数据处理性能、更优的使用成本。
18089 137
|
28天前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
27天前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
15天前
|
SQL 人工智能 运维
在阿里云日志服务轻松落地您的AI模型服务——让您的数据更容易产生洞见和实现价值
您有大量的数据,数据的存储和管理消耗您大量的成本,您知道这些数据隐藏着巨大的价值,但是您总觉得还没有把数据的价值变现出来,对吗?来吧,我们用一系列的案例帮您轻松落地AI模型服务,实现数据价值的变现......
77 3
|
28天前
|
存储 监控 网络协议
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
|
19天前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
36 0
|
19天前
|
开发者 前端开发 编解码
Vaadin解锁移动适配新境界:一招制胜,让你的应用征服所有屏幕!
【8月更文挑战第31天】在移动互联网时代,跨平台应用开发备受青睐。作为一款基于Java的Web应用框架,Vaadin凭借其组件化设计和强大的服务器端渲染能力,助力开发者轻松构建多设备适应的Web应用。本文探讨Vaadin与移动设备的适配策略,包括响应式布局、CSS媒体查询、TouchKit插件及服务器端优化,帮助开发者打造美观且实用的移动端体验。通过这些工具和策略的应用,可有效应对屏幕尺寸、分辨率及操作系统的多样性挑战,满足广大移动用户的使用需求。
24 0
|
19天前
|
存储 运维 监控
Entity Framework Core 实现审计日志记录超棒!多种方法助你跟踪数据变化、监控操作,超实用!
【8月更文挑战第31天】在软件开发中,审计日志记录对于跟踪数据变化、监控用户操作及故障排查至关重要。Entity Framework Core (EF Core) 作为强大的对象关系映射框架,提供了多种实现审计日志记录的方法。例如,可以使用 EF Core 的拦截器在数据库操作前后执行自定义逻辑,记录操作类型、时间和执行用户等信息。此外,也可通过在实体类中添加审计属性(如 `CreatedBy`、`CreatedDate` 等),并在保存实体时更新这些属性来记录审计信息。这两种方法都能有效帮助我们追踪数据变更并满足合规性和安全性需求。
21 0
|
27天前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
20 0
|
1月前
|
Kubernetes 关系型数据库 API
实时计算 Flink版产品使用问题之连接的PG表长时间无数据写入,WAL日志持续增长,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

热门文章

最新文章