莉莉丝 | ETL开发日常一面凉经
整体面了50min,面试官很温柔
可惜我太菜了,昨天下午面,今天早上秒挂
感觉莉莉丝这个岗偏数仓底层的一些数据开发,或者说是数据模型的设计
- 自我介绍
- 拷打项目(摆了一段时间突然收到面试,没怎么准备被狠狠拷打了)
- 讲一讲维度建模整体过程,如何设计(我答了个数仓分层,被蠢哭了,后面被提醒说了说星型模型)
- 维度建模理论这里的冗余是指什么,如果维度变了怎么办(缓慢变化维)
- 说说做了哪些指标,做了哪些标签
- DQC里面具体校验了什么东西
- 如何保证数据质量的规范
- 30min之后说来做两道sql吧(口述完第一道,做完就没时间了,场景很有意思不愧为游戏公司)
- sql题:现在有一辆小车在二维平面上,然后每一秒上报一次它的坐标(x, y),表的结构类似(time, x, y),然后这样一分钟下来的话,它就会上报60个坐标,因为小车的行驶方向是任意的,所以它可能是一个折线图,求他连续行驶的最大直线距离(不用考虑一些特殊情况,说说大概思路)
- 先lag或lead开窗,求相邻两行的斜率k:(y2-y1)/(x2-x1)
- 再group by k,对相同k的这几行数据参考连续登录思路
- row_number()再开窗,算出最大直线距离
- 面试官的另一种解法:考虑转弯的这个关键点就好了。只要你斜率不一样的话,你就相当于如果你下一条,你每个数据比一下,如果斜率相同的赋0,如果斜率不同的赋1,然后只要你每变一次,那个标记就是1。然后你用一个累计求和的开窗函数,你把前面的这个标记加起来就可以了
- 反问