大数据|大数据ETL面试常见问题

大数据|大数据ETL面试常见问题

文章图片


【大数据|大数据ETL面试常见问题】1、什么是映射?

在etl过程中 , 源表和目标表的对应关系就是一种映射关系 , 在逻辑模型中 , 表和表之间的关系也叫映射 。 Mapping=映射 。

2、什么是ETL?
Etl , 英文名称是extract—transform—load的缩写 , 用来描述将数据从来源端经过抽取 , 转换 , 加载至目标端的过程 。
3、kettle抽数一般遇到什么问题 , 是怎么解决的?
Kettle在不同的数据库抽取数据时 , 有时会出现中文乱码的问题
解决方法:如果数据设置正确仍然中文乱码 , 则可能是因为有的客户端数据库默认的编码集不是utf-8 , 只需要在输出时对数据库进行编码设置即可 。
4、如果抽取的数据有重复 , 怎么解决?
在kettle的核心组件里 , 有一个字段选择 , 里面有一个去除重复记录(uniq rows (hashset))的控件 , 在抽数的时候 , 可以通过这个控件对数据进行去重 。
具体操作:创建几个和新对象 , 分别是输入—>表输入 , 将数据根据字段排序 , 数据去重 , 将去重好的数据输出到另一个表中 , 这里需要注意 , 数据去重前必须要根据相关字段排序 。
5、etl脚本开发以后 , 怎么运维?
一般会定期巡检 , 一般2周做一次检查 , 检查etl脚本跑数是否正常 , 是否报错 , 分析脚本跑数的时间 , 是否越跑越慢 , 在这种情况下 , 需要分析脚本和目标表 , 比如目标表是否后来建了索引 , 导致更新表的时候越来越慢 , 索引会影响更新表的效率 。 如果是这种情况 , 可以先删除目标表的索引 , 更新完了以后在重新创建索引 , 这样可以提高跑数效率 。
6、一张特别大的表 , 怎么通过etl工具同步?
在etl工具中 , 我们插入数据的时候 , 在设置批量提交 , 比如10万记录提交一次 , 而不是一次性提交 。
另外如果特别慢的话 , 还要考虑是否锁表了 , 比如目标表进行更新的时候 , 转换的状态一直不变 , 可能是目标表产生了排它锁 , 导致无法更新 , 这个要具体分析 。

7、Etl测试主要包括:
(1.)数据量测试 。
(2.)数据转换测试 。 主要是对数据格式的合法性进行验证 。 测试参考点主要包含:
时间、数值、字符等数据的处理 , 是否符合数据仓库规则;是否进行统一的转换;是否有超出维表或者业务值域的范围;是否捕获字段空值 , 或者需要对空值进行替换为其他的含义值的处理;
逐渐是否唯一;
特殊符号或者乱码符号的处理规则;
脏数据的处理
(3.)抽样测试 。 在转换完成之后要对转换之后的关键字段验证 , 还有源表和目标表的映射是否正确
(4.)etl加载策略测试 。 包含:全量加载(先清空在插入)和增量加载(目标表仅更新源表变化的数据) 。