# 数据采集汇总
# 概述
按一定的标准(比如天)进行轻度汇总。一行信息代表一个主题对象的汇总行为
# 业务术语
| 序号 | 术语 | 描述 |
|---|---|---|
| 1 | 用户 | 用户以设备为判断标准,在移动统计中,每个独立设备认为是一个独立用户.Android 系统根据 IMEI 号,IOS 系统根据 OpenUDID 来标识一个独立用户,每部手机一个用户。 |
| 2 | 新增用户 | 首次联网使用应用的用户.如果一个用户首次打开某 APP,那这个用户定义为新增用户:卸载再安装的设备,不会被算作一次新增.新增用户包括日新增用户. 周新增用户.月新增用户 |
| 3 | 活跃用户 | 打开应用的用户即为活跃用户,不考虑用户的使用情况。每天一台设备打开多次会被计为一个活跃用户. |
| 4 | 周(月) 活跃用户 | 某个自然周(月) 内启动过应用的用户,该周(月) 内的多次启动只记一个活跃用户。 |
| 5 | 月活跃率 | 月活跃用户与截止到该月累计的用户总和之间的比例。 |
| 6 | 沉默用户 | 用户仅在安装当天(次日) 启动一次,后续时间无再启动行为。该指标可以反映新增用户质量和用户与 APP 的匹配程度。 |
| 7 | 版本分布 | 不同版本的周内各天新增用户数,活跃用户数和启动次数。利于判断 APP 各个版本之间的优劣和用户行为习惯。 |
| 8 | 本周回流用户 | 上周未启动过应用,本周启动了应用的用户。 |
| 9 | 连续 n 周活跃用户 | 连续 n 周,每周至少启动一次。 |
| 10 | 忠诚用户 | 连续活跃 5 周以上的用户尚硅谷大数据项目之电商数据仓库系统 |
| 11 | 连续活跃用户 | 连续 2 周及以上活跃的用户 |
| 12 | 近期流失用户 | 连续 n(大于 2 周小于 4 周)周没有启动应用的用户。(第 n+1 周没有启动过) |
| 13 | 留存用户 | 某段时间内的新增用户,经过一段时间后,仍然使用应用的被认作是留存用户;这部分用户占当时新增用户的比例即是留存率。 |
| 14 | 用户新鲜度 | 每天启动应用的新老用户比例,即新增用户数占活跃用户数的比例 |
| 15 | 单次使用时长 | 每次启动使用的时间长度 |
| 16 | 日使用时长 | 累计一天内的使用时间长度 |
| 17 | 启动次数计算标准 | IOS 平台应用退到后台就算一次独立的启动: Android 平台我们规定,两次启动之间的间隔小于 30 秒 |
# 数据表设
# 每日设备行为
每日设备行为,主要按照设备 id 统计。
drop table if exists dws_uv_detail_daycount;
create external table dws_uv_detail_daycount
(
`mid_id` string COMMENT '设备id',
`brand` string COMMENT ‘手机品牌',
`model` string COMMENT ‘手机型号',
`login_count` bigint COMMENT '活跃次数',
`page_stats` array<struct<page_id:string,page_count:bigint>>
COMMENT '页面访问统计'
) COMMENT '每日设备行为表'
partitioned by(dt string)
stored as parquet
location '/warehouse/gmall/dws/dws_uv_detail_daycount'
tblproperties ("parquet.compression"="lzo");
# 每日会员行为
drop table if exists dws_user_action_daycount;
create external table dws_user_action_daycount
(
user_id string comment '用户 id',
login_count bigint comment '登录次数',
cart_count bigint comment '加入购物车次数',
order_count bigint comment '下单次数',
order_amount decimal(16,2) comment '下单金额',
payment_count bigint comment '支付次数',
payment_amount decimal(16,2) comment '支付金额',
order_detail_stats
array<struct<sku_id:string,sku_num:bigint,order_count:bigint,order_amount:de
cimal(20,2)>> comment '下单明细统计'
) COMMENT '每日会员行为'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_user_action_daycount/'
tblproperties ("parquet.compression"="lzo");
drop table if exists dws_user_action_daycount;
create external table dws_user_action_daycount
(
user_id string comment '用户 id',
login_count bigint comment '登录次数',
cart_count bigint comment '加入购物车次数',
order_count bigint comment '下单次数',
order_amount decimal(16,2) comment '下单金额',
payment_count bigint comment '支付次数',
payment_amount decimal(16,2) comment '支付金额',
order_detail_stats
array<struct<sku_id:string,sku_num:bigint,order_count:bigint,
order_amount:decimal(20,2)>> comment '下单明细统计'
) COMMENT '每日会员行为'
# 每日商品行为
drop table if exists dws_sku_action_daycount;
create external table dws_sku_action_daycount
(
sku_id string comment 'sku_id',
order_count bigint comment '被下单次数',
order_num bigint comment '被下单件数',
order_amount decimal(16,2) comment '被下单金额',
payment_count bigint comment '被支付次数',
payment_num bigint comment '被支付件数',
payment_amount decimal(16,2) comment '被支付金额',
refund_count bigint comment '被退款次数',
refund_num bigint comment '被退款件数',
refund_amount decimal(16,2) comment '被退款金额',
cart_count bigint comment '被加入购物车次数'
favor_count bigint comment '被收藏次数',
appraise_good_count bigint comment '好评数',
appraise_mid_count bigint comment '中评数',
appraise_bad_count bigint comment '差评数',
appraise_default_count bigint comment '默认评价数'
) COMMENT '每日商品行为'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_sku_action_daycount/'
tblproperties ("parquet.compression"="lzo");
# 每日活动统计
建表语句
drop table if exists dws_activity_info_daycount;
create external table dws_activity_info_daycount(
`id` string COMMENT '编号',
`activity_name` string COMMENT '活动名称',
`activity_type` string COMMENT '活动类型',
`start_time` string COMMENT '开始时间',
`end_time` string COMMENT '结束时间',
`create_time` string COMMENT '创建时间',
`order_count` bigint COMMENT '下单次数',
`payment_count` bigint COMMENT '支付次数'
) COMMENT ‘每日活动统计'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_activity_info_daycount/'
tblproperties ("parquet.compression"="lzo");
建表语句
drop table if exists dws_activity_info_daycount;
create external table dws_activity_info_daycount(
`id` string COMMENT '编号',
`activity_name` string COMMENT '活动名称',
`activity_type` string COMMENT '活动类型',
`start_time` string COMMENT '开始时间',
`end_time` string COMMENT '结束时间',
`create_time` string COMMENT '创建时间',
`display_count` bigint COMMENT '曝光次数',
`order_count` bigint COMMENT '下单次数',
`order_amount` decimal(20,2) COMMENT '下单金额',
`payment_count` bigint COMMENT '支付次数',
`payment_amount` decimal(20,2) COMMENT '支付金额'
) COMMENT '每日活动统计'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_activity_info_daycount/'
tblproperties ("parquet.compression"="lzo");
# 每日地区统计
drop table if exists dws_area_stats_daycount;
create external table dws_area_stats_daycount(
`id` bigint COMMENT '编号',
`province_name` string COMMENT '省份名称',
`area_code` string COMMENT '地区编码',
`iso_code` string COMMENT 'iso 编码',
`region_id` string COMMENT '地区 ID',
`region_name` string COMMENT '地区名称',
`login_count` string COMMENT '活跃设备数',
`order_count` bigint COMMENT '下单次数',
`order_amount` decimal(20,2) COMMENT '下单金额',
`payment_count` bigint COMMENT '支付次数',
`payment_amount` decimal(20,2) COMMENT '支付金额'
) COMMENT '每日地区统计表'
PARTITIONED BY (`dt` string)
stored as parquet
location '/warehouse/gmall/dws/dws_area_stats_daycount/'
tblproperties ("parquet.compression"="lzo");
# 其它
- 略