数据研发 - 一面凉经 - 快手(主站)

招聘要求:

投递时间:

2023.12.24 牛客线上寒假实习双选会

2023.12.25 下午约面

2023.12.26 下午正式面试

A. 面试方式:轻雀面试(快手旗下面试工具)

B. 一面流程:

面试官全程开启摄像头,介绍面试流程,分为四部分,自我介绍,SQL题目,知识点问答,反问环节

面试开始:

自我介绍:

基本上将提前拟好的模板内容完整表述,表达不够流畅,多处停顿,结结巴巴

目前,在校内,我担任大数据与人工智能创新平台的数据团队负责人,从大一开始,接触到一些大数据方面的基础知识,同时在各类创新创业竞赛中完成数据可视化部分的工作。今年暑期,我在北京天源迪科信息技术有限公司商品销售部下属的智慧化服务中心,担任商品数据运营实习生,主要工作是制作动态看板和数据分析。最近,是在牛客网组织的线上双选会中,看到有这个数据研发的岗位比较匹配,而且快手作为目前流行的短视频和直播APP,有数亿的用户和庞大的数据量,我希望能够进入团队,为快手探索更多的数据价值。

拷打实习:(完全捏造,一眼露馅)

  1. 在实习过程中输出的策略会输出到线上么?
  2. 你的产出是什么? (纠结的点在于制作的数据看板以及策略没有实际作用于线上或产生实际作用)
  3. 如何评估策略是否有效?如何衡量?如何判断能够帮助业务?有怎样的助力?

回答:遇到过数据来源的问题,进而改变筛选条件

(面试官总结为:上游数据来源加工质量问题)

  1. 那这个看板你更多的是应用于应用层还是配置层,有接触过底层么?从数据采集到数据加工到数据应用这整个的数仓分层的建设,有么?

回答:没有,当时实习的时候没有

之后做项目时,是有了解过

  1. 那介绍一下你对数据分层的理解和数据分层的作用

我,结合项目谈一下吧,简单说了说作用,会提升计算效率,逐层筛选,完成数据清洗

分层理解:面试前搜了搜,分五层,基本完整表述

附:Al回答

数据分层是数据仓库设计中一个非常重要的环节,它能够使整个数据体系更容易被理解和使用。在理论上,我们可以把数据仓库分为三个层:数据运营层、数据仓库层和数据产品层。

  • 数据运营层(ODS):这一层是接近数据源中数据的一层,数据源中的数据经过抽取、清洗、传输后装入本层。这一层面的数据大多是按照源头业务系统的分类方式而分类的。在源数据装入这一层时,会进行去噪、去重、字段命名规范等一系列操作。
  • 数据仓库层:这一层存放我们要重点设计的数据仓库中间层数据,也称为细节层。DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗后的数据。

数据分层的作用主要体现在以下几个方面:

  1. 清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便的定位和理解。
  2. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大地重复计算。
  3. 便于维护:通过数据分层,可以更好地进行数据的维护和管理。
  4. 统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径。
  5. 复杂问题简单化:将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题。

  1. 有了解过你们数据底层是如何来存储的么?

回答基本都是Excel表格,也有纯文档形式的

  1. 你目前的数据都在本地,如果从HDFS访问的话,是需要上传,有了解过什么HDFS的文件格式么?常见的文件传输格式有哪些?

只接触过txt文本格式

  1. 看你简历上也写道Flink,那你有接触过这种实时计算场景么?

略了解,没有接触过

  1. 那你实习的时候是有写这种SQL是吧?
  2. 那我们写一道SQL题吧,窗口函数有了解过吗?目前有一张学生考试成绩表,分别有四个字段,我想统计分年级分科目,每个年级每个科目成绩Top3同学的信息
  3. 解释一下SQL执行顺序
  4. 你了解过窗口函数么?
  5. 有写过其他语言么?写一道算法题吧,给定一个无序数组,求第K大的数,简单说一下sort()内部的一些逻辑,分析时空复杂度
  6. 针对本题,有没有相对快排的方式,进行优化?
  7. 平时还有什么场景或者机会去了解大数据相关的组件和知识么?

