数据仓库与BI面试常见题目

Posted 勿忘初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库与BI面试常见题目相关的知识,希望对你有一定的参考价值。

一、 数据库


1、 Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用?materialized view


答:a:视图是虚拟表,提高了表的安全性,视图没有实际物理空间,而表有实际存储的物理空间


         b:物化视图存储了实实在在的数据,而普通视图之存储了定义


         c:物化视图的优点像索引一样,提高查询性能。当基表发生变化时,物化视图也应当刷新。


       物化视图是数据库中的一种存储数据的对象,和表一样,存储了数据。用于预先计算并保存表连接或者聚集等耗时较多的操作。这样,在执行查询的时候,就可以避开连接、聚集等耗时的操作,从而快速的得到结果。它可以查询表,视图甚至是其他物化视图中的数据。和视图不同的是,它存储了实实在在的数据,而视图只是存储了定义而已,所以,也是可以在物化视图上创建索引的。物化视图在很多方面,和索引很相似:使用它的主要目的是为了提高查询性能;物化视图对应用是透明的,增加或者删除物化视图不会影响应用程序中查询语句的正确性和有效性;物化视图会占用存储空间;当基表发生变化时,物化视图也应当刷新。通常情况下,物化视图被称为主表(在复制期间)或者明细表(在数据仓库中)。


2、 Oracle数据库,有哪几类索引,分别有什么特点?


答:三类索引


a:B树索引


b:文本索引


c:位图索引


3、 Union与Union All的区别?


Union 会去掉重复,效率比 union all 低


4、 对游标的理解?游标的分类?使用方法?


显示游标:自己打开关闭


隐式游标:自动打开关闭


5、 如何查找和删除表中的重复数据?给出方法或SQL。


查找表中重复数据


select ID1,email from email e1

 where rowid  < (select max(rowid) from email e2 where e1.email = e2.email AND e1.id1 = e2.id1);


删除表中重复数据

 delete ID1,email from email e1

  where rowid  < (select max(rowid) from email e2 where e1.email = e2.email AND e1.id1 = e2.id1);


 select ID1,email from email e1

  where rowid  > (select min(rowid) from email e2 where e1.email = e2.email AND e1.id1 = e2.id1);


6、 不借助第三方工具,怎么查看SQL的执行计划?


Set autotrace on EXPLAIN PLAN FOR


7、 创建索引有哪些需要注意的要点?


根据每个索引的特点说出建立时应注意的问题。


8、 Oracle数据库中,有哪几种分区?各自特点是什么?作用是什么?分区索引的分类和作用?


范围分区:根据某个值的范围


Hash分区:散列分区,是数据均匀分布


复合分区:先范围分区再Hash分区


增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;


 维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;


 均衡I/O:能把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;


 改善查询性能:对分区对象的查询能仅搜索自己关心的分区,提高检索速度。



9、 表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql。


select * from email where rownum <=30 

 minus

 select * from email where rownum <=20


order by 2  //代表第二列


10、  备份如何分类?归档是什么含义?


1:     逻辑备份:exp/imp

  物理备份:

   RMAN备份

   full backup/incremental backup(累积/差异)

  热备份:alter tablespace begin/end backup;

  冷备份:脱机备份(database shutdown)


关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。

   其对数据库备份和恢复有下列用处:

   数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。

   在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。


  数据库可运行在两种不同方式下:

   NOARCHIVELOG方式或ARCHIVELOG 方式数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。


 


11、 如果系统现在需要在一个很大的表上创建一个索引,需要考虑那些因素,如何做到尽量减小对应用的影响?


12、 是否有海量数据处理经验?有何方法?


 


二、 ETL工具


1、 Informatica中,Update组件叫什么?更新机制?


2、 Informatica中,LookUp组件有哪几类?区别是什么?


3、 Informatica中,如何调用存储过程?


4、 Informatica中,工作流控制有哪些组件?


5、 Informatica优化方案?


6、 DataStage的JOB有哪些类型?特点分别是什么?


7、 DataStage中,如何设置parallel job并行运行?


8、 DataStage中,Join Stage 与 Lookup Stage组件在使用上有何区别?


9、 DataStage的优化方案?


 


三、 模型设计


      http://wenku.baidu.com/view/01ace46427d3240c8447efdf.html


1、 有哪几种模型设计方法?特点分别是什么?


2、 模型设计的步骤?


3、 维度模型的设计方法?


4、 模型设计的思路?业务需求驱动?数据驱动?


3、模型设计经验说明。在概念模型设计、逻辑模型设计以及物理模型设计几个阶段主要的工作是什么?


 


四、 Cognos开发


1、 Cube刷新方案?


2、 报表数据权限控制方案?


3、 Cube增量刷新方案?


 


五、 Shell开发


1、 在Unix/Linux中,查看磁盘空间可以用哪些命令?


df -hl


2、 在Unix/Linux中,压缩和解压缩文件可以用哪些命令?


tar zxvf 解压


tar czvf 压缩


3、 sed命令的作用?


对文本进行操作,一次处理一行


http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html


4、 在Unix/Linux中,添加用户用什么命令?


5、 在Unix/Linux中,查看文件行数什么命令?


 wc -lcw file1


l:行数


w:字数


c:字节数


六、 数据仓库设计


1、 增量数据获取方案?


2、 请解释以下概念:数据集市、事实表、维度表、OLAP


http://blog.sina.com.cn/s/blog_68ff317d0100zafa.html


3、 元数据管理在数据仓库中的运用有何心得?


4、 数据仓库系统的数据质量如何保证?方案?


5、 数据仓库系统组件接口设计方案?


 


七、 项目管理


八、 其他


1、 能否出差?


2、 期望薪资待遇多少?


3、 个人发展方向?


以上是关于数据仓库与BI面试常见题目的主要内容,如果未能解决你的问题,请参考以下文章

关于数据仓库工程师的一般面试题目

BI和数据仓库:企业分析决策真的离不开数据仓库吗?

BI数据仓库数据湖和数据中台内涵与差异

大数据数据仓库-微软BI SSIS ETL 控件与案例

维度表, 事实表, 数据仓库, BI...

《数据仓库工具箱 - 纬度建模权威指南》--- 第一章 数据仓库商业智能及纬度建模初步读书笔记