今天下午到一家主要给保险业和银行业做软件的公司面试一个数据仓库开发的职位,自己不甚了解,记录一下过程。
1.自我介绍。
2.说一下做过的项目,在项目中做的工作,又具体询问到实习时候做的具体工作。
3.数据库中表和视图的区别。
4.问到SQL语句,出题目问“A,B两个表,写出在A中的id字段,满足在A中的id同时也存在于B中”。我想到"select A.id from A, B where A.id=B.id",然后又问如果寻找在A中的而不在B中的id呢?没想出来。
5.问到外连接的概念,left join与inner join的区别。
6.谈一下对数据仓库的理解,建立数据仓库的主要目的。
7.数据仓库中维的概念,什么是多维数据,度的概念。
8.数据仓库中的星型结构和雪花型结构。
9.数据库三范式概念,并举例说明,再说明一下三范式的用处为何,问我是否有设计过数据表。
10.问到Oracle数据库中的Schema模式的概念。
11.让我谈谈了解的基本算法和数据结构,我说了几个基本的排序算法,二分搜索,树的遍历之类的,他问了下二分搜索。
12.问我的研究方向是什么,以后想做计算机哪个方面的工作。
13.什么是面向对象,面向对象程序设计的目的是什么,有什么好处,C++和JAVA的对比。
14.ETL的含义,全称。
ETL,Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。ETL是数据仓库中的非常重要的一环。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。