领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

画像笔记7- 非实时标签-统计标签-最近来访标签

nixiaole 2024-11-12 13:46:33 知识剖析 21 ℃

最近来访标签案例:

1.最近一次来访距今天天数:

最近一次来访距今天数从用户的访问日志表(ods.page_view_log)中抽取,脚本执行如下



从日志访问表中抽取,这样会产生一张表:user_cookie_relation 用户cookie关系表

基于cookie id 和 最近访问的日期进行排序每个cookie id 只拿取它最近一次访问的时间

怎么样操作的?每个cookie id 只收取他最近一次访问的时间。

解释:row_number() over (paritition by cookie_id order by last_visit_time desc)

基于cookie_id 做分区,在分区中,根据最近访问时间做降序排序

解释:row_number() over (paritition by cookie_id order by last_visit_time desc)

基于cookie_id 做分区,在分区中,根据最近访问时间做降序排序


将上一步注册到视图的数据插入cookie 的用户标签表中,执行如下脚本:



ACTION_C_02_001 : 最近天数 (labelid)

userid :用户的cookie id

labelweight: 距今的天数

labelid: ACTION_C_02_1

插入表 dw.userprofile_action_all (行为属性维度表,按照分区插入-- 分区基于 日期,距今天数(labelid = action_c_02_001) 进行分区)

源表:

从 user_cookie_relation :上一步产生的表

选择列信息:

  1. labelid(Action_c_02_001):标签
  2. cookieid: cookieid 信息
  3. labelweight:该cookie距今访问最近的天数

datediff(to_date("data_date"),concat(substr(last_date,1,4),'-',substr(last_date,5,2),'-',substr(last_date,7,2))) as labelweight

1.日期比较函数: datediff

语法: datediff(string enddate,string startdate)

返回值: int

说明: 返回结束日期减去开始日期的天数。

举例:

hive> select datediff(‘2019-07-02’,‘2019-07-01’);

结果:

1

2. to_date:日期时间转日期函数

select to_date('2015-04-02 13:34:12');

输出:2015-04-02

3. concat() 的内容:

语法: CONCAT(string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,支持任意个输入字符串

举例:

Hive> select concat(‘abc’,'def’,'gh’) from lxw_dual;

abcdefgh


4. 检查日期函数

语法: substr(string A, int start, int len),substring(string A, intstart, int len),用法一样,三个参数

返回值: string

说明:返回字符串A从start位置开始,长度为len的字符串

最近发表
标签列表