Hadoop离线_网站流量日志数据分析系统_数据入库

news/2024/5/9 5:50:05/文章来源:https://blog.csdn.net/weixin_44449054/article/details/113824060

数据入库ETL

          • 1.数据仓库设计
          • 2.本项目中数据仓库的设计
          • 3.创建 ODS 层数据表
          • 4.导入 ODS 层数据
          • 5.生成 ODS 层明细宽表


1.数据仓库设计

1.1维度建模概述
维度建模 (dimensional modeling) 是专门用于分析型数据库、数据仓库、数据集市建模(数据集市可以理解为是一种"小型数据仓库")的方法。
维度表 (dimension) 就是对数据按类别、区域等各个角度进行分析,比如有一个实例:今天下午白某在星巴克花40元喝了一杯星冰乐。以消费为主题对这段信息可以提取四个维度:时间维度 (今天下午)、地点维度 (星巴克)、价格维度 (40元)、商品维度 (星冰乐)。所以一般情况下维度表信息比较固定,且数据量小。
事实表 (fact table) 包含了与各维度表相关联的外键,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。
数据仓库的主导功能是面向分析,以查询为主,不涉及数据更新操作,所以不需要严格遵守规范化设计原则。事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为准则。

1.2维度建模的三种模式
1.星型模式
星型模式 (Star Schema) 是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样,是最常用的维度建模方式。
特点:
1.维度表只和事实表关联,维度表之间没有关联
2.每个维度表主键为单列,且该主键放置在事实表中,作为两边连接的外键
3.以事实表为核心,维表围绕核心呈星形分布
在这里插入图片描述

2.雪花模式
雪花模式 (Snowflake Schema) 是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。
在这里插入图片描述

3.星座模型
星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。
在这里插入图片描述

2.本项目中数据仓库的设计

2.1事实表设计
在这里插入图片描述
在这里插入图片描述

注意:使用星型模型

2.2维度表设计

在这里插入图片描述

3.创建 ODS 层数据表

创建数据库:create database weblog;

3.1原始日志数据表

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 delimited
fields terminated by '\001';

3.2点击流模型 pageviews 表

create table ods_click_pageviews(
session string,
remote_addr string,
remote_user string,
time_local string,
request string,
visit_step string,
page_staylong string,
http_referer string,
http_user_agent string,
body_bytes_sent string,
status string)
partitioned by (datestr string)
row format delimited
fields terminated by '\001';

3.3点击流 visit 模型表

create table ods_click_stream_visit(
session     string,
remote_addr string,
inTime      string,
outTime     string,
inPage      string,
outPage     string,
referal     string,
pageVisits  int)
partitioned by (datestr string)
row format delimited
fields terminated by '\001';
4.导入 ODS 层数据
1.导入清洗结果数据到贴源数据表ods_weblog_origin
LOAD DATA LOCAL inpath '/export/servers/weblog/weblogout' overwrite INTO TABLE ods_weblog_origin PARTITION ( datestr = '20130918' );
2.导入点击流模型pageviews数据到ods_click_pageviews表
LOAD DATA LOCAL inpath '/export/servers/weblog/pageView' overwrite INTO TABLE ods_click_pageviews PARTITION ( datestr = '20130918' );
3.导入点击流模型visit数据到ods_click_stream_visit表
LOAD DATA LOCAL inpath '/export/servers/weblog/visit' overwrite INTO TABLE ods_click_stream_visit PARTITION ( datestr = '20130918' );
5.生成 ODS 层明细宽表

5.1需求实现
整个数据分析的过程是按照数据仓库的层次分层进行的,总体来说,是从
ODS 原始数据中整理出一些中间表(比如,为后续分析方便,将原始数据中的时
间、url 等非结构化数据作结构化抽取,将各种字段信息进行细化,形成明细表),
然后再在中间表的基础之上统计出各种指标数据。

5.2 ETL 实现
建明细表 ods_weblog_detail:

drop table ods_weblog_detail;
create table ods_weblog_detail(
valid string, --有效标识
remote_addr string, --来源 IP
remote_user string, --用户标识
time_local string, --访问完整时间
daystr string, --访问日期
timestr string, --访问时间
month string, --访问月
day string, --访问日
hour string, --访问时
request string, --请求的 url
status string, --响应码
body_bytes_sent string, --传输字节数
http_referer string, --来源 url
ref_host string, --来源的 host
ref_path string, --来源的路径
ref_query string, --来源参数 query
ref_query_id string, --来源参数 query 的值
http_user_agent string --客户终端标识
)
partitioned by(datestr string);

