查看原文
其他

字节跳动-数据仓库高级工程师面试

The following article is from 数据爱好者社区 Author 云碟B


写在前面:

2020.05月份疫情期间面试整理,已斩offer,试用期现已转正。此时,借社区平台分享给大家!金三银四,2021加油!



思想和方法论:


  • 如何建设数仓,如何构建主题域

  • 缓慢变化维 几种处理方式

  • 什么是维度建模,星型模型与雪花模型的区别

  • 数仓的好处

  • 分层的好处

  • 怎么做数据质量,怎么保证及时性和准确性

  • 什么是维度,什么是度量

  • 如何数据治理?

  • 三范式

  • 数据仓库vs数据中台vs数据湖

  • 做过实时数仓吗,讲一下


hadoop:


  • MapReduce原理,map数、reduce数的参数

  • 说一下 map join 与 reduce join

  • hive sql怎么优化

  • spark和hive的区别

  • 数据倾斜几种解决方式

  • 数据如何清洗

  • 说一下udf、udtf、udaf ,集成的类、接口,怎么写

  • hive文件存储格式,对比

  • 内外表区别

  • hive执行的job数是怎么确定的



Spark:


  • join 实现有几种呢,源码有研究过吗?底层是怎么实现的

  • shuffle形式有几种?都做哪些优化

  • 是通过什么管理shuffle中的内存,磁盘的

  • 讲讲spark内存模型?说说你了解这些,对实际的工作有什么帮助?

  • rdd有哪些特性?

  • 宽依赖,窄依赖都是什么?有什么不同?除了大家都认为的不同点以外,还有哪些不同?

  • spark为什么比hive快

  • 讲讲sparksql优化

  • 讲讲RDD, DAG, Stage

  • 说说groupByKey, reduceByKey

  • spark是怎么读取文件的?

  • 有没有遇到过spark读取文件,有一些task空跑的现象?

  • 窗口函数中几个rank函数有啥不同

  • parquet文件和orc文件有啥不同



shell:


  • 字符串替换(sed)

  • 本文逗号分隔输出第二列(awk)

       注:新浪也考过 awk输出并求和


python:


  • 数组和列表的区别,什么是字典

  • 什么是模块,有哪些内置模块

  • 全局变量与局部变量


算法与数据结构:


  • 几种排序算法,说一下冒泡排序

  • 堆vs栈

  • 布隆过滤器

  • Bitmap

  • B+树

  • LSM Tree

  • 跳表

  • Hyperloglog


sql题:


  • 手写7日留存

  • 手写连续3日登陆

  • 1000亿userid如何最高性能求uv



业务:


  • 讲一个最复杂的业务场景

  • 数据赋能,你如何体现数仓职位的价值

  • 你能为我们带来什么?


实时:


  • 实时PV,UV统计

  • 实时TOP N 统计

  • 广告曝光流和点击流实时join

  • Spark Streaming 与Flink的对比

  • Flink怎么做到Exactly Once

  • Flink的StateStore有哪些,工作中用过哪些

  • 做过Flink内存调优吗

  • 讲讲Spark Streaming 与Flink的反压机制

  • Flink的窗口函数,时间机制,CheckPoint机制,两阶段提交

  • Flink 双流Join

  • Flink State TTL怎么设置

  • Flink 维表关联有哪些方式,数据量大时怎么处理



▼ 系列 | 漫谈数仓第一篇NO.1 『基础架构』
▼ 系列 | 漫谈数仓第二篇NO.2 数仓建模
▼ 系列 | 漫谈数仓第三篇NO.3 『数据清洗』
▼ 系列 | 漫谈数仓第四篇NO.4 『BI选型』

 系列 | 漫谈数仓第五篇NO.5 『OLAP选型』

 系列 | 漫谈数仓第六篇NO.6 『开发规范』

 系列 | 漫谈数仓第七篇NO.7 『数据质量』

 系列 | 漫谈数仓第八篇NO.8 『元数据管理』

 系列 | 漫谈数仓第九篇NO.9 『数据治理』

▼ 系列 | 漫谈数仓第十篇NO.10 『实时数仓』



下载资料:长按扫码回复 Flink

希望这篇文章可以帮到你~
欢迎大家点个在看,分享至朋友圈

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存