对于高级数据仓库工程师的问题更侧重于各种工具的细枝末节。
对于数据仓库架构师的问题更侧重于数据仓库的架构和总体认识。
对于数据仓库项目经理的问题除了以上的问题外,就是一般项目管理的技能了吧。
一、什么叫数据仓库?
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
- 面向主题:数据仓库是为了提供决策服务的,会建立不同的主题,而主题是进行决策时重点关注的部分;
- 集成:数据仓库可以整合来自不同数据源的数据,将这个数据入库、清洗、整合成统一的标准化数据,同时上文中提到的一个主题往往与多个系统相关,集成的数据很好地满足了主题构建的数据需求。数据仓库对原有的分散的数据库、文件进行数据抽取、清理的基础上经过系统加工、整理得到,清除原数据中的不一致性(面向事务的数据库往往单独存放单个系统的数据,且不同数据库相互独立,且是异构的);
- 相对稳定:数据仓库中的数据是面向决策的,这就表明了仓库中的数据进入之后一般会长期保留,主要面对的是查询,更新和删除操作很少,一般是定期地加载、更新;
- 反映历史变化:仓库中会保留各个时间节点的数据,以满足不断变化的业务需求。
二、数据仓库与数据库的区别?
数据库:按照数据结构来组织、存储、管理数据,建立在计算机存储设备上面的仓库,一般适用于操作系统,因为符合范式的设计模式,所以数据的一致性较好。
数据仓库:面向主题的、集成的、稳定的(不是时时刻刻变化)、反映历史变化的数据集合,可以包含多个数据库。
三、什么是OLAP?用途是什么?
OLAP:联机分析处理(online analytical processing),是数据仓库的主要应用,支持复杂的分析操作,侧重决策支持,并提供直观易懂的查询结果。
联机分析处理(OLAP)的概念最早由关系型数据库之父E.F.Codd于1993年提出,当时引起了很大的反响,同联机事务处理(OLTP)明显地区分开来。
当今的数据处理大致可以分为两大类:OLTP和OLAP,OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,比如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并提供直观易懂的查询结果。
另一种解释是:
- 联机分析处理(On-Line Analytical Processing, OLAP)是基于数据仓库的在线多维统计分析。它允许用户在线地从多个维度观察某个度量值,从而为决策提供支持。
四、什么叫维度和度量值?
一个是出发点,一个是观察值
五、数据仓库的基本架构是什么?
数据源,ETL,data stage,ODS,data warehouse,datamart,OLAP等等,可能为针对每一个结构进行发问啊。
六、什么叫缓慢维度变化?
为了表现和记录基础数据变化情况在数据仓库中的记录,包括三大类维度处理方式,缓慢变化维包括三小类。
七、什么叫查找表,为什么使用替代键?
其实目的和上面一样,从基础表到缓慢维度表的过程中的一种实现途径。
八、如何实现增量抽取?
主要采用时间戳方式,提供数据抽取和处理的性能。
九、用过什么ETL工具?
kettle, informatica,ssis,owb,datastage,以及该工具简单讲述特点。
十、ETL都包括那些组成部分?
工作流和数据流,数据流包括若干组件处理ETL的各个环节。
十一、用过什么报表工具?
superset, cboard, bo,hyperion,congo,reporting servce,以及该工具基本特点。
十二、数据仓库项目最重要或需要注意的是什么,以及如何处理?
一般答数据质量,主要是数据源数据质量分析,数据清洗转换,当然也可以定量分析。
十三、关于数据库部分的面试题(不是要DBA的,但是还是要具备DBA的部分知识结构)
- 用过什么数据库(SQLServer,Oracle, mysql, postgresql, hive, es),并能够讲述其物理和逻辑结构,以Oracle为主
- 能够写基本的SQL语句,分组函数和关联,开窗函数,通常会给几个例子的
- 如何进行性能优化,只要能答索引的基本原理以及各种索引的区别就行了
总之,事实上数据仓库和DBA或者其他技术不同,没有什么绝对的答案,只要能表达和描述清楚自己的观点就行了。
我的命运,由我做主。
书山有路勤为径,学海无涯苦作舟。
欢迎关注微信公众号:【程序员写书】
喜欢宠物的朋友可以关注:【电巴克宠物Pets】
一起学习,一起进步。
