网站流量日志分析--数据入库--宽表具体实现2—解析 url|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 快速学习网站流量日志分析--数据入库--宽表具体实现2—解析 url

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

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


网站流量日志分析--数据入库--宽表具体实现2—解析 url

来访的 url 字段表面看起来是非常标准的 url ,这里面有协议、主机、支援路径等等还有请求的参数。这么样的一个字段 http://cos.name/category/software/packages/ 写代码处理非常麻烦,第一点它里面的主机零长短不一,怎么截取;第二个支援路径也不一样,有的长有的短有的包含多个支援路径,那么针对这个方式现在来看是比较担忧的,无从下手。 Hive 当中有一个内置的 UDTF 函数叫做 parse-url-tupl,它可以解析 url 相关的字。

Parse_url_tuple(regexp_replace(http_referer,”\””,””),’HOST’, ’PATH’, ’QUERY’, ’QUERY:id’) b as host, path, query, query_id;

首先这里采用了侧视图,先不看测试图,先看  parse-url-tuple 做什么事,把语句复制出来,首先第一点要明确parse-url-tuple 是 hive 内置的 UDTF 函数,可以处理标准的 url  格式数据,根据 url 数据可以自动的提出相关的属性,比如 host 、path、请求的参数 query 以及具体的值等等相关参数,按照标准就可以来到。但是这当中有一个前提叫做标准的 url 为什么在这里重点强调一下,数据当中,如果直接把这个字段给它,能不能叫标准,看上去好像很完美,但是不是标准,不标准在于左右两边都有双引号存在,所以在处理字段之前要做的第一件事就是把引号给它去除掉。引号去掉很简单,可以截取也可以采用正则替换,这里就采用了一个 regexp-replace 一个正则替换,这就相当于 socre 里面函数嵌套函数,首先第一个把它拖出来看一下,这又是一个 hive 内置的正则替换函数,替换传过来的字段,把里面的第一个斜杠表示转移,把里面的所有引号替换成为空,把 http-referer 字段作为参数传递给这个函数,它就可以把里面所有的引号为空,相当于去除了 url 两边的引号,去除完之后,再把它作为参数传递给 path tuple 就可以进行解析。后面的解析有相关的值 host、path、query。

举个例子,

http://www.itcast.cn/bigdata/1.html?id=00001&name=allen&age=18,比如说这是一个标准的 url ,基于这个参数可以解决如果这里指定的是 host , host 是主机,它就可以帮助提到这一段 www.itcast.cn,接下来 path 这个路径,如果传一个 path ,哪个是路径,是从斜杠开始到1这是请求的支援路径;接下来 query 叫做请求,这就是它的参数,把所有的参数拿过来,从 id 到18,最后query id 比较好奇,看这个语法很特殊,query id 中的id 是解析对应参数中的 k 看这个 id 中有获取到的值是00001,这时候可以再扩展,举个小例子,query name allen ,这就是这一个内置专门解析函数语法规则。如果指定的属性不存在,就返回 null ,这就是 hive 当中非常漂亮的一个内置函数,专门用于解析 url 。

这是一个 UDTF 函数,要想跟之前的表产生关联,就要引入 later view 侧视图,原来的表称之为 a, later view parse.url 称之为b 。 a 和b 做一个表之间的关联, a表是 url 字段,b 表是刚才函数的解析出来新的字段,叫做 host、 path、 query、query id,作为符合就构成了新的字段。这样满足表关联的操作,这就是第二个叫做来源 url 字段的拓宽,这里要注意引入了一个叫做 hive 内置的解析 url 函数,是一个标准的 udtf 函数,把函数名字简单写一下,就是 parse-url-tuple 复制过来粘贴,这样就完成了两个字段的破罐。当然重点还是对 hive 语序。

