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

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

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


文章目录

  • 高级ETL大数据工程师面试题
  • 1. 当数据源与ODS为不同数据库类型时怎么办?
  • 2. 直接连接数据库和使用ODBC连接各有什么优缺点?
  • 3. ETL过程中基于安全考量,你觉得哪些步骤应该写到磁盘上?
  • 4. 有哪些方式实现增量抽取?
  • 5. 怎么评估大型ETL任务的数据加载时间?
  • 6. 举例说明一下ETL中有哪些元数据?
  • 7. 你工作中有哪些方法验证ETL数据质量?
  • 8. ETL运行慢,可以从哪些方面进行分析?


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

你可能感兴趣的:(大数据,面试,数据库,etl)