创新创业项目和大作业

  1. 数据可视化部分你是用一些开源的么,还是怎么实现的?

Python,帆软相关软件

  1. 有了解过当前比较火的数据处理引擎么?比如MapReduce和Spark,有了解过它们底层的一些原理么?

接触过MapRuduce

  1. 处理过程中会有一些Key的合并,包括从Map到Reduce这个过程中可能涉及到哪些排序?

反问环节:

团队主要工作:属于数据平台部,分为几个小团队,对接不同的业务方向,面试岗位属于用户增长方向,数据仓库建设,拉新,留存,活跃等业务行为,业务场景建模,偏离线数据,应用层建模看板或已有核心指标建设

项目:项目数据量过小,大数据场景问题无法遇到,从数据采集,分层建模领域应用,涉及主键如何生成,业务库同步,存储方式拓展,再到应用层全链路了解,更多关注在数据领域上的积累。

面试总结:

SQL + 数据结构 + 八股基础

面试前针对公司,岗位,部门寻找面经

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
快手小程序中,`scroll-view` 组件本身并没有直接支持下拉刷新功能,但你可以通过使用 `scroll-view`、`view` 和 `scroll-into-view` 等组件及相关事件来模拟实现下拉刷新效果。下面是一个示例代码: ```html <view class="container"> <scroll-view scroll-y="{{true}}" scroll-with-animation="{{true}}" bindscrolltoupper="onScrollToUpper" bindtouchstart="onTouchStart" bindtouchmove="onTouchMove" bindtouchend="onTouchEnd" > <!-- 内容区域 --> </scroll-view> </view> ``` ```javascript Page({ data: { refreshing: false, // 是否正在刷新 startTouchY: 0, // 触摸起始位置的 Y 坐标 refreshHeight: 80, // 下拉刷新的高度 }, onScrollToUpper() { if (!this.data.refreshing) { this.setData({ refreshing: true }); this.refreshData(); } }, onTouchStart(event) { this.setData({ startTouchY: event.touches[0].pageY }); }, onTouchMove(event) { const startY = this.data.startTouchY; const moveY = event.touches[0].pageY; const distanceY = moveY - startY; if (distanceY > 0 && startY < 100) { this.setData({ refreshHeight: distanceY > 80 ? 80 : distanceY }); } }, onTouchEnd() { if (this.data.refreshHeight >= 80) { if (!this.data.refreshing) { this.setData({ refreshing: true }); this.refreshData(); } } else { this.setData({ refreshHeight: 0 }); } }, refreshData() { // 下拉刷新时执行的操作 // 可以在这里发送请求获取最新数据,并更新页面 // 示例代码,假设请求返回的数据为 newData wx.request({ url: 'https://api.example.com/data', // 请求接口地址 success: (res) => { const newData = res.data; // 更新页面数据 this.setData({ data: newData, refreshHeight: 0, refreshing: false }); } }); } }); ``` 在上面的示例代码中,我们通过 `scroll-view` 组件实现滚动区域,在 `scroll-view` 上绑定了 `bindscrolltoupper` 事件,当滚动到顶部时触发下拉刷新操作。同时,我们使用 `bindtouchstart`、`bindtouchmove` 和 `bindtouchend` 事件来监听用户的触摸操作,并根据触摸的位置和移动的距离来控制下拉刷新的效果。 当用户触摸结束后,如果下拉的距离超过设定的刷新高度(这里设为80),则执行下拉刷新操作,发送请求获取最新数据,并更新页面。刷新完成后,将 `refreshHeight` 设置为0,同时将 `refreshing` 设置为false,以停止下拉刷新的效果。 需要注意的是,上述代码仅为模拟实现下拉刷新效果,实际开发中可能需要根据具体需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值