插入数据:

INSERT INTO TABLE ods_weblog_detail PARTITION ( datestr = '20130918' )
SELECT c.valid,c.remote_addr,c.remote_user,c.time_local,
substring( c.time_local, 0, 10 ) AS daystr,
substring( c.time_local, 12 ) AS timestr,
substring( c.time_local, 6, 2 ) AS month,
substring( c.time_local, 9, 2 ) AS day,
substring( c.time_local, 11, 3 ) AS hour,
c.request,c.status,c.body_bytes_sent,c.http_referer,c.ref_host,c.ref_path,c.ref_query,c.ref_query_id,c.http_user_agent 
FROM (
SELECT a.valid,a.remote_addr,a.remote_user,a.time_local,a.request,a.status,a.body_bytes_sent,a.http_referer,a.http_user_agent,
b.ref_host,b.ref_path,b.ref_query,b.ref_query_id 
FROM ods_weblog_origin a 
LATERAL VIEW parse_url_tuple ( regexp_replace ( http_referer, "\"", "" ),
'HOST','PATH','QUERY','QUERY:id' ) b 
AS ref_host,ref_path,ref_query,ref_query_id ) c;

或者分两步写:
1.抽取refer_url到中间表 t_ods_tmp_referurl

CREATE TABLE t_ods_tmp_referurl AS 
SELECT a.*,b.* 
FROM ods_weblog_origin a 
LATERAL VIEW parse_url_tuple (
regexp_replace ( http_referer, "\"", "" ),
'HOST','PATH','QUERY','QUERY:id' ) b 
AS host,path,query,query_id;

2.抽取转换time_local字段到中间表明细表 t_ods_tmp_detail

CREATE TABLE t_ods_tmp_detail AS
SELECT b.*,
substring( time_local, 0, 10 ) AS daystr,
substring( time_local, 12 ) AS timestr,
substring( time_local, 6, 2 ) AS month,
substring( time_local, 9, 2 ) AS day,
substring( time_local, 11, 3 ) AS hour 
FROM t_ods_tmp_referurl b;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_823752.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在网页上显示其他网站的数据_如何从亚马逊抓取产品数据?

“为什么我们需要抓取亚马逊的数据?”,也许这是您可能会问的第一个问题。亚马逊是美国最大的电子商务公司,拥有世界上种类最多的产品。将产品数据抓取下来有很多有价值的用途。以下是为您列举的一些企业利用产品数据的好处:与竞争…

flash按钮点击无反应_久等了!赫鲸建站更炫的按钮样式及功能来了

听说有小伙伴想要更炫酷的网站展示效果?赶快来试试新的带悬停动效的按钮样式吧!下滑解锁更多功能更新咨询哦~按钮模块更新样式与功能使用场景电脑网站;按钮模块功能说明1. 新增多种带悬停动效按钮样式,让按钮更具吸引力。2. 支持更…

好用的图片压缩网站

1、https://tinypng.com/ 完全免费 - - || 压缩图片 PNG、JPG 推荐指数 ★★★★ 可批量操作,单次最多支持20张图片。 ​ 2、https://www.imagerecycle.com/ 完全免费 - - || 压缩PNG、JPG、GIF、PDF 推荐指数 ★★★★ 支持网站文件资源url直接压缩&…

医药工业相关网站

医药工业相关网站 中国医药工业信息中心网 中国医药工业信息中心 江苏恒瑞 恒瑞医药 正大天晴 正大天晴药业集团股份有限公司_正大天晴药业集团股份有限公司 豪森药业 抗肿瘤,精神类药物_江苏豪森药业集团有限公司 江苏康缘 康缘集团_江苏康缘集团有限责任公司_康缘集…

chrome header 获取_使用Chrome插件来补充一些写作网站没有Markdown的坑

场景技术者写文章,基本少不了Markdown了,但是很多自媒体平台(大而全那种),往往都是坑爹的富文本编辑器(还很多是魔改UEditor,人家官方三年没更新了喂)。小白学逻辑,内行看门道。类似这种:这是很麻烦的一件事…

qq申诉网站无法接到服务器,为什么我qq申诉不成功 - 卡饭网

qq申诉成功后怎么办qq申诉成功后怎么办 qq申诉成功后怎么办 1.在QQ申诉中,我们采用的方法有两种,一种是邮箱,一种是手机.邮箱申诉方式就会有一个链接发到你的邮箱,你进去点击打开就行.这里主要是讲手机接收的方式进行申诉,申诉成功后会收到下面的短信; 2.打开短信中的网址,输…

