数据仓库工程师面试题

本文介绍了数据仓库的基础概念,包括数据仓库的特性、ETL(抽取、转换、加载)过程及其重要性。讨论了市面上常见的数据仓库工具如Hive,以及ETL日志管理和警告发送。同时,详细阐述了ETL开发的步骤,从数据抽取到数据清洗、转换和加载,以及数据仓库的不同层级如STG、ODS和DW层的功能与开发细节。文章还涉及了数据仓库的优化策略,如增量加载、分区和并行处理等。
摘要由CSDN通过智能技术生成

什么是数据仓库?
数据仓库,英文名称date warehouse 简称DW,数据仓库,就是一个很大的用来存储数据的集合,用于解决企业数据分析性和决策目的创建,对多样的数据进行筛选与整合,指导业务流程曾改进,成本,质量以及控制。
数据仓库的输入方就是各种各样的数据源,最终的输出用来为企业做数据分析,数据挖掘和数据报表。

数据仓库特点:

  1. 主题性 不同于传统数据库对应于某个或多个项目,数据仓库根据使用者实际要求,将不同数据源的数据在一个较高的抽象层次上做一个擂台,所有数据都围绕某一个主题来组织。
  2. 集成性 数据仓库中存储的数据是来源于多个数据源的集合,原始数据来自不同的数据源,要整合为最终的数据集合,需要把数据源经过抽取>清洗>转换的过程。(其实这就是ETL)
  3. 稳定性 数据仓库中保存的数据是一系列历史快照,不允许被修改。用户只能通过分析工具进行查询和分析
  4. 时变性 数据仓库会定期接受新的集成数据,反应出最新的数据变化。(这个是稳定性并不矛盾)
    数据源多种多样,那么数据仓库要做数据集成,所依赖的就是(ETL)

什么是ETL?
ETL的英文字母是EXTRACT-TRANSFORM-LOAD的缩写。
Extract :数据抽取,也就是把数据从数据源读取出来
Transform:数据转换,把原始数据转换成期望的格式与维度。如果用在数据仓库的场景下,transform 也包括数据清洗,清洗掉噪音数据。
Load:数据加载,把处理后的数据加载到目标处,比如数据仓库。

市面上常用的数据仓库有哪些?
Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理。Hive同时也提供了类似与SQL语言的查询语言hiveql,在做查询时将hql语句转换成mapreduce任务进行执行。

ETL日志,警告发送

  1. ETL日志
    ETL日志分为三类
    一类是执行过程日志,这一部分日志是在ETL执行过程中每执行一步的记录,记录每次运行每一个步骤的起始时间,影响了多少行数据,流水账形式。
    一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间,出错的模块以及出错的信息等。
    第三类日志是总体日志,只是记录ETL开始时间,结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。
  2. 警告发送
    如果ETL出错了,不仅要形成ETL出错日志,而且要向系统管理员发送警告。发送警告的方式多种,一般常用的就是给系统管理员发送邮件,并敷上出错的信息,方便管理员排查错误。

ETL开发
概述:ETL是数据仓库的后台,主要包括抽取,清洗,规范化,提交四个步骤,传统数据仓库一般分为四层模型。 作用:划分ETL阶段工作重心,便于管理
STG:与源系统模型一致 增量/全量抽取 不做数据转换 添加审计列。 作用:降低开发和维护成本
ODS: 与源系统模型一致 全量数据 标识逻辑删除 标识逻辑删除 标识增量时间戳 添加审计列 作用:减少需求变化带来的冲突
DW : 维度模型 增量抽取 数据清洗、规范化 添加审计列 作用:便于数据问题跟踪

STG层
在维度建模阶段已经确定了源系统,而且对源系统进行了数据评估。Stg层是根据cdc策略把各个源系统的数据抽取到数据仓库中,stg层主要是面向批处理的形式,如果是根据日志信息实时同步,可以跳过stg层直接进入ods层。

Stg的作用
1.减轻源系统的压力
2.数据备份,支持重跑
3.便于数据问题跟踪
4.数据质量检查

开发步骤

  1. 确定CDC策略,根据源系统的数据状况选择一个合适的CDC策略
  2. 设计mapping文档
  3. 设计物理模型,stg的物理模型一般包括源系统的所有字段和审计字段,例如:原系统名称,源表名称,加载时间,加载方式。可以去掉其他约束条件,比如主键,索引,默认值。如果源表和目标表的数据库类型不同,最好字段长度要进行扩充,一般目标表的数据类型就选择几种常用,长度就选择几个固定的长度
  4. 抽取数据,stg层面向异构数据源,最好选择用ETL工具,一般ETL工具都支持多种数据源,stg层不做数据转换。
  5. 加载数据,stg层一般保留7天或一月的数据

ODS层
ODS层是把stg层数据进行历史存档,保留源系统的所有历史数据,如果是流式的,可以跳过stg层,试试同步到ods层

ODS的作用

  1. 全量存储源系统的数据
  2. 支持下游系统实时查询服务
  3. 数据质量检查

开发步骤

  1. 设计mapping文档
  2. 设计物理模型,ods的物理模型一般包括源系统的所有字段和审计字段,但是和源系统最主要的区别是ods层加
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值