用户画像:用户画像表

================ 用户画像表 结构图================ 

用户画像表 ADM层
    每天汇总出的用户画像表仅包含当天的数据,因此还需要和之前汇总好的用户画像表进行新的合并操作后,才算真正的最新数据的用户画像表
        用户画像宽表 ADM层 adm.itcast_adm_personas(时间分区)
        用户画像宽表 ADM层 = 用户基本属性表 GDM层 gdm.itcast_gdm_user_basic(时间分区)(第 1 张表)
                   + 客户消费模型表 GDM层 gdm.itcast_gdm_user_consume_order(时间分区)(第 7 张表 = 2 + 3 + 4 + 5 + 6)
                   + 客户喜好消费的商品分类模型表 GDM层 gdm.itcast_gdm_user_buy_category(时间分区)(第 12 张表 = 8 + 9 + 10 + 11)
                   + 用户访问模型表 GDM层 gdm.itcast_gdm_user_visit(时间分区)(第 15 张表 = 13 + 14)
用户标签表
    可根据 客户消费模型表 + 客户喜好消费的商品分类模型表 + 用户访问模型表 分析出 该人的购买喜好、购买习惯、购买实力,从而推荐相似的商品给该用户

================ 用户画像表 ================

用户画像 宽表:根据 用户基本属性表、客户消费订单表、客户购买类目表、用户访问信息表 生成 用户画像宽表
    create database if not exists adm; //ADM 层(对 GDM 层指标数据 进行指标数据的业务汇总分析):高度聚合
    create table if not exists adm.itcast_adm_personas(
    user_id string            ,--用户ID
    user_name string            ,--用户登陆名
    user_sex  string            ,--用户性别
    user_birthday string        ,--用户生日
    user_age  bigint            ,--用户年龄
    constellation string        ,--用户星座
    province string            ,--省份
    city string            ,--城市
    city_level string            ,--城市等级
    hex_mail string            ,--邮箱
    op_mail string            ,--邮箱运营商
    hex_phone string            ,--手机号
    fore_phone string            ,--手机前3位
    op_phone string            ,--手机运营商
    add_time timestamp        ,--注册时间
    login_ip string            ,--登陆ip地址
    login_source string        ,--登陆来源
    request_user string        ,--邀请人
    total_mark bigint            ,--会员积分
    used_mark bigint            ,--已使用积分
    level_name string            ,--会员等级名称
    blacklist bigint            ,--用户黑名单
    is_married bigint            ,--婚姻状况
    education string            ,--学历
    monthly_money double        ,--收入
    profession string            ,--职业
    sex_model bigint            ,--性别模型
    is_pregnant_woman bigint        ,--是否孕妇
    is_have_children bigint        ,--是否有小孩
    children_sex_rate double        ,--孩子性别概率
    children_age_rate double        ,--孩子年龄概率
    is_have_car bigint        ,--是否有车
    potential_car_user_rate double    ,--潜在汽车用户概率
    phone_brand string        ,--使用手机品牌
    phone_brand_level string        ,--使用手机品牌档次
    phone_cnt bigint            ,--使用多少种不同的手机
    change_phone_rate bigint        ,--更换手机频率
    majia_flag string            ,--马甲标志
    majie_account_cnt bigint        ,--马甲账号数量
    loyal_model bigint        ,--用户忠诚度
    shopping_type_model bigint        ,--用户购物类型
    figure_model bigint        ,--身材
    stature_model bigint        ,--身高
    first_order_time timestamp,    --第一次消费时间
    last_order_time timestamp,        --最近一次消费时间
    first_order_ago bigint,        --首单距今时间
    last_order_ago bigint,        --尾单距今时间
    month1_hg_order_cnt bigint,        --近30天购买次数(不含退拒)
    month1_hg_order_amt double,        --近30天购买金额(不含退拒)
    month2_hg_order_cnt bigint,        --近60天购买次数(不含退拒)
    month2_hg_order_amt double,        --近60天购买金额(不含退拒)
    month3_hg_order_cnt bigint,        --近90天购买次数(不含退拒)
    month3_hg_order_amt double,        --近90天购买金额(不含退拒)
    month1_order_cnt bigint,            --近30天购买次数(含退拒)
    month1_order_amt double,            --近30天购买金额(含退拒)
    month2_order_cnt bigint,            --近60天购买次数(含退拒)
    month2_order_amt double,            --近60天购买金额(含退拒)
    month3_order_cnt bigint,            --近90天购买次数(含退拒)
    month3_order_amt double,            --近90天购买金额(含退拒)
    max_order_amt double,            --最大消费金额
    min_order_amt double,            --最小消费金额
    total_order_cnt bigint,            --累计消费次数(不含退拒)
    total_order_amt double,            --累计消费金额(不含退拒)
    user_avg_amt double,            --客单价(含退拒)(每一个顾客平均购买商品的金额,客单价也即是平均交易金额)
    month3_user_avg_amt double,        --近90天的客单价
    common_address string,            --常用收货地址
    common_paytype string,            --常用支付方式
    month1_cart_cnt bigint,            --近30天购物车的次数
    month1_cart_goods_cnt bigint,        --近30天购物车商品件数
    month1_cart_submit_cnt bigint,        --近30天购物车提交商品件数
    month1_cart_rate double,            --近30天购物车成功率
    month1_cart_cancle_cnt double,        --近30天购物车放弃件数
    return_cnt bigint,            --退货商品数量
    return_amt double,            --退货商品金额
    reject_cnt bigint,            --拒收商品数量
    reject_amt double,            --拒收商品金额
    last_return_time timestamp,        --最近一次退货时间
    school_order_cnt bigint,            --学校下单总数
    company_order_cnt bigint,            --单位下单总数
    home_order_cnt bigint,            --家里下单总数
    forenoon_order_cnt bigint,            --上午下单总数
    afternoon_order_cnt bigint,        --下午下单总数
    night_order_cnt bigint,            --晚上下单总数
    morning_order_cnt bigint,            --凌晨下单总数
    first_category_id BIGINT,       --一级分类ID
    first_category_name STRING,     --一级分类名称
    second_category_id BIGINT,      --二分类ID
    second_catery_name STRING,      --二级分类名称
    third_category_id BIGINT,       --三级分类ID
    third_category_name STRING,     --三级分类名称
    month1_category_cnt BIGINT,     --近30天购物类目次数
    month1_category_amt STRING,     --近30天购物类目金额
    month3_category_cnt BIGINT,     --近90天购物类目次数
    month3_category_amt STRING,     --近90天购物类目金额
    month6_category_cnt BIGINT,     --近180天购物类目次数
    month6_category_amt STRING,     --近180天购物类目金额
    total_category_cnt BIGINT,      --累计购物类目次数
    total_category_amt STRING,      --累计购物类目金额
    month1_cart_category_cnt BIGINT,--近30天购物车类目次数
    month3_cart_category_cnt BIGINT,--近90天购物车类目次数
    month6_cart_category_cnt BIGINT,--近180天购物车类目次数
    total_cart_category_cnt BIGINT, --累计购物车类目次数
    last_category_time TIMESTAMP,           --近90天之内最后一次购买类目时间
    last_category_ago BIGINT,               --近90天之内最后一次购买类目距今天数
    latest_pc_visit_date string,            --近90天之内最近一次PC端访问日期
    latest_app_visit_date string,           --近90天之内最近一次APP端访问日期
    latest_pc_visit_session string,         --近90天之内最近一次PC端访问的session
    latest_pc_cookies string,               --近90天之内最近一次PC端访问的cookies
    latest_pc_pv string,                    --近90天之内最近一次PC端访问的PV
    latest_pc_browser_name string,          --近90天之内最近一次PC端访问使用的游览器
    latest_pc_visit_os string,              --近90天之内最近一次PC端访问使用的操作系统
    latest_app_name string,                 --近90天之内最近一次APP端访问app名称
    latest_app_visit_os string,             --近90天之内最近一次APP端访问使用的操作系统
    latest_visit_ip string,                 --近90天之内最近一次访问IP(不分APP与PC)
    latest_city string,                     --近90天之内最近一次访问城市(不分APP与PC)
    latest_province string,                 --近90天之内最近一次访问省份(不分APP与PC)
    first_pc_visit_date string,             --近90天之内第一次PC端访问日期
    first_app_visit_date string,            --近90天之内第一次APP端访问日期
    first_pc_visit_session string,          --近90天之内第一次PC端访问的session
    first_pc_cookies string,                --近90天之内第一次PC端访问的cookies
    first_pc_pv string,                     --近90天之内第一次PC端访问的PV
    first_pc_browser_name string,           --近90天之内第一次PC端访问使用的游览器
    first_pc_visit_os string,               --近90天之内第一次PC端访问使用的操作系统
    first_app_name string,                  --近90天之内第一次APP端访问app名称
    first_app_visit_os string,              --近90天之内第一次APP端访问使用的操作系统
    first_visit_ip string,                  --近90天之内第一次访问IP(不分APP与PC)
    first_city string,                      --近90天之内第一次访问城市(不分APP与PC)
    first_province string,                  --近90天之内第一次访问省份(不分APP与PC)
    day7_app_cnt bigint,                    --近7天APP端访问次数
    day15_app_cnt bigint,                   --近15天APP端访问次数
    month1_app_cnt bigint,                  --近30天APP端访问次数
    month2_app_cnt bigint,                  --近60天APP端访问次数
    month3_app_cnt bigint,                  --近90天APP端访问次数    
    day7_pc_cnt bigint,                     --近7天PC端访问次数
    day15_pc_cnt bigint,                    --近15天PC端访问次数
    month1_pc_cnt bigint,                   --近30天PC端访问次数
    month2_pc_cnt bigint,                   --近60天PC端访问次数
    month3_pc_cnt bigint,                   --近90天PC端访问次数
    month1_pc_days bigint,                  --近30天PC端访问天数
    month1_pc_pv bigint,                    --近30天PC端访问PV
    month1_pc_avg_pv bigint,                --近30天PC端访问平均PV
    month1_pc_diff_ip_cnt bigint,           --近30天PC端访问不同ip数
    month1_pc_diff_cookie_cnt bigint,       --近30天PC端访问不同的cookie数
    month1_pc_common_ip string,             --近30天PC端访问最常用ip
    month1_pc_common_cookie string,         --近30天PC端访问最常用的cookie
    month1_pc_common_browser_name string,   --近30天PC端访问最常用游览器
    month1_pc_common_os string,             --近30天PC端访问最常用的操作系统
    month1_hour025_cnt bigint,              --近30天PC端0-5点访问次数
    month1_hour627_cnt bigint,              --近30天PC端6-7点访问次数
    month1_hour829_cnt bigint,              --近30天PC端8-9点访问次数
    month1_hour10212_cnt bigint,            --近30天PC端10-12点访问次数
    month1_hour13214_cnt bigint,            --近30天PC端13-14点访问次数
    month1_hour15217_cnt bigint,            --近30天PC端15-17点访问次数
    month1_hour18219_cnt bigint,            --近30天PC端18-19点访问次数
    month1_hour20221_cnt bigint,            --近30天PC端20-21点访问次数
    month1_hour22223_cnt bigint             --近30天PC端22-23点访问次数
    );  //第二版本:partitioned by (dt string);
 
 
 
    -----加载数据:根据 用户基本属性表、客户消费订单表、客户购买类目表、用户访问信息表 生成 用户画像宽表
    insert overwrite table adm.itcast_adm_personas //第二版本:insert overwrite table adm.itcast_adm_personas partition(dt=${partdt})
    select  
    a.user_id,
    a.user_name,
    a.user_sex,
    a.user_birthday,
    a.user_age,
    a.constellation,
    a.province,
    a.city,
    a.city_level,
    a.hex_mail,
    a.op_mail,
    a.hex_phone,
    a.fore_phone,
    a.op_phone,
    a.add_time,
    a.login_ip,
    a.login_source,
    a.request_user,
    a.total_mark,
    a.used_mark,
    a.level_name,
    a.blacklist,
    a.is_married,
    a.education,
    a.monthly_money,
    a.profession, 
    a.sex_model,
    a.is_pregnant_woman,
    a.is_have_children,
    a.children_sex_rate,
    a.children_age_rate,
    a.is_have_car,
    a.potential_car_user_rate,
    a.phone_brand,
    a.phone_brand_level,
    a.phone_cnt,
    a.change_phone_rate,
    a.majia_flag,
    a.majie_account_cnt,
    a.loyal_model,
    a.shopping_type_model,
    a.figure_model,
    a.stature_model,
    b.first_order_time,     
    b.last_order_time,     
    b.first_order_ago,     
    b.last_order_ago,     
    b.month1_hg_order_cnt,
    b.month1_hg_order_amt,
    b.month2_hg_order_cnt,
    b.month2_hg_order_amt,
    b.month3_hg_order_cnt,
    b.month3_hg_order_amt,
    b.month1_order_cnt,   
    b.month1_order_amt,   
    b.month2_order_cnt,   
    b.month2_order_amt,   
    b.month3_order_cnt,   
    b.month3_order_amt,   
    b.max_order_amt,      
    b.min_order_amt,      
    b.total_order_cnt,    
    b.total_order_amt,    
    b.user_avg_amt,       
    b.month3_user_avg_amt,    
    b.common_address,         
    b.common_paytype,         
    b.month1_cart_cnt,        
    b.month1_cart_goods_cnt,  
    b.month1_cart_submit_cnt, 
    b.month1_cart_rate, 
    b.month1_cart_cancle_cnt,
    b.return_cnt,             
    b.return_amt,             
    b.reject_cnt,             
    b.reject_amt,             
    b.last_return_time,       
    b.school_order_cnt,       
    b.company_order_cnt,      
    b.home_order_cnt,         
    b.forenoon_order_cnt,     
    b.afternoon_order_cnt,    
    b.night_order_cnt,        
    b.morning_order_cnt,      
    c.first_category_id,
    c.first_category_name,
    c.second_category_id,
    c.second_catery_name,
    c.third_category_id,
    c.third_category_name,
    c.month1_category_cnt,
    c.month1_category_amt,
    c.month3_category_cnt,
    c.month3_category_amt,
    c.month6_category_cnt,
    c.month6_category_amt,
    c.total_category_cnt,
    c.total_category_amt,
    c.month1_category_cnt,
    c.month3_category_cnt,
    c.month6_category_cnt,
    c.total_category_cnt,
    c.last_category_time,
    c.last_category_ago,
    d.latest_pc_visit_date,         
    d.latest_app_visit_date,        
    d.latest_pc_visit_session,      
    d.latest_pc_cookies,            
    d.latest_pc_pv,                 
    d.latest_pc_browser_name,       
    d.latest_pc_visit_os,           
    d.latest_app_name,              
    d.latest_app_visit_os,          
    d.latest_visit_ip,              
    d.latest_city,                  
    d.latest_province,              
    d.first_pc_visit_date,          
    d.first_app_visit_date,         
    d.first_pc_visit_session,       
    d.first_pc_cookies,             
    d.first_pc_pv,                  
    d.first_pc_browser_name,        
    d.first_pc_visit_os,            
    d.first_app_name,               
    d.first_app_visit_os,           
    d.first_visit_ip,               
    d.first_city,                   
    d.first_province,               
    d.day7_app_cnt,                 
    d.day15_app_cnt,                
    d.month1_app_cnt,               
    d.month2_app_cnt,               
    d.month3_app_cnt,               
    d.day7_pc_cnt,                  
    d.day15_pc_cnt,                 
    d.month1_pc_cnt,                
    d.month2_pc_cnt,                
    d.month3_pc_cnt,                
    d.month1_pc_days,               
    d.month1_pc_pv,                 
    d.month1_pc_avg_pv,             
    d.month1_pc_diff_ip_cnt,        
    d.month1_pc_diff_cookie_cnt,    
    d.month1_pc_common_ip,          
    d.month1_pc_common_cookie,      
    d.month1_pc_common_browser_name,
    d.month1_pc_common_os,          
    d.month1_hour025_cnt,           
    d.month1_hour627_cnt,           
    d.month1_hour829_cnt,           
    d.month1_hour10212_cnt,         
    d.month1_hour13214_cnt,         
    d.month1_hour15217_cnt,         
    d.month1_hour18219_cnt,         
    d.month1_hour20221_cnt,         
    d.month1_hour22223_cnt          
    from gdm.itcast_gdm_user_basic a //用户基本属性表
    left join gdm.itcast_gdm_user_consume_order b on a.user_id=b.user_id //客户消费订单表
    left join gdm.itcast_gdm_user_buy_category c on a.user_id=c.user_id //客户购买类目表
    left join gdm.itcast_gdm_user_visit d on a.user_id=d.user_id; //用户访问信息表
第二版本:
     from gdm.itcast_gdm_user_basic a where dt=${partdt}
    left join gdm.itcast_gdm_user_consume_order b where dt=${partdt} on a.user_id=b.user_id 
    left join gdm.itcast_gdm_user_buy_category c where dt=${partdt} on a.user_id=c.user_id 
    left join gdm.itcast_gdm_user_visit d where dt=${partdt} on a.user_id=d.user_id;

================== 每天的 用户画像表 进行汇总 ==================

beeline -u jdbc:hive2://node1:10000 -n root
 
1.每天用户画像表:
    adm.itcast_adm_personas_日期时间 即为 adm.itcast_adm_personas_${partdt}




用户画像 用户画像表_あずにゃん的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/130491714