(32)页面日志表

1.

页面日志解析思路: 页面日志表中每行数据对应 一个页面访问记录 ,一个页面访问记录
应该包含日志中的公共信息和页面信息。 先将所有包含 page 字段的日志过滤出来 ,然后使
get_json_object 函数解析每个字段。

 

1 )建表语句
hive (gmall)>
drop table if exists dwd_page_log;
CREATE EXTERNAL TABLE dwd_page_log(
`area_code` string COMMENT ' 地区编码 ',
`brand` string COMMENT ' 手机品牌 ',
`channel` string COMMENT ' 渠道 ',
`model` string COMMENT ' 手机型号 ',
`mid_id` string COMMENT ' 设备 id',
`os` string COMMENT ' 操作系统 ',
`user_id` string COMMENT ' 会员 id',
`version_code` string COMMENT 'app 版本号 ',
`during_time` bigint COMMENT ' 持续时间毫秒 ',
`page_item` string COMMENT ' 目标 id ',
`page_item_type` string COMMENT ' 目标类型 ',
`last_page_id` string COMMENT ' 上页类型 ',
`page_id` string COMMENT ' 页面 ID ',
`source_type` string COMMENT ' 来源类型 ',
`ts` bigint
) COMMENT ' 页面日志表 '
PARTITIONED BY (dt string)
stored as parquet
LOCATION '/warehouse/gmall/dwd/dwd_page_log'
TBLPROPERTIES('parquet.compression'='lzo');
2 )数据导入
hive (gmall)>
SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFo
rmat;
insert overwrite table dwd_page_log partition(dt='2020-06-14')
select
get_json_object (line,'$.common.ar'),
get_json_object(line,'$.common.ba'),
get_json_object(line,'$.common.ch'),
get_json_object(line,'$.common.md'),
get_json_object(line,'$.common.mid'),
get_json_object(line,'$.common.os'),
get_json_object(line,'$.common.uid'),
get_json_object(line,'$.common.vc'),
get_json_object(line,'$.page.during_time'),
get_json_object(line,'$.page.item'),
get_json_object(line,'$.page.item_type'),
get_json_object(line,'$.page.last_page_id'),
get_json_object(line,'$.page.page_id'),
get_json_object(line,'$.page.sourceType'),
get_json_object(line,'$.ts')
from ods_log
where dt='2020-06-14'
and get_json_object(line,'$.page') is not null;
3 )查看数据
hive (gmall)>
select * from dwd_page_log where dt='2020-06-14' limit 2;
2. 动作日志表
动作日志解析思路: 动作日志表中每行数据对应用户的 一个动作记录 ,一个动作记录应
当包含公共信息、页面信息以及动作信息。 先将包含 action 字段的日志过滤出来, 然后 通过
UDTF 函数 action 数组“炸开” (类似于 explode 函数的效果),然后使用 get_json_object
函数解析每个字段。
1 )建表语句
hive (gmall)>
drop table if exists dwd_action_log;
CREATE EXTERNAL TABLE dwd_action_log(
`area_code` string COMMENT ' 地区编码 ' ,
`brand` string COMMENT ' 手机品牌 ' ,
`channel` string COMMENT ' 渠道 ' ,
`model` string COMMENT ' 手机型号 ' ,
`mid_id` string COMMENT ' 设备 id' ,
`os` string COMMENT ' 操作系统 ' ,
`user_id` string COMMENT ' 会员 id' ,
`version_code` string COMMENT 'app 版本号 ' ,
`during_time` bigint COMMENT ' 持续时间毫秒 ' ,
`page_item` string COMMENT ' 目标 id ' ,
`page_item_type` string COMMENT ' 目标类型 ' ,
`last_page_id` string COMMENT ' 上页类型 ' ,
`page_id` string COMMENT ' 页面 id ' ,
`source_type` string COMMENT ' 来源类型 ' ,
`action_id` string COMMENT ' 动作 id' ,
`item` string COMMENT ' 目标 id ' ,
`item_type` string COMMENT ' 目标类型 ' ,
`ts` bigint COMMENT ' 时间 '
) COMMENT ' 动作日志表 '
PARTITIONED BY (dt string)
stored as parquet
LOCATION '/warehouse/gmall/dwd/dwd_action_log'
TBLPROPERTIES('parquet.compression'='lzo');
2)创建UDTF函数-设计思路

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据开发工程师-宋权

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值