光阴似箭,岁月如刀。小编已经从刚毕业时堤上看风的白衣少年,变成了一个有五年开发经验的半老程序员。五年——是一个非常重要的时间节点,意味你见过很多套技术构架,学过很多技术组件,写过很多行代码,有了自己的技术理解、知识体系和编码风格。这个时候我们对待技术的态度已经从扩宽广度,慢慢转变成沉淀深度为主了。
也是刚刚面试了北京各大厂,顺利拿到4个offer,趁热打铁,呕(dao)心(chu)沥(fu)血(zhi)总结了一些数据仓库的面试基础知识,希望能帮到大家,有需要内推的小伙伴加文末微信。
数据仓库面试基础知识
==============
1、什么是数据仓库?
权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
1)数据仓库是用于支持决策、面向分析型数据处理;
2)对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改
2、数据仓库和数据库的区别?
从目标、用途、设计来说
1)数据库是面向事务处理的,数据是由日常的业务产生的,并且是频繁更新的;数据仓库是面向主题的,数据来源多样化,经过一定的规则转换得到的,用于分析和决策
2)数据库一般用来存储当前事务性数据,如交易数据;数据仓库一般存储的是历史数据
3)数据库设计一般符合三范式,有最大的精确度和最小的冗余度,有利于数据的插入;数据仓库设计一般不符合三范式,有利于查询
3、如何构建数据仓库?
数据仓库模型的选择是灵活的,不局限与某种模型方法;数据仓库数据是灵活的,以实际需求场景为导向;数仓设计要兼顾灵活性、可扩展性、要考虑技术可靠性和实现成本
1)调研:业务调研、需求调研、数据调研
2)划分主题域:通过业务调研、需求调研、数据调研最终确定主题域
3)构建总线矩阵、维度建模
总线矩阵:把总线架构列表形成矩阵形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上标记表示该业务处理过程与该维度相关(交叉探查)
4)设计数仓分层架构
5)模型落地
6)