护卫神异地备份系统怎么传服务器,护卫神异地备份系统(网站异地备份工具)V2.8.2 官方版...

护卫神异地备份系统(网站异地备份工具)是一款非常优秀好用的专业网站异地备份软件。护卫神异地备份系统功能全面,操作简单,支持上传和下载模式,可以全自动备份重要数据,让网站数据更安全。可以实时或者定时帮助用户把数据传到远程…

中小公司网站架构

基于阿里云平台,部署中小型网站架构,如下图 转载于:https://www.cnblogs.com/xuegqcto/p/7519859.html

rfq在计算机那种代表什么,阿里网站专业术语中rfq是什么意思

阿里国际站rfq是客户主动发布的采购需求。买家主动发布采购需求,供应商自主选择挑选合适的买家进行报价。随着平台规则更新,以及平台对于RFQ这一块资源的重视度越来高,RFQ的使用不仅影响平台的RFQ资源的奖励额度,同时直接影响到店…

销售易 服务器错误的是什么,急,打开“深圳市市场监督管理局网站”出现服务器错误,请问是我电脑问题还是该网站问题,如何解决?谢谢...

急,打开“深圳市市场监督管理局网站”出现服务器错误,请问是我电脑问题还是该网站问题,如何解决?谢谢0zhuwq8862014.06.04浏览147次分享举报“/OutSide.WebUI”应用程序中的服务器错误。 ---------------------------------------…

squid正反向代理-加快网站访问速度

配置squid代理服务器加快网站访问速度 一:squid服务概述 Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache…

JavaScript练习网站收集

在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的JavaScript练习的网站。 codewars 国外的一个练习网站,有JavaScript,也有Python,每…

更改浏览器网站图标与标头(普通网站和el-admin)

还记得第一次更改图标和标头,还是学习htmlcss写作品(静态网页)的时候。 1.简单静态网页 只需要一个title标签和link引入。 注意:这种引入图标的写法,仅对当前页面生效 2.el-admin修改 先找到public文件夹下的inde…

常见负面SEO方法,你应该知道的事?

由于百度算法的不断调整,并且开始严厉打击作弊行为,一些搜索引擎优化公司面临竞争对手的压力,经常采用一些不正当的手法。 入侵竞争对手的网站,并采用一些非常规的手段,使得让你的网站看起来,变的有一些不一…

第32篇 网站试题生成word下载时bug解决

问题描述:英语科下载word时,选的题型有:完形填空和词汇运用两种,但下载出来题的序号排序混乱。 1 完形填空序号混乱解决 网站上生成的如下: 而我生成的word如下: 原因在于:正则表达式出了问题…

(转)3个常用基于Linux系统命令行WEB网站浏览工具(w3m/Links/Lynx)

一般我们常用的浏览器肯定是基于可视化界面的图文结合的浏览界面效果,比如FireFox、Chrome、Opera等等,但是有些时候折腾和项目 的需要,在Linux环境中需要查看某个页面的文字字符,我们需要简单的浏览网页页面,但是也不…

Docker启动nginx容器--搭建网站

1.下载nginx镜像 docker pull nginx 2.启动nginx镜像 docker run -d --name nginx01 -p 80:80 -v /data/nginx/www:/usr/share/nginx/html -v /data/nginx/log:/var/log/nginx nginx -d 后台运行方式-name 给容器起别名-p 宿主机和容器端口映射 3.进入到容器中 docker e…

K8S集群使用Ingress实现网站入口动静分离实践

今年3月份在公司的内部k8s培训会上,和研发同事详细探讨了应用部署容器化部署的几个问题,问题简要如下: 1、java应用容器化部署首先通过自动化部署工具编译出全量的war包,将war包直接编译到docker镜像后推送到私用仓库并版本化控制…

网站多次切换服务器ip,站群多ip服务器怎么切换ip?

租多ip服务器的主要目的是,有时候用服务器采集别处的内容被封了IP,我们就经常碰到。这时候我们就要换服务器主IP才可以继续采集,下面跟大家讲下多ip服务器怎么切换ip的方法,这个方法只对多IP的服务器有效,只有一个IP的…

wordpress windows安装_本地搭建WordPress外贸网站教程

如果你还是个小白,想学习外贸建站技术,无奈还不懂域名和服务器知识,那么在本地搭建WordPress网站是再好不过的选择了,不需要任何经济上的成本,是学习建站的很好的选择,那么怎么在本地搭建WordPress网站呢&a…