本帖最后由 BGnv5 于 2020-10-29 22:12 编辑
问题导读:
1、ODS层采用什么压缩方式和存储格式?
2、分析过哪些指标?
3、测试之后如何上线?
上一篇:大数据技术之高频面试题(十):项目中遇到的问题及项目经验
9.2 业务经验
9.2.1 ODS层采用什么压缩方式和存储格式?
压缩采用Snappy,存储采用orc,压缩比是100g数据压缩完10g左右。
9.2.2 DWD层做了哪些事?
1)数据清洗
(1)空值去除
(2)过滤核心字段无意义的数据,比如订单表中订单id为null,支付表中支付id为空
(3)对手机号、身份证号等敏感数据脱敏
(4)对业务数据传过来的表进行维度退化和降维。
(5)将用户行为宽表和业务表进行数据一致性处理
- select case when a is null then b else a end as JZR,
- ...
- from A
复制代码
2)清洗的手段
Sql、mr、rdd、kettle、Python(项目中采用sql进行清除)
3)清洗掉多少数据算合理
1万条数据清洗掉1条。
9.2.3 DWS层做了哪些事?
1)DWS层有3-5张宽表(处理100-200个指标 70%以上的需求)
具体宽表名称:用户行为宽表,用户购买商品明细行为宽表,商品宽表,购物车宽表,物流宽表、登录注册、售后等。
2)哪个宽表最宽?大概有多少个字段?
最宽的是用户行为宽表。大概有60-100个字段
3)具体用户行为宽表字段名称
评论、打赏、收藏、关注--商品、关注--人、点赞、分享、好价爆料、文章发布、活跃、签到、补签卡、幸运屋、礼品、金币、电商点击、gmv
- CREATE TABLE `app_usr_interact`(
- `stat_dt` date COMMENT '互动日期',
- `user_id` string COMMENT '用户id',
- `nickname` string COMMENT '用户昵称',
- `register_date` string COMMENT '注册日期',
- `register_from` string COMMENT '注册来源',
- `remark` string COMMENT '细分渠道',
- `province` string COMMENT '注册省份',
- `pl_cnt` bigint COMMENT '评论次数',
- `ds_cnt` bigint COMMENT '打赏次数',
- `sc_add` bigint COMMENT '添加收藏',
- `sc_cancel` bigint COMMENT '取消收藏',
- `gzg_add` bigint COMMENT '关注商品',
- `gzg_cancel` bigint COMMENT '取消关注商品',
- `gzp_add` bigint COMMENT '关注人',
- `gzp_cancel` bigint COMMENT '取消关注人',
- `buzhi_cnt` bigint COMMENT '点不值次数',
- `zhi_cnt` bigint COMMENT '点值次数',
- `zan_cnt` bigint COMMENT '点赞次数',
- `share_cnts` bigint COMMENT '分享次数',
- `bl_cnt` bigint COMMENT '爆料数',
- `fb_cnt` bigint COMMENT '好价发布数',
- `online_cnt` bigint COMMENT '活跃次数',
- `checkin_cnt` bigint COMMENT '签到次数',
- `fix_checkin` bigint COMMENT '补签次数',
- `house_point` bigint COMMENT '幸运屋金币抽奖次数',
- `house_gold` bigint COMMENT '幸运屋积分抽奖次数',
- `pack_cnt` bigint COMMENT '礼品兑换次数',
- `gold_add` bigint COMMENT '获取金币',
- `gold_cancel` bigint COMMENT '支出金币',
- `surplus_gold` bigint COMMENT '剩余金币',
- `event` bigint COMMENT '电商点击次数',
- `gmv_amount` bigint COMMENT 'gmv',
- `gmv_sales` bigint COMMENT '订单数')
- PARTITIONED BY ( `dt` string)
复制代码
5)商品详情 ----- 购物车 ----- 订单 ------ 付款的转换比率
5% 30% 70%
6)每天的GMV是多少,哪个商品卖的最好?每天下单量多少?
(1)100万的日活每天大概有10万人购买,平均每人消费100元,一天的GMV在1000万
(2)面膜,每天销售5000个
(3)每天下单量在10万左右
9.2.4 分析过哪些指标(一分钟至少说出30个指标)
1 离线指标:
网站流量指标:独立访问数UV 页面访客数PV
流量质量指标类:跳出率 平均页面访问时长 人均页面访问数
2 购物车类指标:
加入购物车次数 加入购物车买家次数 加入购物车商品数 购物车支付转化率
3 下单类指标:
下单笔数 下单金额 下单买家数 浏览下单转化率
4 支付类指标:
支付金额 支付买家数 支付商品数 浏览-支付买家转化率 下单-支付金额转化率 下单-支付买家数转换率
5 交易类指标:
交易成功订单数 交易成功金额 交易成功买家数 交易成功商品数
交易失败订单数 交易失败订单金额 交易失败买家数
交易失败商品数 退款总订单量 退款金额 退款率
6 市场营销活动指标:
新增访问人数 新增注册人数 广告投资回报率 UV订单转化率
7 风控类指标:
买家评价数 买家上传图片数 买家评价率 买家好评率 买家差评率 物流平均配送时间
8 投诉类指标:
发起投诉数 投诉率 撤销投诉(申诉数)
9 商品类指标:
产品总数 SKU数 SPU数 上架商品SKU数 上架商品SPU数 上架商品数
日活跃用户,
月活跃用户,
各区域Top10商品统计,
季度商品品类点击率top10,
用户留存,
月APP的用户增长人数,
广告区域点击数top3,
活跃用户每天在线时长,
投诉人数占比,
沉默用户占比,
用户的新鲜度,
商品上架的sku数,
同种品类的交易额排名,
统计买家的评价率,
用户浏览时长,
统计下单的数量,
统计支付的数量,
统计退货的数量,
用户的(日活、月活、周活),
统计流失人数
日活,周活,月活,沉默用户占比,增长人数,活跃用户占比,在线时长统计,歌曲访问数,歌曲访问时长,各地区Top10歌曲统计 ,投诉人数占比,投诉回应时长,留存率,月留存率,转化率,GMV,复购vip率,vip人数,歌榜,挽回率,粉丝榜,打赏次数,打赏金额,发布歌曲榜单,歌曲热度榜单,歌手榜单,用户年龄组,vip年龄组占比,收藏数榜单,评论数
1.用户活跃数统计(日活,月活,周活)
2.某段时间的新增用户/活跃用户数
3.页面单跳转化率统计
4.活跃人数占比(占总用户比例)
5.在线时长统计(活跃用户每天在线时长)
6.订单产生效率(下单的次数与访问次数比)
7.页面访问时长(单个页面访问时长)
8.统计本季度付款订单
9.统计某广告的区城点击数top3
10.统计本月用户的流失人数
11.统计本月流失人数占用户人数的比例
12.统计本月的人均在线时长
13.统计本月APP的用户增长人数
14.统计本月的沉默用户
15.统计某时段的登录人数
16.统计本日用户登录的次数平均值
17.统计用户在某类型商品中的浏览深度(页面转跳率)
18.统计用户从下单开始到交易成功的平均时长
19.Top10热门商品的统计
20.统计下单的数量
21.统计支付的数量
22.统计退货的数量
23.统计动销率(有销量的商品/在线销售的宝贝)
24.统计支付转化率
25.统计用户的消费频率
26.统计商品上架的SKU数
27.统计同种品类的交易额排名
28.统计按下单退款排序的top10的商品
29.统计本APP的投诉人数占用户人数的比例
30.用户收藏商品
9.2.5 分析过最难的两个指标,现场手写
9.2.6 数据仓库每天跑多少张表,大概什么时候运行,运行多久?
基本一个项目建一个库,表格个数为初始的原始数据表格加上统计结果表格的总数。(一般70-100张表格)
每天0:30开始运行。
所有离线数据报表控制在8小时之内
大数据实时处理部分控制在5分钟之内。
9.2.7 数仓中使用的哪种文件存储格式
常用的包括:textFile,rcFile,ORC,Parquet,一般企业里使用ORC或者Parquet,因为是列式存储,且压缩比非常高,所以相比于textFile,查询速度快,占用硬盘空间少
9.2.8 数仓中用到过哪些Shell脚本及具体功能
1)集群启动停止脚本(Hadoop、Flume、Kafka、Zookeeper)
2)Sqoop和数仓之间的导入导出脚本
3)数仓层级之间的数据导入脚本。
9.2.9 项目中用过的报表工具
Echarts、kibana
9.2.10 测试相关
1)公司有多少台测试服务器?
测试服务器一般三台
2)测试数据哪来的?
一部分自己写Java程序自己造,一部分从生产环境上取一部分。
3)如何保证写的sql正确性
需要造一些特定的测试数据,测试。
离线数据和实时数据分析的结果比较。
4)测试环境什么样?
测试环境的配置是生产的一半
5)测试之后如何上线?
上线的时候,将脚本打包,提交git。先发邮件抄送经理和总监,运维。通过之后跟运维一起上线。
9.2.11 项目实际工作流程
1)先与产品讨论,看报表的各个数据从哪些埋点中取
2)将取得逻辑过程设计好,与产品确定后开始开发
3)开发出报表SQL脚本,并且跑几天的历史数据,观察结果
4)将报表放入调度任务中,第二天给产品看结果。
5)周期性将表结果导出或是导入后台数据库,生成可视化报表
9.2.12 项目中实现一个需求大概多长时间
刚入职第一个需求大概需要7天左右。
对业务熟悉后,平均一天一个需求。
影响时间的因素:开会讨论需求、表的权限申请、测试等
9.2.13 项目在3年内迭代次数,每一个项目具体是如何迭代的。
差不多一个月会迭代一次。就产品或我们提出优化需求,然后评估时间。每周我们都会开会做下周计划和本周总结。
有时候也会去预研一些新技术。
9.2.14 项目开发中每天做什么事
新需求比如埋点或是报表来了之后,需要设计做的方案,设计完成之后跟产品讨论,再开发。
数仓的任何步骤出现问题,需要查看问题,比如日活,月活下降等。
获取更多资源:
领取100本书+1T资源
http://www.aboutyun.com/forum.php?mod=viewthread&tid=26480
大数据5个项目视频
http://www.aboutyun.com/forum.php?mod=viewthread&tid=25235
名企资源、名企面试题、最新BAT面试题、专题面试题等资源汇总
https://www.aboutyun.com/forum.php?mod=viewthread&tid=27732
名企资源、名企面试题、最新BAT面试题、专题面试题等资源汇总
https://www.aboutyun.com/forum.php?mod=viewthread&tid=27732
|