
1) 【一句话结论】数据仓库构建的ETL流程需分数据抽取(全量/增量)、转换(清洗、映射、标准化)、加载(批量/实时)三步,通过事务控制、数据校验、增量变更日志等机制保障一致性,以360安全日志为例,通过日志采集器抽取原始日志,经清洗、标准化后加载至Hive表,利用时间戳和变更日志确保数据一致性。
2) 【原理/概念讲解】同学们,数据仓库的ETL流程是核心,先讲“抽取”:从源系统(如360安全日志服务器)获取数据,分全量(首次建库)和增量(后续更新);“转换”是处理数据,比如清洗重复、解析结构化、映射字段;“加载”是把转换后的数据写入目标仓库(如Hive)。数据一致性怎么保证?比如抽取时用事务,转换时做数据校验(如字段非空、格式正确),加载时用事务或时间戳,增量抽取时记录变更日志(如新增/修改/删除的时间戳)。
3) 【对比与适用场景】
| 抽取方式 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 全量抽取 | 每次抽取全部数据 | 逻辑简单,但数据量大 | 首次建库、数据量小 | 占用资源多,实时性差 |
| 增量抽取 | 仅抽取变化数据(如时间戳、变更日志) | 资源高效,实时性好 | 持续更新、数据量大 | 需维护变更日志 |
4) 【示例】以360安全日志为例,假设日志存储在Kafka主题“security_logs”,步骤:
INSERT OVERWRITE语句,确保数据覆盖。5) 【面试口播版答案】面试官您好,数据仓库构建的ETL流程设计,核心是分三步:数据抽取、转换、加载,同时通过事务控制、数据校验、增量抽取机制保障一致性。以360安全日志为例,我们通过日志采集器(如Logstash)从安全设备抽取原始日志,经清洗(过滤无效行)、解析(JSON转结构化)、标准化(字段映射)后,加载到Hive表,利用时间戳和变更日志实现增量更新,确保数据一致性。
6) 【追问清单】
7) 【常见坑/雷区】