下面结合上面描述看一下具体的实现,这里有一个叫做 dw-detail.sql 语句,刚才已经把宽表创建成功,接下来就是把数据导入进去,这时候才看起来比较大,但是颇析出来将会非常简单,首先它的语法结构叫做 insert ,insert intp table 叫做宽表,后面是宽表的分区,来自于 insert 查询,查询时候看起来很多,实则很简单,看到 insert 之后确定 form 关键字,把 a 查询字段都去掉,这时候发现就比较明朗,首先使用查询原来的表叫做 a ,later view 解析函数叫做 b, a 和 b 之间做一个关联,起个名叫做 c ,这时候想一下 c 表的字段是否等于 a 表的字段,原来表的字段加上解析 udtf 函数生成的字段,在脑海当中可以写一个等式叫做 c.*等于a.*加上 b.*,明白它之后接下来再针对 c.*操作截取当中的时间字段,把所有字段填充到宽表当中就可以完成。

以画图的角度来看(如下图),一个是真是的窄表,一个是虚拟的表。

image.png

复制之后做执行,打开 hive 服

image.png

打开服务器,做查询语句,因为开始 hive 本地模式执行起来将非常快,接下来 select*from 宽表数据到底有没有解析出来,把宽表数据拿过来加一个 limit 关键字看一下解析正不正常,这里有好多字段复制出来看一下到底宽表解析的完不完美,这也是俗称的 etl,导入的时候所有字段的抽取操作。把它拿出来之后做一个复制填充到新的窗口当中,

image.png

这时候做一个验证,首先前面这些的字段事原来窄表的字段没有操作,重点在时间是原来字段,日期,时间,月份,day、hour ,这五个字段是从日期当中提出来的,而且是多少对应多少,这样的字段在分析的时候非常方便。后面的url, 当中没有为空,有的把它解析出来, host 如果有对应的主机是谁,没有显示为 null ,下面是 path 是从哪个路径来的,后面的参数有就显示,没就为 null。这就是一个宽表数据的生成,从客观上再次理解什么叫宽表,字段变多数据变得详细叫做宽表,它的存在就是一个标准就是有利于数据的分析,方便于后续的分析,这就是宽表的具体实现。

相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
1月前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
159 49
|
24天前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
1月前
|
监控 前端开发 安全
如何开发一个网站:全面解析与实战指南
在数字化时代,网站是企业和个人展示形象、传播信息的关键平台。本文提供从规划、设计、开发、上线到后期维护的全方位网站开发指南,涵盖明确目标、分析用户、设定功能需求、设计风格、技术选型、测试部署及优化升级等内容,帮助你打造既美观又实用的网站。
59 4
|
2月前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
4085 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
1月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
64 2
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
121 1
|
2月前
|
监控 网络协议 应用服务中间件
深入解析:如何确定网站使用的端口号
【10月更文挑战第21天】 在网络通信中,端口号是识别特定服务的关键。一个IP地址可以有多个端口,每个端口可能运行着不同的服务。当我们在浏览器地址栏输入一个网址时,实际上是通过特定的端口与服务器进行通信。本文将探讨如何确定一个网站使用的端口号,以及端口号在网络通信中的作用。
146 4
|
1月前
|
数据采集 存储 自然语言处理
基于Qwen2.5的大规模ESG数据解析与趋势分析多Agent系统设计
2022年中国上市企业ESG报告数据集,涵盖制造、能源、金融、科技等行业,通过Qwen2.5大模型实现报告自动收集、解析、清洗及可视化生成,支持单/多Agent场景,大幅提升ESG数据分析效率与自动化水平。
108 0
|
2月前
|
存储 监控 安全
深入解析Sysmon日志:增强网络安全与威胁应对的关键一环
在不断演进的网络安全领域中,保持对威胁的及时了解至关重要。Sysmon日志在这方面发挥了至关重要的作用,通过提供有价值的见解,使组织能够加强其安全姿态。Windows在企业环境中是主导的操作系统,因此深入了解Windows事件日志、它们的独特特性和局限性,并通过Sysmon进行增强,变得至关重要。

推荐镜像

更多