数据工程师面经

江苏某金融科技公司 问题记录不按照顺序
一面 项目经理面
1.自我介绍
2.离职原因?投徐州岗位的原因?
希望在北方发展,恰巧离家近balabala
3.你主要负责的业务?
自我介绍有提到,大概还是说一下是负责1104基础类报表里面的流动性风险报表的的开发工作,与业务人员进行沟通同时根据项目上模型表来确定个报表的填报要求、取数口径和指标计算逻辑,还要负责从接口层到模型层的数据清洗工作,编写sql存储过程将接口层ods的数据进行去空,去重,去空格等操作后再加载到模型层dwd目标表中,最后还要根据监管方发布的校验规则对模型表中的各项数据进行校验。
4.你们的数仓是怎么分层的?每层分别是什么功能?
五层 模型
5.用到了什么调度工具?
Control-M、Moia、Taskctl、银行内部调度、Azkaban、Oozie、Quartz
(以上参考,但是我答错了)
6.主要用什么etl工具?
kettle
7.报表的格式?做报表的工具?
(还是不要参考我的答案,答错了)
8.写过什么存储过程?有没有写过几百行那种规模的存储过程?
9.主要用Linux命令做什么?
数据的自动化处理
10.如果有两张很大的表要进行关联,但是里面的数据并不是我所全部需要的,比如我只需要一部分,有什么方法可以加快关联的速度?
思路:
where 筛选
或者on;
在关联的列上面建索引;
分区?maybe
11.在工作中有没有什么sql优化的经验?
哭了,第一次面试没复习,没说出来几句,然后第二次面试之前特意准备了,他们没问
sql语句优化的方法
如果说sql语句比较简单,无法进一步优化,可以用增量并行数,比如把并行数提高到4-6
select /+parallel(hr.EMPLOYEES 4)*/ from hr.EMPLOYEES
如果sql稍微复杂写,涉及到关联筛选分组等,可以考虑
(1)能在where过滤的不要放到having中
(2)不要出现select *,select后面跟需要的字段
(3)不用子查询,用临时表来代替
(4)不用出现<>、or、like防止索引失效
(5)合理使用in和exists,外表大内表小的使用in,外表小内表大的使用exists
(6)查询执行计划有没有索引,如果没有的话,可以考虑将用于关联或者筛选的字段建索引(以空间换时间)
(7)from后面跟的表很大的话,可以考虑给表增加分区
(8)如果一次提交数量过大的话,可以考虑用游标来做循环,分步提交数据
(9)能用inner 就不要使用left
(10)尽量不用like,用instr
(11)可以truncate就不用delete
12.工作中觉得比较困难的地方在哪里?
数据的准确性(没有的字段但是要报送这种问题)以及时效性(固定的报送时间,并且还要预留一定的进行校验,如有错误还要重新搞数据)
另外沟通问题(因为要跟业务人员沟通取数相关的内容)
技术不大行的就说上面跟技术不太相关的内容
技术方面的参考:
跑批程序出现异常,之前能跑,后面不能跑了 是不是有一对多这种情况?
跑完之后没出来应有的数据 是不是源系统没来就没这个字段?
13.数据的导出用啥工具
大概可以转换为数据导入导出的方式
oracle中导入导出的方法
sqlldr 导入 sqluldr2导出
imp 导入数据泵 exp 导出数据泵
impdp 服务器端导入数据泵 expdp 服务器端导出数据泵 ,效率最高
14.用的是什么数据库
Oracle 11g

二面
银行客户那边的面试 (当时HR告知的是业务与技术都会面到,但是还是比较偏业务一点)
业务这里还是要多看一下自己负责的部分,熟悉表里面有哪些字段,哪些指标,虽然看起来业务部分的问题不太多,但是其实占面试的比重还是比较大的
1.自我介绍
2.数仓是怎么分层的?每层大致的功能?
同上
3.是怎么从上层取数的?取数的逻辑是什么?像是流动性期限分了几个种类,你怎么取出每个种类的数据?
我这里说的是从modu层取数
按照期限去见的码值,通过码值筛选
4.报表是用什么工具做的?
5.行列转换用哪个函数?
我这里答得是wm_concat,但是好像是pivot最正确
6.left join与join(inner join)的区别
老生常谈
left join 左外连接,以左边为主表,主表的数据全部显示,关联右侧的表,关联上的关联,关联不上的右侧的字段显示空值
inner join 内连接,左右两边关联上的关联,关联不上的不显示
7.有没有写过存储过程?
真的就是疑问句,答案是或者否,居然没往下问写过啥存储过程(也有可能他想让我自己延伸一下,但是我没get到)
7.Hadoop这里是学校教的还是自己学的,了解的程度如何?
自己学的,大概了解Hadoop的各种组件,稍微延伸一下吧,说点自己知道的
8.Python的了解程度?
爬虫 数据分析(三剑客Numpy,pandas,matplotlib) 文本分析 一点机器学习相关的内容 sklearn库
9.用过窗口函数没?怎么分组排序的?
row_number()OVER(PARTITION BY ORDER BY DESC)
以及聚合函数与窗口函数的结合
12.用的是什么数据库
Oracle 11g

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值