高级ETL大数据工程师面试题

这部分面试题是用来面试高级ETL工程师的,初中级只需要问sql与kettle工具即可。
参考:大数据ETL之Kettle基本理论与安装部署



1. 当数据源与ODS为不同数据库类型时怎么办?

α 将源数据导出为文本文件,再将文件导入ODS【会增加传输步骤】
β 如果能建立ODBC连接则直接使用【会对源数据系统造成压力】

2. 直接连接数据库和使用ODBC连接各有什么优缺点?

优点缺点
直连(PL/SQL、COBOL等)运行性能高通用性差
ODBC性能差灵活性(不同数据库只需要换驱动)

3. ETL过程中基于安全考量,你觉得哪些步骤应该写到磁盘上?

*Staging Area(数据准备区)的每一步都要写到磁盘上
例如:连接源系统数据抽取阶段,将抽取的数据保存到数据准备区(类似于ODS),而不是不让数据落地。

4. 有哪些方式实现增量抽取?

增量机制支持类型数据完备抽取性能源系统影响实现难度
1.触发器RMDB容易
2.时间戳RMDB,表具有时间字段较优很小容易
3.全表对比RMDB;文本格式一般
4.日志表RMDB容易

5. 怎么评估大型ETL任务的数据加载时间?

数据加载分两大类,一个是初次全量加载;另一类是增量加载
全量加载:
α.分为抽取、转换、加载三部分,然后时间加起来
β.按数据总量的10%处理任务,然后总时间*10
增量加载
α.可参考全量加载,但是因为增量数据量少,分析更容易
β.参考上一次增量的时间直接评估(增量每天/次的数据量是差不多的)

6. 举例说明一下ETL中有哪些元数据?

业务元数据:业务角度对数据的描述
技术元数据:技术角度对数据的描述,如数据类型、长度
过程处理元数据:ETL处理过程中的统计数据,如加载总记录数、失败总记录数

7. 你工作中有哪些方法验证ETL数据质量?

α.校验每天的记录数【>0】
β.Null和0的校验【null和0的记录总数不能超过当日新增的99%】
γ.每天新增记录的波动范围【范围可控】
δ.重复记录数校验【不可能两条数据完全一样】
ε.数据时间校验【数据采集时间小于当前时间】

8. ETL运行慢,可以从哪些方面进行分析?

α.CPU、内存、I/O、网络
β.代码导致的运行慢,隔离不同的操作逐步分析
隔离并执行抽取查询语句
去掉过滤条件
排除查找表的问题
分析排序和聚合操作
隔离并分析每一个计算和转换
隔离更新策略
检测加载数据的数据库I/O

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