一 滴滴
1.1 2020-12-高级数据研发
1.自我介绍一下
2.你们业务库怎么同步到数仓的
3.增量处理的逻辑说一下
4.如果业务库修改了数据,但是更新时间没用修改,这个数据能抽过来吗?应该怎么处理
5.你们数据模型怎么建设的
6.你们数仓分层怎么分的,每层的作用?
7.你们使用宽表会有什么问题吗
8.hive这个组件产生的优点,与其他组件比较
9.hive调优说一下,你们平常怎么处理数据倾斜问题的
10.说一下最近的一个项目
11.这个项目你觉得哪里好
12.数据治理这块你有参与吗?
13.元数据管理怎么做的?
14.数据质量管理你们怎么做的?
15.四个by的区别
16.hive中几个join的区别
17.你有什么想问我的吗
1.2 2020-11-高级数据研发
1.自我介绍一下
2.说一下日常工作中负责的一个主题建模过程
3.为什么要分层,每层的作用是什么
4.数仓分层的每层要注意什么
5.你们分层和阿里有点不一样,你们是怎么考虑的,你觉得阿里为什么那样分层
6.hive优化说一下
7.你们数据域怎么划分的
8.你们ads层怎么划分的
9.数仓宽表你怎么看
10.什么情况下回用到拉链表,拉链表的实现逻辑说一下
11.分区和分桶的区别
12.如何取样
13.row number, rank, dense rank区别
14.现场写一个sql
15.hivesql的复杂数据类型说一下
16.如何判断一个数据模型的好坏
17.udf udaf udtf怎么实现
18.判断数仓搭建的好坏,怎么评价
19.你们元数据管理怎么做的
20.元数据你们怎么应用的
21.数据血缘你们怎么做的
22.数据质量管理说一下,你们怎么做的
23.告警平台你们怎么做的,说一下
24.处理小文件的参数是什么
25.set hive.groupby.skewindata=true; 实现逻辑
26.大表join小表怎么优化
27.mapjoin实现原理
28.什么情况下,只会产生一个reduce任务,而没有maptask
29.空key你们是如何给随机值的
30.有多个热点值的数据group by,你们是怎么处理的,优化逻辑说一下
31.你有什么想问我的吗
2 网易
2.1 2021-01-网易杭研高级数据研发
- spring AOP应用场景
- 分布式锁的几种实现方式
- 一个文件只有一行,但是这行有100G大小,mr会不会切分,我们应该怎么解决
- hdfs HA机制,一台namenode宕机了,joualnode,namenode,edit.log fsimage的变化
- 你们数仓怎么分层的以及各层主要做了什么
- 你们主题是怎么划分的,举个例子
- 如何判断一个模型的好坏
- rowkey一般如何设计,你项目中是如何设计的
- 你们需求的开发流程是什么样的
- kylin熟吗?kylin你一般怎么调优
- 两个数 a=3,b=5,如何不使用中间变量不使用函数的情况下调换他们
- hive开发过程中,你一般会怎么调优
- hive的执行计划有看过吗,你一般会关注哪几个点
- hive底层运行mr或者spark程序的时候语法树说一下
- ETL过程中,你们数据质量是怎么保证的
- datax源码有没有看过
- 用phenix和es作为hbase二级索引的区别,最新的hbase已经支持二级索引了,你清楚吗?
- 你有什么问题想问我吗
2.2 2021-01-网易云音乐高级数据研发
- 你为什么想换工作?
- 你最近的项目是做了什么?
- 你觉得这个项目你们遇到的最大的挑战是什么?
- 你们开发规范是怎样的?
- 你们公司有哪些主题?
- 日志采集有没做过?
- 流量域一般怎么做?
- 路径分析怎么做?
- 如果你的代码运行很慢,你会怎么开始排查?
- 你们数据量大概有多大?
- 你还有什么想问我的吗?
3 美团
3.1 2021-02-美团优选高级数据研发
- 自我介绍一下?
- 介绍一下最近的项目?
- 目前在研究什么技术?
- 如何判定一个表是事实表还是维度表?
- 数据建模过程说一下?
- 三范式知道吗,说一下?
- 数据仓库模型建设可以使用范式建模吗,你是怎么看的?
- 缓慢变化维处理方式?
- 大宽表的优点与缺点?
- 拉链表的实现逻辑说一下?
- Mapreduce执行流程说一下?
- Shulffle过程瓶颈在哪里,你会怎么解决?
- 你刚说到会有小文件和数据倾斜,这个怎么处理?
- 空值key加随机数是一种数据倾斜解决方案,如果有单个key是热点值呢?又如果有多个key是热点值呢?用参数和代码分别怎么解决?
- Kylin调优?
- Kylin的优点和缺点?
- Kylin的rowkey如何设计?
- Kylin的cuboid,cube和segment的关系?
- 一张hive宽表有5个维度,kylin构建cube的时候我选了4个维度,我select *的时候会有几个维度字段?
- 其他olap工具有了解过吗?
- Flink savepoint和checkpoint?
- Flink算子记得哪些?
- Flink map和flatmap比较?
- flink双流join说一下?
- flink两段提交原理说一下?
- 你们数仓用的是hive还是spark,你平常怎么选择?
- Hive优化说一下
- 用你最熟悉的编程语言(java,python,scala)写一个二分查找(牛客网在线写)
- 订单表,t_order, 字段,user_id,order_id,ctime(10位时间戳),city_id,sale_num,sku_id(商品)
问题:20201201至今每日订单量top10的城市及其订单量(订单量对order_id去重)(在线写)
- 你有什么想问我的吗?
3.2 2021-02-美团优选高级数据研发
开场问项目情况,叙述一遍做过的项目。
项目是否搭建数仓?(我做的是银行数仓,但是当时懵了,一直说做的数据集市)
主题域是怎么划分的?
脏数据怎么处理?
举例:客户等级这个属性是怎么加工的?比如金卡、银卡等,怎么划分?(个人感觉是面试官想要问我明细层数据是怎么处理的,而我理解成具体的这件事,这件事没啥划分的。。。银行怎么定义我们就怎么取)
怎么进行数据建模?存款、贷款等业务。
hive的优化
mapreduce的具体流程
mr中join操作的具体原理
数据倾斜的处理方式
有没有用过udf函数,自定义函数分为几种?
怎么从一个字符串中把数字拆出来?
hbase有了解吗,原理是什么。hbase的优化怎么做
spark的原理和优化
spark和mr的区别
mysql中B树和B+树的原理和区别
java的快排算法实现
kylin的原理和优化。
为什么kylin的维度不建议过多
实时数据是否有了解,过程是什么
三范式
星型建模和雪花建模的区别
mysql事务锁有几种,分别是什么
storm是否有了解
如何计算新用户和老用户?
sql题:给定一个表temp,字段是 user_id,clo1,col2….col12 12各字段代表12个月电费,求最终结果展现:user_id,month,money
3.3 2021-02-美团优选高级数据研发
一面:
元数据管理
数仓的理解和价值
olap平台有哪些
kylin底层的存储
kylin的优化策略
hbase rowkey的设计原则
hive udf的分类
大表join的优化策略
flink 用到的技术
flink的多流join
mysql的事务级别
mysql的索引机制
Java多线程的实现方式
GC算法
mybatis和hibeate的区别
现场sql 行转列 不用炸裂函数如何做
快排
建模的理解
二面:
工作中最好的两个项目,项目架构,用到了多少个topic
flink的资源评估
其他的流式计算框架
flink的监控
fink中有没有大的state
有没有偏技术驱动的东西落地
4 蚂蚁金服
4.1 2020-12-高级数据研发
两轮技术面、一轮人事面
- 手写sql问题:连续活跃…
- left semi join和left join区别;
- 维度建模和范式建模的区别;
- 埋点的码表如何设计;
- 数据倾斜(hive+spark);
- group by为什么要排序;
- 集市层和公共层的区别;
- 缓慢变化维的处理方式;
- boss问了jvm、堆栈;
- 说说印象最深的一次优化场景,hive常见的优化思路;
- 数据质量相关;
- 说说你从0-1搭建数仓都做了什么?你觉得最有挑战的是什么?
- 你有什么问题问我。
1.设计并实现一个简易的缓存框架,要求支持并发的读写和LRU缓存淘汰算法,并考虑性能
4.2 2020-12-高级数据研发
2.编写一个程序,开启3个线程,
这3个线程的ID分别为A、B、C,3个线程交替打印1-100的整数,要求输出结果有序,
样例Sample:
Thread1: 1
Thread2: 2
Thread3: 3
Thread1: 4
Thread2: 5
Thread3: 6
….
Thread3: 99
Thread1: 100
3.遍历一个二叉树,打印出该路径中每个节点数字的和与给定目标值一致的有效路径。
有效路径:从根节点到叶节点的路径。
给定一个二叉树:
1
/ \
2 4
/ \
2 3
目标值= 5时返回结果:
1 2 2
1 4
4.使用两个栈来实现队列的一些操作。
队列应支持push(element),pop()和top(),其中pop是弹出队列中的第一个(最前面的)元素。
pop和top方法都应该返回第一个元素的值。
样例:比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2
要求:仅使用两个栈来实现它,不使用任何其他数据结构,push,pop和top的复杂度都应该是均摊O(1)的
5.比较一个源字符串和一个目标字符串,
如果在源字符串中包含目标字符串全部字符,输出所包含的第一个最小子串;
如果不存在,输出空。
:样例
source = “BPDAUNZHGAHSIWBADNC”,target = “BDN”满足要求的解 “BADN”
要求:时间复杂度为O(n^2)
4.3 2020-12-高级数据研发
SQL笔试题
题目1
背景说明:
以下表记录了用户每天的蚂蚁森林低碳生活领取的记录流水。
table_name:user_low_carbon
seq(key) user_id data_dt low_carbon
流水号用户日期减少碳排放(g)
xxxxx01 u_001 2017/1/1 10
xxxxx02 u_001 2017/1/2 150
xxxxx03 u_001 2017/1/2 110
xxxxx04 u_001 2017/1/2 10
xxxxx05 u_001 2017/1/4 50
xxxxx06 u_001 2017/1/4 10
xxxxx07 u_001 2017/1/6 45
xxxxx08 u_001 2017/1/6 90
xxxxx09 u_002 2017/1/1 10
xxxxx10 u_002 2017/1/2 150
xxxxx11 u_002 2017/1/2 70
xxxxx12 u_002 2017/1/3 30
xxxxx13 u_002 2017/1/3 80
xxxxx14 u_002 2017/1/4 150
xxxxx14 u_002 2017/1/5 101
xxxxx15 u_002 2017/1/6 68
xxxxx16 u_002 2017/1/6 120
蚂蚁森林植物换购表,用于记录申领环保植物所需要减少的碳排放量
table_name: plant_carbon
plant_id plant_name low_carbon
植物编号植物名换购植物所需要的碳
p001 梭梭树 17900
p002 沙柳 19680
p003 樟子树 146210
p004 胡杨 215680
1、蚂蚁森林植物申领统计
问题:假设2017年1月1日开始记录低碳数据(user_low_carbon),假设2017年10月1日之前满足申领条件的用户都申领了一颗p004-胡杨,剩余的能量全部用来领取“p002-沙柳” 。
统计在10月1日累计申领“p002-沙柳” 排名前10的用户信息;以及他比后一名多领了几颗沙柳(加分选项,可不做)。
得到的统计结果如下表样式:
user_id plant_count less_count(比后一名多领了几颗沙柳)
u_101 1000 100
u_088 900 400
u_103 500 …
2、蚂蚁森林低碳用户排名分析
问题:查询user_low_carbon表中每日流水记录,条件为:用户在2017年,连续三天(或以上)的天数里,每天减少碳排放(low_carbon)都超过100g的用户低碳流水。
需要查询返回满足以上条件的user_low_carbon表中的记录流水。例如用户u_002符合条件的记录如下,因为2017/1/2~2017/1/5连续四天的碳排放量之和都大于等于100g:
seq(key) user_id data_dt low_carbon
xxxxx10 u_002 2017/1/2 150
xxxxx11 u_002 2017/1/2 70
xxxxx12 u_002 2017/1/3 30
xxxxx13 u_002 2017/1/3 80
xxxxx14 u_002 2017/1/4 150
xxxxx14 u_002 2017/1/5 101
题目2
学校的期末考试结束后,考试成绩被存储在一张表中TableA中,包含信息:sn(学号), sourse(课程),score(成绩)。班主任想做如下统计:
1、统计每个学生的总分,排名,当前排名与下一名次总分差(如:第n名总分-第n+1名总分,即为分差);
2、统计英语(sourse=ENG)挂科(score<60),但是总分排名进入前20%的学生名单以及他们的总分成绩;
3、统计至少两门科目满分(score=100)的同学中,总分排名第二的学生的学号;
题目3
计算90分位。有10000个用户,每个用户有user_id,和不同的交易量trd_cnt。
求:按照交易量从大到小排序,选出最少的、能占总体交易量90%的用户id(这些用户交易量占整体交易量的90%)。
4.4 2020-12-高级数据研发
1、和一面一样自我介绍;
2、因为简历上写有大数据平台选型,所以问选型的依据,不同大数据平台的优缺点;
3、数据仓库主题的划分,参考Teradata的LDM模型;
4、Kimball和Inmon的相同和不同;
5、数据质量管理、数据治理有什么好的方案?知识库管理有什么好的思路?血缘关系图。
6、元数据管理相关问题,集群存储不够了,需要清理不需要的任务和数据该怎么做?
7、业务库2亿数据入仓的策略,一次全量,之后每次增量;
8、什么场景会出现数据倾斜,怎么解决?比如select user_id,count(1) from table group by user_id,其中某些user_id的访问量很大,查询不出结果该怎么办?
9、sql里面on和where有区别吗?
10、还有一个sql问题,忘掉了;
11、聊一下技术架构,整个项目每个环节用的什么技术这个样子;
12、hive、hbase、spark。。。。这些大数据组件,熟悉哪个或者哪些?我说hive和hbase,对方就问hive和hbase的原理,差异等问题;
13、有没有实时数仓的经验,数据实时入仓思路,canal;
14、你对当前的项目组有没有什么自己的看法、意见或者需要改进的地方,这个改进对你有没有什么影响
15、ods的增量能否做成通用的?
16、公共层和数据集市层的区别和特点?
17、用mr实现用户pv的top10?
map输入数据,将数据转换成(用户,访问次数)的键值对,然后reduce端实现聚合,并且将结果写入用户、访问次数的实体类,并且实现排序,最后的结果做一个top10的筛选
18、sql问题,连续几天活跃的用户?
使用row number排序,然后时间-排序字段,减的结果分组,相同的就是连续的
19、从原理上说一下mpp和mr的区别
20、对了中间还有问数仓数据的输出主要是哪些还有数仓的分层;
4.5 2021-10-数据开发
1.hbase rowkey你们怎么设计的
2.es和其他数据库有什么区别
3.flink发生反压的时候你们怎么处理?
4.你们小时表是怎么做的调度
5.es的文件存储格式?
6.将一个你比较影响深刻,最有价值的项目
5 oppo
5.1 2020-12-数据开发
- 流怎么和一个百亿级的表Join?
- 小文件有哪些危害?不仅仅是寻址时间长
- Kafka的特点,为什么适用于大数据计算?怎么实现高吞吐的
- 数仓各层的流转,a left jion b后面 跟where和and的区别,row_number和rank区别
- 说下最擅长的项目
- 怎么做的整个过程的数据质量管理
- JVM怎么调优,多线程安全问题,怎么加锁
- 【1,3,5,7,9】数组怎么查找某个元素的索引,如果元素移动了很多次怎么查找
- linux怎么查找某个进程的内存
6 丰巢
6.1 2020-12-数据开发
- 第一面是技术人员面:一般就对着你的简历问,挨着问,实时方面比较关心Flink,他们实时就用Flink,spark基本没问 有点难,但是面试小哥人很好,不懂可以请教,现场教学
- 1.JVM原理,GC回收机制,hashMap底层原理
- 2.hadoop的组件,各自的作用,SecondNode的作用
- 3.es的倒排索引原理
- 4.看过什么框架的源码,选取一个简单讲解一下(我讲的MR,我感觉他更想听Flink)
- 5.Flink有哪些窗口,介绍一下区别?会话窗口关闭是什么控制得(我不会,他说是nameSpace,源码里展示了的)
- 6.flink的提交方式?(一脸懵逼,我说的是打jar包上传,打jar包之后给运维上线,然后用指令进行提交,
- 他给我分享的是丰巢已经做了自己的Flink提交平台,虽然还不完善,但是一些基本的功能都能实现了,比如说提交,我直呼贵公司nb)
- 7.Flink的编程模型
- 8.Flink的状态有了解吗?有哪些?
- 9.Kafka读数据的原理(二分法的那个)
- 10.scala的尾递归知道吗?(一脸懵逼)
- 11.FLink数据倾斜优化(场景:如果有四个地区:A B C D
- 比如说统计uv A地区的特别多,可能有几千万条但是B,C,D里面可能只有几千条 这时候Flink怎么调优
- 思路:对A分区里面的 设备id进行hash分组 比如说取十个分区 将数据放在是个分区中区计算,计算后再把结果聚合)
- 12.kafka实现精准一次性
- 13.flink是用什么监控的
- 14.Linux用了哪些命令(top(还有个带参数的top,我忘了是啥了),jps(java进程),awk的使用,还有管道的作用,我说的过滤;端口占用情况netestate -tunlp |grep端口号)
6.2 2020-12-数据开发
第一面是技术人员面:一般就对着你的简历问,挨着问,实时方面比较关心Flink,他们实时就用Flink,spark基本没问 有点难,但是面试小哥人很好,不懂可以请教,现场教学
1.JVM原理,GC回收机制,hashMap底层原理
2.hadoop的组件,各自的作用,SecondNode的作用
3.es的倒排索引原理
4.看过什么框架的源码,选取一个简单讲解一下 (我讲的MR,我感觉他更想听Flink)
5.Flink有哪些窗口,介绍一下区别?会话窗口关闭是什么控制得(我不会,他说是nameSpace,源码里展示了的)
6.flink的提交方式?(一脸懵逼,我说的是打jar包上传,打jar包之后给运维上线,然后用指令进行提交,
他给我分享的是丰巢已经做了自己的Flink提交平台,虽然还不完善,但是一些基本的功能都能实现了,比如说提交,我直呼贵公司nb)
7.Flink的编程模型
8.Flink的状态有了解吗?有哪些?
9.Kafka读数据的原理(二分法的那个 )
10.scala的尾递归知道吗?(一脸懵逼)
7.深信服
7.1 2020-12-数据开发
0、自我介绍
1、NIO和BIO区别?
2、Flink的时间语义?
3、Flink完成的指标有哪些印象比较深刻?如何实现简单描述一下
4、把你知道设计模式讲一下,我讲了单例和工厂和装饰,说明了什么场景才会使用以及使用时的优点
5、RDD的五大特性讲下?
6、HBASE的读写流程?
7、HBASE的负载均衡?
8 AKULAKU
8.1 2020-12-数据开发
1、讲一下hashtable和hashMap区别?
2、线程池的理解?
3、双亲委派机制?
4、垃圾回收算法?
5、说说JVM的理解?
6、java和Scala的区别?(因为我简历上写对Scala情有独钟,妈的)
7、scala的特质和java的接口区别?
8、scala闭包和柯里化理解?
9、出了一道算法题,动态规划,我不会做。
10、kafka端到端一致性?(我的回答分2步骤:生产者到broker端即ACK机制,broker端到消费者端事务回滚机制)
11、HBASE的rowkey设计?需要结合业务背景场景来说?
12、Flink的Checkpoint机制,以及说说对该实现算法的理解,就是那个昌迪兰波特算法。
13、Flink反压?结合一下,你是怎么发现,怎么判断,怎么调优解决?什么场景发生的?
14、kafka的ISR机制?
15、ISR英语单词怎么拼?(我说翻译副本同步策略,这个面试官好恶心,你怎么不去死?)
整个过程我觉得给自己99分,因为基本都答出来了,但是他说待定,因为我是年后的第一个面试者,后面还有很多面试者,需要从里面筛选
然后我说已经有其他offer了,他就立刻说周一告诉我结果。我想说,这家公司好恶心!!!!
9 顺丰
9.1 2020-12-数据开发
1、自我介绍
2、以Flink为核心的项目介绍,数据链路,举一个例子,遇到的困难是如何解决?
3、离线数仓搭建的过程,建模思想,举一个例子,遇到的困难是如何解决?
4、有没遇到过数据倾斜场景?举例,我说了SQL和代码方面的数据倾斜,告诉面试官是怎么发现,怎么判断,怎么解决的思路
5、为什么你们公司把Spark替换为Flink,是因为业务场景还是Flink本身的特性导致你们需要进行重构?
6、对比一下Flink和Spark不同点和相同点?我是从数据模型,实时性,有无状态,他们之间的Checkpoint的机制,时间语义,实现的业务场景来说明。
10 极光
10.1 2020-12-数据开发
1、Flink背压问题,web界面可以查看!
2、HashMap原理?
3、去重手段:set,布隆,TreeSet
4、布隆过滤器原理描述?
5、TreeSet原理?
6、topN的SQL语句?
7、hive的四种排序,orderby,sortby,……
8、Hbase的region挂掉之后,怎么迁移?流程是怎样的?
9、Hbase删除一条数据的过程是怎样的?请描述一下运行细节和运行流程?(在要删除的数据后面做一个标记删除,但实际上是不会删除!)
10、Spark的行动算子和转换算子区别?
11、宽依赖和窄依赖?
12、reducebykey和groupbykey区别?
13、Spark的stage如何划分?
14、Spark的job是如何划分?
15、RDD究竟是什么?里面底层蕴含的究竟是什么?是数据还是计算逻辑?
16、RDD,datafram,dataset区别,为什么建议使用dataSet,而不建议使用datafram?
17、redis的几种用法?用的最多的几种数据结构?
18、Kafka时间轮?
19、hbase多列簇和少列簇有什么区别?
11 shoppee
11.1 2020-12-数据开发
1.数据结构:hashmap,JUC,JVM,红黑树,二叉树,LSM树(Hbase的底层数据结构),AST树;
红黑树:一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。
LSMT使用了一种独特的机制牺牲了一些读操作的性能,保证了写操作的能力,它能够让所有的操作顺序化,几乎完全避免了随机读写。
SSTables commit log,MemTable(快速增删改查的数据结构,比如红黑树、SkipList都行)查询sstables适用布隆过滤器实现筛选;并且通过不断地合并sstables进行删改的执行;
2.大数据知识:Flink一次性语义;kafka高速的原因;
3.问我最近写什么多!我说写业务和scala还有shell多,转手编程题:
代码题:java:两个栈实现一个队列的功能;我写伪代码嘲笑我编程习惯不好,不喜欢打分号,不适合api,=不加空格什么的。。。
4.快排的实现逻辑与时间空间复杂度以及推算
11.2 2020-12-数据开发
什么RDD可以用repartition?
coaldesce shuffle为true
flume断点续传多久保留一次offset
整个flume有使用高可用吗?怎么配置高可用?
对kafka有一定了解吗?
能大致说一下kafka的写流程吗?
ack的情况
kafka的最终文件夹存储方式是什么样子的?
kafka为什么可以快速根据分区和offset找到我们的数据记录?
索引文件中是怎么记录这些消息的?
消费者组的概念怎么理解?
kafka的选举机制?
azkaban怎么调度的?
hive做过哪些参数的优化?
mapjoin有什么缺点?
分桶表分区表区别?各自的优点?
大表join分桶的原因?
join的时候依照哪一个关键字?对字段有没有限制?
怎么把表分桶的?join的时候分桶的key不同怎么办?
数据倾斜怎么解决?distinct数据倾斜怎么办?
sparkstreaming的ck有什么好处?
ck、persist、cache分别有什么区别?
怎么定义算子是转换算子还是行动算子?(怎么知道这个算子是行动算子?)
有状态缓存的算子?
怎么实时查看用户访问数?这种实时变动的需求怎么实现?
flink的ck了解吗?可以说一下大致流程吗?
如果有多个barrier对齐时,有一两个一直没到该怎么处理?有没有情况下不进行等待对齐?
窗口和wm的关系
窗口的状态数据什么时候清楚?
HDFS中datanode之间怎么保证备份数量的同步?
2NN的作用?高可用中的standby namenode的作用?
怎么进行故障转移的?
12 字节
12.1 2020-12-数据开发
- flink与sparkstreaming的区别
- 假设一种场景,flink上游发送数据很慢,你认为可能什么原因导致,回答的资源可能不够,并行度不够,flink从kafka消费数据每批次拉取的数据条数太多,或者数据出现了倾斜,他问如果都不是这些情况还有可能什么原因。然后根据他的提示后有答出是checkpoint的时间设置比较大,可能失败后一直在做checkpoint的时间花得比较多,并且barrier设置的对齐,某几个barrier延迟到达导致其他barrier一直处于等待
- 介绍你对泛型的理解,类/成员变量怎么使用泛型,哪些类型不能使用泛型
- int和Integer的区别,他们表示的数值的范围是一样的么
- 手写hql,给定一个表event,字段是date,timestamp,event_name(有login_time和loginout_time两种),uid,写出PCU(每天同时最大在线人数)
- 手写java/scala实现从一个文本里面读取,统计出现次数top3的单词
12.2 2020-12-数据开发
1.编程算法题:
a.将字符串进行编码,如aabbcc编码成a_2_b_2_c_2;b.将输入的UNIX路径格式化,如/a/b/./../c,格式化为/a/c
2.建立数据仓库的一般流程,你的思路是什么;
3.写hive sql题,以及进行hive sql优化的思路;
4.对spark/spark streaming的原理了解,以及优化的思路;
5.对项目相关的一些问题;
数据清洗做过没?
离线方面碰到什么困难
数据倾斜怎么优化
spark的数据倾斜
小文件优化的原理
Spark的源码,例如:框架层面、算子具体实现
Spark什么时候用到内存,什么用到磁盘
算子collect分为
Spark堆内内存和堆外内存的区别,什么时候用到堆内,什么时候用到堆外
- 堆内内存
堆内内存的大小,由 Spark 应用程序启动时的–executor-memory 或 spark.executor.memory 参数配置。Executor 内运行的并发任务共享 JVM 堆内内存,这些任务在缓存 RDD 数据和广播(Broadcast)数据时占用的内存被规划为存储(Storage??????,而这些任务在执行 Shuffle 时占用的内存被规划为执行(Execution)内存,剩余的部分不做特殊规划,那些 Spark 内部的对象实例,或者用户定义的 Spark 应用程序中的对象实例,均占用剩余的空间。不同的管理模式下,这三部分占用的空间大小各不相同。
- 堆外内存
为了进一步优化内存的使用以及提高 Shuffle 时排序的效率,Spark 引入了堆外(Off-heap)内存,使之可以直接在工作节点的系统内存中开辟空间,存储经过序列化的二进制数据。
堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)。这样做的结果就是能保持一个较小的堆,以减少垃圾收集对应用的影响。
2张大表,超过几百G,join优化,按照什么条件区分区
1.对RDD进行repartition重分区
先依据Executor数和内存情况估算出对RDD分为多少个partition比较合适,因为一个partition对应一个task,会分发给一个Executor的core去执行运算操作。
所以首先对RDD进行重分区,将数据打散。
2.采用mapPartition算子,一次性处理一个分区的数据
在这一步进行group by操作,将相同key的value值进行加和
3. reduceByKey算子,对不同的key进行聚合
经过上面的重分区,以及预聚合(group by,func加和),此时reduce端的计算压力就小了很多
归并排序,将2个数组合并到一个数组,并排好序
12.3 2020-12-数据开发
sparkstreaming的书写结构
rdd、ck、cache
topn的具体步骤
怎么可以实现在一小时topn的固定窗口情况下,0-10、0-20也会有结果的显示
架构?
怎样建模?
一天多少任务,多少表
什么技术进行存储
内外部表的区别、优缺点
数据存在hdfs上回有压缩吗?有什么优缺点?
hdfs为什么会比较厌恶小文件
数据源是来自于哪里
flume会不会丢数据
数据倾斜问题
二次聚合对uv的话有没有什么问题
二面:
数仓的搭建
分工 角色
分层怎么分的
sqoop怎么解决数据变动的问题
维度退化具体的内容
每天的数据量
你们有主题的概念吗?
主题的划分原则
7日的留存率怎么求?
有一些任务需要回溯,就是比如说历史时间需要重新执行,有遇到这种情况吗?
核心指标都有哪些?
怎么保证每天能在固定的时间数据产出?
数仓建模的方式?
模型的选取?
stage的划分依据?
shuffle什么原因引起的?
哪一些算子会引起shuffle?
怎么识别抖音种的大学生用户?用什么数据识别
12.4 2020-12-数据开发
1、讲讲项目中的业务价值,及项目是怎么从0到1的搭建数仓?
2、项目中技术栈有哪些,选型的依据是什么?
3、datax和sqoop的区别是什么,datax调度流程是怎么样的?
4、kylin和clickhouse的比较
5、数据域、主题域怎么划分,划分依据?
6、数据质量包含那些模块,都是怎么保证数据的质量?
7、挑选一个熟悉的业务,描述下整个数据开发的流程?
8、数据倾斜产生原因及处理方式?
9、一个hivesql从客户端提交到服务端,到最终的执行是怎么个流程?
10、项目中是否使用了flink,针对项目提出一些假设,并期望寻求解决方式
11、手写连续登入7日的用户SQL,提供两种方式?
12、sparkstage的划分依据,及RDD的容错
13、手写拉链表SQL,并分析有多少个job?
14、维度建模中维度表处理技术有那些,其中缓慢变化维是怎么处理的?微型维度怎么处理?
15、数据成本治理的方案?
16、散列冲突怎么解决?
12.5 2020-12-数据开发
1、sql题目:domain、url、pv,求每个domain下根据pv大小的top2000的url?
这个简单,写个sql,row_number排个序
2、同样的场景,有几十亿的url,并且要求近实时计算,该如何选型,如何设计?
采集数据到kafka,用spark streaming做解析,往hbase落三个表,一个明细做缓存,一个记录domain、url和pv,第三个记录结果,domain和top2000的url对应关系。
其中因为数据量比较大,会导致spark streaming解析计算的时候会有比较长的delay,选择将解析和计算分开,重新起一个spark任务去做第二个表到第三个表的计算。最后如果涉及到uv指标,可以考虑用redis做去重计算
3、简单说一下主题划分的依据,如果给你一个新的业务,你如何设计主题?
主题是根据业务过程抽象出来的分析边界,所以需要先熟悉业务,从业务提取出业务过程,然后提炼涉及到的维度,形成数据矩阵,从而确定主题的划分;
4、简述hbase的原理,简述LSM模型,Hfile的数据结构是如何的,Memstore的数据结构是如何的?
12.6 2021-07-数据开发
1、自我介绍2、sparkstreaming和flink的区别
3、sparksql和flink的数据倾斜问题
4、画像建设体系及数仓层实现
5、量化结果指标体系
6、sql编写
7、有什么想问的
12.7 2021-07-数据开发
1、连续活跃5天2、说一下你认为挑战比较大或者能够体现你价值的地方(日志改造)
3、数据漂移的问题
4、flink watermark的作用
5、说一下你的优点
6、宽表的建设原则
13 跨越速运
13.1 2020-12-数据开发
- 1.Flink的JobManager和TaskManager能不能失败重启?机制是什么?
- 2.拉链表如果有一天没有拉成功,导致漏拉了一天(比如11号漏了12号的,直接拉13号),怎么处理?怎么避免?
- 3.Flink有没有出现过窗口无法触发计算的情况?面试官说如果有两个分区,一个分区没数据,另一个分区一直有数据,就会出现这个问题,不是很懂
- 4.Flink的Checkpoint,如果部分算子已经完成本次ck,宕机以后是从哪开始?保存好的算子开始还是从source端重新开始?我记得鹏哥说过是从source重新开始,但面试官的样子好像表示我说的不对
- 5.为什么维度表要存在HBase里不存在MySQL里,HBase的rowkey设计有什么实际应用场景?
- 6.Spark的下游分区如何知道从哪个上游分区读取数据?
- 7.Hive的groupBy和窗口的partitionBy有什么区别?从数据倾斜的角度讲
- 8.Flink各个窗口的区别?从源码的角度讲
- 9.Flink的前端页面可以看到Job运行过
14 腾讯
14.1 2020-12-数据开发
编程题
给一个日期:20200202
观察这个日期,同时满足两个特征:
1.左右对称
2.除数字0外,只有一个非零数字
编码实现以下两项:
1.输入任意日期,判断是否满足以上条件,测试用例:20200202,21211212
2.输出自19700101至今所有符合条件的日期
参考思路:
//还需要对输入进行校验,是否是正确的日期
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
System.out.println(date(“20200202”));
System.out.println(date(“21211212”));
}
public static boolean date(String s){
char[] arr = s.toCharArray();
boolean flag = true;
HashSet
for(int i = 0,j=arr.length-1;i
flag = false;
break;
}
set.add(arr[i]);
}
if(!set.contains(‘0’) || set.size()!=2){
flag = false;
}
return flag;
}
}
第二问只是说了下思路,可以用循环,循环条件为产生的日期大于等于今天,循环体为调用日期API加一产生新日期,每个日期 调用方法判断
组件题
hive数据倾斜是什么?怎么解决?
count distinct和groupby区别?为什么count distinct会把数据发到一个reducer?
因为count(distinct)只会起一个job,count聚合类只有一个reducer;
mapjoin怎么实现?多大算小表?小表在内存是什么数据结构
把小表利用hadoop的distribute
MRshuffle及优化?
redis和hbase各自的优缺点?
hbase为什么快?
hbase热点产生的原因?
hbase性能降低的时候sparkstreaming怎么解决反压的问题?
flink相比sparkstreaming优点?
flink挂了之后cp的整个加载流程?
15 袋鼠云
15.1 2020-12-数据开发
- Flink的join相关的源码你看过吗?
- CheckPoint源码和算法有了解过吗?
- Yarn的源码和参数配置相关的源码细节你知道吗?
- Flink On Yarn 之后 Yarn 会发生什么变化,源码里面的细节你知道吗?
- Flink中状态相关的源码你知道吗?比如可以修改状态大小,取出状态的值进行修改,再放回去,等其他状态相关的操作?
- Flink的为算子提供的状态的源码你看过吗?
- kafka分区数和Flink的并行度关系,这方面的源码你看过吗?
16 华为
16.1 2020-12-数据开发
1.Flink的指标
2.Flink怎么对接ES
自带的,创建ES对象,addSink(ES对象)
3.Flink遇到的问题
a:运行一段时间后发觉报错
报错信息: Size of the state is larger than the maximum permitted memory-backed state. Size=7061809 , maxSize=5242880 . Consider using a different state backend, like the File System State backend.
然后就修改了状态后端:为FS
b:长时间运行后,多次重启
报错信息:Could not materialize checkpoint
通过查询HDFS的日志后发现是路径配置错误了
错误的配置
正确的配置
c:背压问题
产生背压的时候常常出现在热门活动中, 短时间内流量陡增导致数据的堆积,系统整体的吞吐量无法提升。
ss和flink的区别:
Spark Streaming 在原有的架构上加入了一个 RateController,利用的算法是 PID,需要的反馈数据是任务处理的结束时间、调度时间、处理时间、消息条数,这些数据是通过 SparkListener 体系获得,然后通过 PIDRateEsimator 的 compute 计算得到一个速率,进而可以计算得到一个 offset,然后跟限速设置最大消费条数比较得到一个最终要消费的消息最大 offset。
Flink 背压是 jobmanager 针对每一个 task 每 50ms 触发 100 次 Thread.getStackTrace() 调用,求出阻塞的占比
4.使用ES遇到的瓶颈
5.Mysql的索引结构和同步机制
同步机制原理:
主库开启binary log,开启后每一次操作更新、修改、删除等都会记录在案,所以从库的同步过程其实就是获得这些过程,然后将现场还原,就达到了数据同步的目的。
Slave的线程分成两个线程,一个做binlogs的同步(我们称为IO线程),一个做还原现场的工作(我们称为SQL线程)
索引结构b+树:平衡多叉数,有索引页和叶子页,B+数的高度一般2-4层,只有叶子节点有数据,其他的都是索引,(快,小)
B+树索引可以分为聚集索引和辅助索引。
聚集索引就是按照每一张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。聚集索引的这个特征决定了索引组织表中的数据是索引的一部分。同B+树的数据结构一样,每个数据页都是通过一个双向链表来进行链接的。
由于实际的数据页只能按照一棵B+树的进行排序,因此每张表只能拥有一个聚集索引。
事务:原子性一致性持久性隔离性
隔离级别:读未提交,读已提交,可重复读,串行化四个!默认是可重复读
二、事务的并发问题
1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。
3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。
6.JVM的内存模型
方法区:常量池,字节码
堆:初始化对象,成员变量,数组
栈:由栈帧,调用方法就压栈,8大基本数据类型
本地方法栈:主要为Native方法服务
程序计数器:记录当前线程执行的行号
7.新生代GC什么时候触发
新生代内存不够用时候发生 MGC 也叫 YGC,JVM 内存不够的时候发生 FGC
8.新生代交换区???
9.谈谈java设计模式
10.多线程下单例模式的实现
饿汉天生线程安全
懒汉双null volatile singleton 和 syn(singleton3)
11.StackOverflowError和OutofMemoryError出现场景及怎么解决
递归->迭代 尾递归 | 数据倾斜->hash打乱 二次聚合
12.说说Zookeeper的Pzxos算法
Paxos:
是一致性算法,然后没了
13.谈谈你知道的分布式缓存算法
LRU
14.一天可以搭建flink集群并且把业务迁移过去么
给钱就做
17 vivo
17.1 2020-12-数据开发
0、自我介绍
1、数仓为什么是五层?(简历上写五层)
2、dwd,dws,dwt之间有什么区别?
3、dwd的表是全量的吗?为什么?
4、有一个订单表记录,根据你的数仓结构,说说怎么求出用户最近7天的最后一次下单记录?
5、hive去重的几种方法?
开窗 row number排名 order by 排序 where排名=1
distinst
group by
6、为什么要升级成Flink?(简历上写的)
7、为什么Flink可以处理乱序,给了个关注和取消的场景,问你如何实现最终一致性问题!
8、说说SparkStreaming和Flink的区别?
9、说说Flink的精准一次性!
10、开始我提问
总结:该面试官属于我回答什么就问什么类型,且行且珍惜
18 贝壳
18.1 2020-12-数据开发
1、你们这边数据量有多少呢,就是从ods到ads层一共多少数据量?
2、拉链表如果有一天的数据错了,比如说到12月15号,但是发现11月10号拉链的数据错了,导致后续拉链的结果都错了,这个应该怎么修正
拉链表的回滚问题,网上找答案
3、Parquet和Orc和Rc的比较?
4、列式存储是什么?行数比较大的情况,比如说上亿,那么列式存储是怎么做的?列式存储是为了解决什么问题?
5、dwd层有多少张表,每张表多少数据量
6、null值怎么打散,打散的伪代码或者sql
使用concat,split
7、如果一张表的某个字段作为join的字段,但是这个字段有倾斜的非常厉害,比如性别这个字段,有男1000万个,女5万,这时候数据倾斜如何解决?
8、一个SQL在MR中经过哪些过程,比如说
select a.id, b.id
from a
join b
on a.id = b.id
在MR中是怎么join的,left join在MR中是怎么实现的?
9、Kylin的构建过程是怎么样的
10、Kylin维度优化有几种类型
比如说强制维度,层级维度
11、Kylin的构建算法
逐层构建,快速构建
12、HBase的Rowkey优化
有多个维度,怎么设计Rowkey才能查询的快(就是维度要体现到Rowkey的设计里面)
比如有如下维度
year
month
day
省
市
事业部
大区
分行
工号
RowKey应该怎么排序呢,我把什么放在前面,有什么通用的原则吗,这样设计之查询速度能快呢?
19 阿里
19.1 2020-12-高级数据研发
1、自我介绍;
2、平台选型依据;
3、数仓分层、模型、每层都是做什么的?为什么这么做?
4、交叉维度的解决方案?
5、数据质量如何保证(DQC)?
6、任务延迟如何优化(SLA)?
7、聊一下数据资产。
8、spark streaming如何保证7*24小时运行机制?
9、spark streaming是Exactly-Once吗?
10、如果让你设计实时数仓你会如何设计,为什么?
11、聊聊hive的执行引擎,spark和mr的区别?
12、hive的jion底层mr是如何实现的?
13、指标如何定义?
14、sql问题:连续活跃n天用户的获取;数据倾斜的sql如何优化;数据量大的sql如何优化?
15、你有什么问我的吗?
19.2 2020-12-高级数据研发
1、你觉得某团的方法论和阿里的方法论有那些异同?哪个更好?
首先描述一下两个方法论的异同,然后回答没有最好的模型,只有最合适的模型
2、你觉得最有挑战的两个项目是什么,遇到了什么挑战,如何解决的,如果你的方案和合作方出现冲突如何解决?
自己发挥
3、简述mapreduce原理,map、reduce个数由什么决定;
4、如果让你设计实时数仓的中间层,你会用哪些组件,如何设计?
canal、kafka、flink、hbase。但是考虑到不可能把所有数据都放在kafka,所以结合flink的dataset去on hive来完成历史数据和实时数据的融合,相当于lambda架构中实时和离线提前融合,但是这有个问题,flink on hive的话会拖长整个实时计算的delay,可以考虑用Hologres来替代这个过程,把中间层做在Hologres里面。
5、sql题目:
/
问题1:有一个订单表A,分别有order_id(订单id)、user_id(用户id)、amt(金额)三个字段,用sql实现以下功能:
i. 求订单总量为top3的用户及交易笔数。
ii. 求每个用户top3交易金额的订单。
iii. 求订单总量从大到小排名在50%之前的用户。
/
/*
题目2:
以下表记录了用户每天的充值流水记录。
table_name:user_topup
seq(key) user_id data_dt topup_amt
流水号 用户 日期 充值金额(元)
xxxxx01 u_001 2017/1/1 10
xxxxx02 u_001 2017/1/2 150
xxxxx03 u_001 2017/1/2 110
xxxxx04 u_001 2017/1/2 10
xxxxx05 u_001 2017/1/4 50
xxxxx06 u_001 2017/1/4 10
xxxxx07 u_001 2017/1/6 45
xxxxx08 u_001 2017/1/6 90
xxxxx09 u_002 2017/1/1 10
xxxxx10 u_002 2017/1/2 150
xxxxx11 u_002 2017/1/2 70
xxxxx12 u_002 2017/1/3 30
xxxxx13 u_002 2017/1/3 80
xxxxx14 u_002 2017/1/4 150
xxxxx14 u_002 2017/1/5 101
xxxxx15 u_002 2017/1/6 68
xxxxx16 u_002 2017/1/6 120
统计累计充值金额最多的top10用户,并计算每个用户比他后一名多充值多少钱。
/
/
问题3:
用一条SQL 语句 查询出每门课程都小于80分的学生姓名和他的平均分。
name column1 column2
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 65
王五 语文 81
王五 数学 100
王五 英语 90
*/
6、如何解决数据一致性问题?
7、如何衡量你做的画像模型的好坏?
全(用户标签全)-稳(模型稳定,几乎不报错)-准(数据准)-优(能给业务带来正向的驱动)
19.3 2021-07-数据研发
1.kafka原理
2.kafka精准一次
3.Flink窗口,水印关系
3.Flink多流join,纬度变化如何处理,保证重启后匹配到历史维度数据
4.Flink窗口内再次触发指定时间输出结果的解决方案
5.大数据量下的全局排序
6.SparkStreaming 和Flink的区别
7.Flink背压的时候,下游如何通知上游可处理能力
20 微店
20.1 2020-12-高级数据研发
1、数据模型如何构建的,星型、雪花、星座的区别和工作中如何使用;
2、如何优化整个数仓的执行时长,比如7点所有任务跑完,如何优化到5点;
3、数据倾斜,遇到哪些倾斜,怎么发现的?怎么处理的?;
4、如何保证数据质量;
5、如何保证指标一致性;
6、了解onedata吗,说说你的理解;
7、数据漂移如何解决;
8、实时场景如何解决的;
9、拉链表如何设计,拉链表出现数据回滚的需求怎么解决。
21.微医
21.1 2020-12-数仓开发
1、自我介绍2、如何保障数据准确?采用了数据质量的监控,还可以
3、StreamSets有遇到什么问题吗?遇到资源消耗问题,通过加机器解决
4、SparkStreaming和Flink除了在处理模式和资源消耗还有什么区别吗?
暂时没有
5、SparkStreaming有遇到过数据积压的情况吗?怎么解决的?
由于Full GC引起的积压,driver端内存增大。
提高partition个数、增加executor个数
6、Spark的内存模型有过了解吗?
说出来JVM的内存结构。
7、看了哪部分的Spark的源码?
只了解了下driver的内存分配
8、数仓模型是怎么设计的?
分析业务—>声明粒度—->选择维度—->确定事实
9、事实表的类型?
可操作事实,没回答到点上
10、维度怎么设计的?
只说出了基于业务的维度划分、没有回答出维度类型
11、业务建模和三范式的区别?
一般
12、星型模型和雪花模型的区别
没回答到点上
13、用户画像标签是怎么设计的?
没回答到点上
14、spark调优?
运维层面较少、内存调优(driver,executor)
15、DataFrame和RDD的区别
一般
16、职业发展
数仓架构师、数分
21.2 2021-10-搜索推荐
1.hbase怎么做数据同步的
2.cap原理
3.arraylist linklist,hashmap实现原理
4.面向对象三大特性
5.python和java集合说一下
6.最有价值的项目和最有挑战的项目
7.es的倒排索引的数据结构
8.你是怎么学习一门语言,和一个开源框架的
9.百万人抢红包,如何保证两个人不会抢到同一个红包
10.flink消费问题
11.linux常见命令
12.pm如何去管理一个团队的项目进度
13.python你用来干什么的
14.hive数据倾斜
15.mapreduce的join过程
16.hdfs的数据一致性是怎么做的
22 bilibili
22.1 2021-06-实时计算
介绍有关flink的工作说下flink checkpoint的流程
flink怎么保证ck数据的一致性
flink 两阶段提交?
watermark 与 windows的关系?怎么确定一个窗口可以触发计算
说说状态state
keyGroup是用来做什么的?去掉可不可以?
flink背压?spark streaming/storm的背压?
说说 为什么你们选flink而不选sparkStreaming ?
介绍下canal
讲讲canal 中的Ringbuffer ,其与阻塞队列之间的不同?可不可以用阻塞队列替换?
canal会不会丢数据?元数据怎么保存?
在canal上的二次开发?
Java基础 锁 线程池 垃圾回收
线上有没有遇到cpu100% 或者 oom的情况?怎么解决的?
23 新浪
23.1 2021-06-数仓开发
新浪一面(电话面)Java基础
1.Java中有了解过final关键字么?都有什么样的用法?(用在类、方法、变量)
2.Java中有了解过hashmap么?底层原理是什么,简单讲讲。红黑树有了解过么,简单讲讲
3.使用过什么List么?(Arraylist,LinkList)
两个有啥区别吗?简单说一下
4.静态变量和实例变量的区别是什么?
5.python中的main函数和Java的main函数的区别是什么?
Scala基础
1.object和class类的区别
hive部分
1.简单说一下order by ,sort by 和distribute by的区别?
2.有过什么调优经验吗?
数据倾斜,然后说了一些关于数据倾斜的场景以及解决方案
3.map,reduce的参数调优有涉及过么?简单说几个
4.hive中行转列和列转行的情况,是用什么函数
SparkStreaming
1.常用的窗口算子有什么,举几个?简单说一下他们的用途
Linux常用命令
怎么查找某一个应用程序所占用的端口号,用到的是哪个命令?
SQL场景题,简单说思路
有一张表 表的结构如下,
想要找到各科成绩排名前10的学生的信息。
学生姓名 科目 成绩
a 英语 90
a 数学 95
a 语文 80
b 英语 90
b 数学 88
b 语文 91
……
23.2 2021-06-数仓开发
新浪二面(电话)1.有遇到数据倾斜的问题吗?怎么解决的?
2.看到你有一些hive 调优,spark调优,能分别说一些调优的点吗?
3.hashmap有了解吗?可以简单说一下底层原理吗?
4.spark 和mr的shuffle过程能简单说一下吗?
5.二次排序有了解吗?怎么设计的?其中key值是什么?第一列key值是用来是分区还是排序?
6.Java数据结构有了解吧?栈的底层实现是什么,也就是说数据怎么入栈和出栈的?
7.Java中的list有用到过哪些?ArrayList和LinkList的区别和使用场景分别说一下?
8.SparkSql和Hivesql的区别?
9.你有什么职业规划吗?未来对于自己的工作方向有何打算?
23.3 2021-06-数仓开发
1.Java的hashmap有了解吗?讲一下他的底层原理以及数据怎么存储的?2.Arraylist和Linklist的区别?
3.jvm有了解过吗?简单给说一下内存模型划分,包括哪些?(方法区、虚拟机栈,程序计数器,堆,本地方法栈)
简单说一下分别都是什么?
那GC机制有了解吗?(新生代,老年代等等,以及新生代中分为edson、surviver区等等,最后聊了一下具体怎么回收的一个策略)
4.Java中的双亲委派,有了解么?简单给说一下
5.如果给10G数据,内存只有2G,请问你怎么排序?给出思路
6.Hive的一些调优经验说一下
23.4 2021-06-数仓开发
微博(电话2面)
1.简单介绍了一下他们的业务以及岗位内容,看是否匹配?(一般都先说很适合自己)
2.聊一下项目中用到的技术栈都是什么,介绍了一下他们部门会用到的技术栈
3.聊一下hivesql的一个执行流程
4.聊一下hive的性能优化以及数据倾斜的解决办法
5.有没有意向做别的事,比如平台组件类的开发(为部门提供一个类似于工具类的一个东西)
6.然后聊一下 自己未来的一个规划,因为业务深入了解需要半年以上时间,不希望刚来一年就有跳槽打算。想了解一下职业规划
7.我问了一下他关于部门组织架构以及业务都是什么,(主要做搜索的)
23.5 2021-06-数仓开发
最右(一面,视频面)1.简单介绍一下自己,包括介绍一下自己项目经验
2.Hive的一些调优(我主要从数据倾斜,参数调优两方面说的)
3.了解MR流程吗?MR任务在执行过程中,有一个task挂掉了,会影响整体MR的任务执行吗?怎么解决这样的问题。
4.Spark有用过吗?Spark是on yarn的吗?
5.hive的udf和udtf有用过吗?
如果有一个数据集(表),如下形式:
起始IP 末尾IP 位置信息
0.0.0.0 0.0.0.255 中国北京西城
0.0.1.0 0.0.1.255 中国北京东城
0.0.2.0 0.0.2.255 中国北京朝阳
0.0.3.0 0.0.3.255 中国北京海淀
如果给一个ip 0.0.1.25 (随机给),要输出它的位置信息,这个udf,你怎么设计?
6.数据仓库的一个分层架构是什么,你能简单讲一下吗?
ods->dwd->dws->ads
我说到宽表的时候,他问我对于宽表是怎么设计的?我简单说了一下他的用途,以及宽表字段都包括什么
我说到ads报表的时候,他问我最终ads是怎么从dws这宽表中构成的,取了哪些字段,怎么从dws层输出的这张报表?
7.你们的维度表怎么存?我说存在ods层, 跟日志信息表存到一起
8.那你们维度表是怎么更新的?比如我有一个产品的维度表,更改其中一个字段的值
另外你们维度表是怎么导入的?全量还是增量?
(我说了第一次导入是全量,后面是增量导入,然后更新维度表的话,用到了拉链表的一个设计想法)
9.你有什么想问我的吗?
24 快手
24.1 2021-07-数据开发
快手一面: 1、自我介绍(大概40分钟)
2、关于治理内容(分为成本、质量、元数据三块讲解)
3、治理工作是如何推动的?(以成本治理为例子,讲述四步走策略)
4、sql题目
user_id enter_time leave_time
1 12:00 12:01
1 12:03 12:10
1 1:00 1:20
如果同一个用户上一个页面离开时间和下一个页面进入时间超过5分钟,则表示不同会话,统计该用户当天一共有多少会话
5、udaf编写(合并两个有序的数组为一个有序数组)
25 小电科技
25.1 2021-10-数据开发
1.你们数据链路流程能讲一讲嘛?
2.对于几千万和几千万数据的表做join发生倾斜的时候你们是如何处理优化hivesql的?
3.那如果是几亿之间的表做join发生数据倾斜你们是怎么优化的?
4.标签你们是怎么做的?
5.十几亿数据量去做top100用sql怎么办法用最快的方式完成
6.sql取各科成绩前20%的人
7.讲一下你影响最深的一个项目。
26 有赞
26.1 2021-10-数据开发
1.你们数据治理是怎么做的?
2.数据规范你们怎么定义的?
3.从你说的扩展一个新的业务,他是如何去做事实表的维度表的模型层的搭建?
4.你们one_id用户画像是怎么做打通的?
5.你们oneservice是怎么做的?
6.onemodel是怎么做的
7.讲一下数据对你们业务产生的价值点
8.数仓你们是怎么搭建的?从分层,模型搭建讲一讲
9.你们的指标怎么定义?怎么做的指标库
10.你们dqc设置了哪些?
27 饿了么
27.1 2021-10-数据开发
1.join有哪几种分别说一下
2.从定义的角度看,维度的定义和事实的定义有什么区别
3.你们维度表设计的
4.事实表怎么设计的
5。分桶表和分区表有什么区别
6.分桶要注意哪些规范,怎么分桶,分桶的个数怎么定
7.维表和事实表怎么产生关联的
1.三道sql题:
2.你对维度建模怎么理解的
28 吉利
28.1 2021-10-数据开发
1.sql题:a表销售id+销售时间,b表销售id+销售跟进时间,取出销售id的对应销售时间的最近的销售跟进时间
a表销售id+销售时间
id1 10:00
id1 12:00
b表销售id+销售跟进时间
id1 11:00
id1 11:30
id1 12:30
2.问数据建模的过程
3.你做tl多长时间了
4.你们的指标怎么保证一致性的?