用户画像分析-11

简介: 用户画像分析-11


INSERT OVERWRITE TABLE ods_log_info_d PARTITION (dt=${bdp.system.bizdate})
SELECT ip
  , uid
  , time
  , status
  , bytes 
  , getregion(ip) AS region --使用自定义UDF通过IP得到地域。
  , regexp_substr(request, '(^[^ ]+ )') AS method --通过正则把request差分为3个字段。
  , regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url
  , regexp_substr(request, '([^ ]+$)') AS protocol 
  , regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer --通过正则清晰refer,得到更精准的URL。
  , CASE
    WHEN TOLOWER(agent) RLIKE 'android' THEN 'android' --通过agent得到终端信息和访问形式。
    WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'
    WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'
    WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'
    WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'
    WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'
    ELSE 'unknown'
  END AS device
  , CASE
    WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
    WHEN TOLOWER(agent) RLIKE 'feed'
    OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'
    WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
    AND agent RLIKE '^[Mozilla|Opera]'
    AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'
    ELSE 'unknown'
  END AS identity
  FROM (
    SELECT SPLIT(col, '##@@')[0] AS ip
    , SPLIT(col, '##@@')[1] AS uid
    , SPLIT(col, '##@@')[2] AS time
    , SPLIT(col, '##@@')[3] AS request
    , SPLIT(col, '##@@')[4] AS status
    , SPLIT(col, '##@@')[5] AS bytes
    , SPLIT(col, '##@@')[6] AS referer
    , SPLIT(col, '##@@')[7] AS agent
  FROM ods_raw_log_d
  WHERE dt = ${bdp.system.bizdate}
) a;

3)在数据开发页面,选择业务流程>您的业务流程>MaxCompute>数据开发,双击dw_user_info_all_d。

4)在dw_user_info_all_d节点编辑页面,输入如下SQL语句,单击 图标。


INSERT OVERWRITE TABLE dw_user_info_all_d PARTITION (dt='${bdp.system.bizdate}')
SELECT COALESCE(a.uid, b.uid) AS uid
  , b.gender
  , b.age_range
  , b.zodiac
  , a.region
  , a.device
  , a.identity
  , a.method
  , a.url
  , a.referer
  , a.time
FROM (
  SELECT *
  FROM ods_log_info_d
  WHERE dt = ${bdp.system.bizdate}
) a
LEFT OUTER JOIN (
  SELECT *
  FROM ods_user_info_d
  WHERE dt = ${bdp.system.bizdate}
) b
ON a.uid = b.uid;

5)在数据开发页面,选择业务流程>您的业务流程>MaxCompute>数据开发,双击rpt_user_info_d。

6)在rpt_user_info_d节点编辑页面,输入如下SQL语句,单击 图标。


INSERT OVERWRITE TABLE rpt_user_info_d PARTITION (dt='${bdp.system.bizdate}')
SELECT uid
  , MAX(region)
  , MAX(device)
  , COUNT(0) AS pv
  , MAX(gender)
  , MAX(age_range)
  , MAX(zodiac)
FROM dw_user_info_all_d
WHERE dt = ${bdp.system.bizdate}
GROUP BY uid;

目录
相关文章
|
分布式计算 数据可视化 搜索推荐
用户画像分析-21
用户画像分析-21
214 0
用户画像分析-21
|
分布式计算 数据可视化 搜索推荐
用户画像分析-22
用户画像分析-22
162 0
用户画像分析-22
|
监控 搜索推荐
用户画像分析-20
用户画像分析-20
122 0
|
监控 搜索推荐
用户画像分析-19
用户画像分析-19
114 0
|
监控 搜索推荐
用户画像分析-18
用户画像分析-18
111 0
|
数据采集 监控 搜索推荐
用户画像分析-17
用户画像分析-17
116 0
|
SQL 分布式计算 搜索推荐
用户画像分析-13
用户画像分析-13
131 0
用户画像分析-13
|
运维 分布式计算 搜索推荐
用户画像分析-15
用户画像分析-15
136 0
用户画像分析-15
|
数据采集 监控 搜索推荐
用户画像分析-16
用户画像分析-16
106 0
|
SQL 分布式计算 搜索推荐
用户画像分析-14
用户画像分析-14
123 0
用户画像分析-14