自我介绍+介绍项目,时间大概半个多小时,主要是针对项目发问。
1、流失模型,看三月份连续7天流失,要怎么计算。
然后我说了一下我司流失的定义并非互联网那种流失,我们是拿单日离职人数/当日在职人数。
查了下留存率核心代码,大概是两表以用户关联后,count distinct去重,算间隔日期啥的就行。
,count(distinct p1.user_id) total_cnt
,count(distinct if(datediff(p2.state,p1.state) = 7, p1.user_id, null)) dif_1cnt
2、问底层数据每天是一个存量表还是增量表。
存量:系统在某一时点时的所保有的数量;
增量:则是指在某一段时间内系统中保有数量的变化。
3、数据清洗,和常用的清洗办法:
我们做的是数据仓库下游应用开发,我们不负责清洗数据。例如如果收入录入错误,多录了一个零,那之后会再来一条负数的记录做冲抵。我们所做的清洗主要是针对具体业务规则的,如做某些指标需要剔除xx
清洗这个步骤由事务性数据库-ods层的数仓同事做,我们的数据跟ods层保持一致。
4、指标表的数据粒度
时间维度(月份),组织,组织层级,指标值。不止存最小组织的数据,全网汇总数据也会存(因为计算逻辑不一样)
5、人离职调度,10天A组织,20天B组织,如何计算A B组织的成本。
成本计算会有个折算逻辑在里面,但这个逻辑不由数仓做。因为成本底层的数据不到人,而是组织的某项科目的成本为xx元,相关财务系统已经考虑到人员调动问题。
如果是人员的考勤or工时,数仓会考虑到这样一个折算逻辑。
6、表权限按组织一般作用在行维度。权限跟组织架构走,如果从A组织换到B组织,就只能看到B组织的数据。
大数据平台也会通过申请表权限来控制权限。
7、MySQL的数据量太大要怎么办?分库,分表。
8、如何保证数据时效性:配依赖,监控作业,
9、有没有考虑过数据降级策略。
为应对高并发的情况,我们会提前进行压力测试。