文章目录
- 1. 请介绍一个数据建模相关项目
- 2. 你在工作中常用的建模工具有哪些?
- 3. 数据库三范式
- 4. 对概念、逻辑、物理建模的理解
- 5. 模型设计有哪几步?
- 6. 有哪些模型设计方法?
- 7. 维度模型分哪几种?
- 8. 维度模型中表的分类
- 9. 如何判断哪些表是增量表,哪些是全量表?
- 10. 你们的模型是如何分层的,为什么?
- 11. 如何做元数据管理?
- 12. 项目进行到一半,需要增加一个维度怎么办?
- 13. 建模完之后,发现某个事实表巨大无比怎么办?
- 14. 如何做数据质量管理?
前言:最近公司又要招一个数据建模工程师,所以我也要负责建模工程师的技术面。总结了下数据建模的面试问题,如有错误,欢迎沟通。
唉,就一打杂的命;主业毫无进展,就天天打杂了。
1. 请介绍一个数据建模相关项目
[需要能讲清楚自己干了啥子玩意儿]
2. 你在工作中常用的建模工具有哪些?
[基础题,查看是否有真实的使用经验]
powerdesigner、Balsamiq Mockups、ER/Studio、CA ERwin…
3. 数据库三范式
[基础中的基础]
- 每个属性值唯一,不具有多义性 ;
- 每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;
- 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
4. 对概念、逻辑、物理建模的理解
- 概念建模:得出实体即可
- 逻辑建模:将实体细化成具体的表,同时丰富表结构
- 物理建模:创建数据库对象,针对业务需求,我们也可能做如数据拆分
5. 模型设计有哪几步?
- 确定主题:确定数据分析或前端展现的主题
- 确定度量:确定主题后,需要考虑分析的技术指标。它们一般为数据值型数据
- 确定事实数据粒度:确定量度之后,需要考虑该量度的汇总情况和不同维度下量度的聚合情况
- 确定维度:维度是分析的各个角度。维度的层次(Hierarchy)和级别(Level)
- 创建事实表:在确定好事实数据和维度后,将考虑加载事实表
6. 有哪些模型设计方法?
- 范式/关系建模:主要解决关系型数据库得数据存储,符合三范式
- 维度建模:按照事实表,维表来构建数据仓库
7. 维度模型分哪几种?
- 星型模型:核心是一个事实表及多个非正规化描述的维度表组成
- 雪花模型:它是星型模型的扩展,不同的是维度表被规范化,进一步分解到附加表中
- 星座模型:由多个事实表组合,维表是公共的,可以被多个事实表共享。星座模型是数据仓库最常使用的模型
8. 维度模型中表的分类
- 实体表:主要是一些对象表比如用户,商家,商品
- 维度表:指一些业务状态,编号的解释,又叫码表,像地区表,订单状态,支付方式,审批状态。状态分类
- 周期性事实表:状态还会改变的就是周期型事实表
- 事务型事实表:数据产生就不在变化,可判断为事务型事实表
9. 如何判断哪些表是增量表,哪些是全量表?
实体表和维度表统称维度表,可做定期全量[按ETL周期来]
事务性事实表,可做每日增量[按ETL周期来]
周期性事务表,可做拉链表
10. 你们的模型是如何分层的,为什么?
[言之有理即可]
- 贴源层:保存原始数据,结构清晰,不会影响
- 明细层:经过ETL处理,数据更规范化
- 汇总层:大宽表,减少重复开发
- 应用层:面向业务需求定制开发
11. 如何做元数据管理?
字段级元数据管理。一定要做到及时元数据备份[至少每日]
12. 项目进行到一半,需要增加一个维度怎么办?
- 按照5分析新增维度
- 分析新增维度与现有维度的关系
13. 建模完之后,发现某个事实表巨大无比怎么办?
散列,数据倾斜处理巴拉巴拉…
14. 如何做数据质量管理?
元数据管理、数据完整性、数据一致性、数据合规性、数据冗余、数据资产分级…