基于阿里云大数据平台开发大数据应用(三):基于MaxCompute 的慕课网站数据仓库

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文是基于阿里云大数据平台开发大数据应用系列文章的第三部分,主要介绍如何基于阿里云MaxCompute 平台,开发慕课网站的数据仓库。

一、需求分析
网站访问日志是用户在访问网站服务器时产生的事件记录(log),通常记载着时间、日期、使用者及动作等相关操作的描述。在大数据时代,我们应当抓取并利用这些日志中有价值的信息,这样我们才能更好的了解网站的运行情况并做出相应的优化,甚至为公司营销策略提供依据。

在本项目中,我们提取了网站访问日志中有价值的信息,如:用户IP、访问时间、请求链接、请求状态、来源链接、用户操作系统、浏览器等。对这些数据进行处理分析,得到网站的运行情况、安全情况、运营情况以及网站的用户信息等。最终通过数据分析,得出相应的结论或提出相应的优化策略。

二、数据集构成分析
1、 access.log
包含:IP地址,访问时间,请求链接,访问状态,字节数,访问来源,用户信息
2、 ip.txt
包含:IP地址起点,IP地址终点,地点,网络运营商

三、数据处理分析:
image.png
1、 预处理access.log(Python)
由于日志文件中无法获得独立用户(UV)的cookie id,实验中判断UV的方式是:IP和用户信息。在存储时只需要保留两项信息相同,且访问时间最早的log,即可获得最终的UV。考虑到原数据集中的时间精度可能不满足上述要求,无法找出“最早log”,所以在每一条log前添加了自增长的id。
image.png

2、 创建原数据表导入数据
web_access_log_content:access.log
web_ip_content:ip.txt

3、 提取日志各个属性
新建表 web_access_log_0 存储access.log文件中提取到的各项属性信息
image.png
从web_access_log_content表中利用正则式提取各项属性。
其中ip_1表示IP的第一个数,ip_num存储IP的十进制数。这样将IP转为十进制数是为了在后续获取相应地点和网络运营商时方便关联两个表。

4、 提取IP属性
建立web_ip_info存储ip.txt中的各项属性信息,其中ip_start_1表示IP中的第一个数。
image.png
同样,在该表中IP起点和IP终点都是作为十进制数存储的,地点和运营商也依据正则表达式进行提取。

5、 在log中增加地点、运营商和访问链接信息
新建表web_access_log_1存储关联后的结果,新增属性city,company
再将地名和网络供应商的名称规范后的表存为web_access_log_2,同时加入访问链接url信息,其中网络供应商只分为四类:移动、联通、电信、其他。

6、 提取访问时间和来源链接
新建表web_access_log_3,新添加属性access_hour, ref_type

7、 处理用户(客户端)信息
新建表web_access_log_4,新添加属性client_browser, client_type
client_browser:用户使用的浏览器;
client_type:用户使用的操作系统;
至此,所有的信息已合并完全。

8、 获取UV表(即:用户第一次访问)
通过自关联,判断IP、用户信息和自增id来确定UV,同时建立web_access_log_first表来存储UV。

9、 获取最热访问链接
记录访问链接的前10名为最热访问链接,存在web_access_log_url_top表中。
image.png

10、 获取IP黑名单
新建表web_access_log_ip_black存储IP黑名单;
黑名单条件:无效访问次数>50。
image.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
3月前
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
2月前
|
SQL 分布式计算 大数据
代码编码原则和规范大数据开发
此文档详细规定了SQL代码的编写规范,包括代码的清晰度,执行效率,以及注释的必要性。它强调所有SQL关键字需统一使用大写或小写,并禁止使用select *操作。此外,还规定了代码头部的信息模板,字段排列方式,INSERT, SELECT子句的格式,运算符的使用,CASE语句编写规则,查询嵌套规范,表别名定义,以及SQL注释的添加方法。这些规则有助于提升代码的可读性和可维护性。
41 0
|
2月前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
75 0
|
3月前
|
存储 SQL 分布式计算
MaxCompute 在大规模数据仓库中的应用
【8月更文第31天】随着大数据时代的到来,企业面临着海量数据的存储、处理和分析挑战。传统的数据仓库解决方案在面对PB级甚至EB级的数据规模时,往往显得力不从心。阿里云的 MaxCompute(原名 ODPS)是一个专为大规模数据处理设计的服务平台,它提供了强大的数据存储和计算能力,非常适合构建和管理大型数据仓库。本文将探讨 MaxCompute 在大规模数据仓库中的应用,并展示其相对于传统数据仓库的优势。
115 0
|
3月前
|
SQL 存储 分布式计算
MaxCompute 入门:大数据处理的第一步
【8月更文第31天】在当今数字化转型的时代,企业和组织每天都在产生大量的数据。有效地管理和分析这些数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个用于处理海量数据的大规模分布式计算服务。它提供了强大的存储能力以及丰富的数据处理功能,让开发者能够快速构建数据仓库、实时报表系统、数据挖掘等应用。本文将介绍 MaxCompute 的基本概念、架构,并演示如何开始使用这一大数据处理平台。
489 0
|
3月前
|
SQL 分布式计算 大数据
"大数据计算难题揭秘:MaxCompute中hash join内存超限,究竟该如何破解?"
【8月更文挑战第20天】在大数据处理领域,阿里云的MaxCompute以高效稳定著称,但复杂的hash join操作常导致内存超限。本文通过一个实例解析此问题:数据分析师小王需对两个共计300GB的大表进行join,却遭遇内存不足。经分析发现,单个mapper任务内存默认为2GB,不足以支持大型hash表的构建。为此,提出三种解决方案:1) 提升mapper任务内存;2) 利用map join优化小表连接;3) 实施分而治之策略,将大表分割后逐一处理再合并结果。这些方法有助于提升大数据处理效率及稳定性。
79 0
|
3月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
4月前
|
SQL Cloud Native 关系型数据库
云原生数据仓库使用问题之分组优化如何实现
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
4月前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库操作报错合集之遇到“table does not exist”错误,该怎么办
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。

热门文章

最新文章