高级ETL大数据工程师面试题
高级ETL工程师面试题
·
高级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
更多推荐
已为社区贡献1条内容
所有评论(0)