当前位置: 首页 > 面试经验 >

滴滴-提前批-自动驾驶-机器学习平台工程师一二面凉经

优质
小牛编辑
97浏览
2023-08-15

滴滴-提前批-自动驾驶-机器学习平台工程师一二面凉经

Timeline: 8.1投递,8.9打了个电话说明天空出个面试名额让我一次面完。基本上是面完十分钟出结果,二面算法题没做出来秒挂,只能说效率真的高。

8.10一面

  • 自我介绍
  • 选择一个项目去介绍
  • 项目拷打
  • 出于什么考虑去选择日志系统,有没有什么其他的方案,为什么不选择其他的方案
  • 选型后做了哪些优化
  • grafana+loki原理
  • 日志收集器promtail原理 以守护进程方式运行在每个node上监听指定目录下的文件创建和删除对活跃的日志文件,分配打标签后推送给loki
  • loki架构:Distributor分发器,Ingrester接收器,Querier查询器,读写分离分发器
  • Distributor原理 根据元数据和一致性哈希算法,将日志分批并行发送到多个ingrester接收器上接收器
  • Ingrester原理 Ingrester是一个有状态的组件,负责构建和刷新chunk,当chunk达到一定的数量或时间后刷新到存储中去。loki以chunk的方式压缩并存储日志,并使用对应的Index索引将chunk存储在数据库中
  • Querier原理:可以从数据库中查看index索引,确定哪些chunk块匹配,也可以直接从ingrester中获取chunk
  • 数据库索引的底层结构

在mysql中,索引是使用B+树实现的。B+树是一种多路平衡树,它只在叶子节点存放数据,在非叶子节点存放索引,因此它的搜索效率是比较稳定的,相对来说也可以更加矮胖,减少I/O次数。B+树的叶子节点中存在双向链表,有利于范围查询。此外,B+树中的非叶子节点中存在着许多冗余节点,这能让B+树在插入删除时保证结构稳定,效率更高

  • 聚簇索引和非聚簇索引
  • 聚簇索引也就是主键索引,它的叶子节点存放数据,通过索引能够直接获得所有的数据。非聚簇索引也就是二级索引,它的叶子结点上存放着主键索引,需要通过回表根据主键索引再次查询才能获得数据。
  • 索引的优缺点,建立和使用索引的规则
  • 索引的优点是,它可以加快数据的查询速度,其缺点是创建和维护索引需要耗费时间,保存索引也需要耗费空间,且使用索引时,需要根据一定的规则去建立使用,否则查询没有走索引的时候,会造成查询速度减慢。
  • 在建立索引的时候,一般最好在频繁使用where,order by,group by查询的列上建立索引,且这些列上不能用NULL值,也最好不要在频繁变动的字段上建立索引。建立索引的时候,最好建立覆盖索引,减少回表次数,对多字段的查询最好能建立联合索引,字符串类的索引最好建立前缀索引。
  • 在使用索引的时候,要注意查询的时候符合最左匹配原则,比如模糊查询不要模糊最左的字段,不在索引列上进行计算、函数等操作,查询条件使用or时两个列都要用到索引。
  • 项目里提到了k8s,介绍一下k8s
  • k8s是一个开源的容器编排平台,可以自动完成部署、管理和拓展容器化应用。使用k8s可以跨主机编排容器,更充分利用硬件资源,控制和自动化应用的部署和更新并且动态拓展应用与资源。
  • 算法题:二叉树的最近公共祖先

面完半小时后 二面

  • 自我介绍,面试官介绍部门业务介绍了十分钟
  • 项目介绍,相同的拷打方式,问是怎么优化,怎么debug的
  • 算法
  • 斜向打印数组,比如
[1,2,3,4]
[5,6,7,8]
[9,10,11,12]
打印成
[1] [2,5] [3,4,9] [4,7,10] [8,11] [12]
  • 寻找谷值(寻找峰值的变体,二分法,做法忘记了没做出来)
 类似资料: