zoukankan      html  css  js  c++  java
  • 数据仓库 沉默用户数

    沉默用户:用户仅在安装当天(次日)启动一次,后续时间无再启动行为。该指标可以反映新增用户质量和用户与APP的匹配程度。

    需求:求只在安装当天启动过,且启动时间在一周前的沉默用户数。

    数据来源:用户日活表(每日活跃设备表)

    建表语句:

    drop table if exists ads_slient_count;
    create external table ads_slient_count( 
        `dt` string COMMENT '统计日期',
        `slient_count` bigint COMMENT '沉默设备数'
    ) 
    row format delimited fields terminated by '	'
    location '/warehouse/gmall/ads/ads_slient_count';

    数据导入脚本:

    ①where dt<='$do_date' 提前过滤数据掉一部分数据,非必要

    ②having count(*)=1 表示只启动过一次

    ③min(dt)<=date_add('$do_date',-7) 表示启动时间在一周前。因为前面过滤出了启动次数为1的记录,所以dt只剩下一条数据,这里用min还是max并无区别,只是为了合于hive语法,必须用聚合。

    #!/bin/bash
    
    hive=/opt/module/hive/bin/hive
    APP=gmall
    
    if [ -n "$1" ];then
        do_date=$1
    else
        do_date=`date -d "-1 day" +%F`
    fi
    
    echo "-----------导入日期$do_date-----------"
    
    sql="
    insert into table "$APP".ads_slient_count
    select 
        '$do_date' dt,
        count(*) slient_count
    from 
    (
        select 
            mid_id
        from "$APP".dws_uv_detail_day
        where dt<='$do_date'
        group by mid_id
        having count(*)=1 and min(dt)<=date_add('$do_date',-7)
    )t1;"
    
    $hive -e "$sql"
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood(度序列构图)
    poj1236
    poj1236
    有向图求强连通分量
    有向图求强连通分量
    zoj 2532(Internship )找割边
    zoj 2532(Internship )找割边
    Expedition POJ
    2016年第七届蓝桥杯C/C++ B组国赛 —— 第四题:机器人塔
    2016年第七届蓝桥杯C/C++ B组国赛 —— 第四题:机器人塔
  • 原文地址:https://www.cnblogs.com/noyouth/p/13207612.html
Copyright © 2011-2022 走看看