数据仓库与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、 备份如何分类?归档是什么含义?
逻辑备份:exp/imp
物理备份:
RMAN备份
full backup/incremental backup(累积/差异)
热备份:alter tablespace begin/end backup;
冷备份:脱机备份(database shutdown)
关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。
其对数据库备份和恢复有下列用处:
数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
数据库可运行在两种不同方式下:
NOARCHIVELOG方式或ARCHIVELOG 方式数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。
11、 如果系统现在需要在一个很大的表上创建一个索引,需要考虑那些因素,如何做到尽量减小对应用的影响?
nologging方式create,否则产生大量的redo。
根据当前的数据库及系统压力情况,进行适当并行创建。
加大sort_area_size
二、 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中,添加用户用什么命令?
add user
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面试常见题目的更多相关文章
- java异常面试常见题目
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它 ...
- java面试常见题目
JAVA相关基础知识面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用 ...
- C#面试常见题目
1.CTS.CLS.CLR分别作何解释 CTS:Common Type System 通用系统类型.Int32.Int16→int.String→string.Boolean→bool CLS:Com ...
- mysql面试常见题目2
Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 sName 姓名 VARCHAR(20) 否 否 是 否 否 Sex ...
- JavaScript求数组Array的并集(javascript面试常见题目)
var Utils = { joinArray:function(source,target){ for(var i = 0;i<source.length;i++){ var oa = sou ...
- mysql面试常见题目
第一题 某班学生和考试成绩信息如下表Student所示: Student表 ID SName Mark 1 Jack 90 2 Marry 96 3 Rose 88 4 Bob 86 5 John 8 ...
- mysql面试常见题目3
三十六大 冯唐 春水初生, 春林初盛, 春风十里,不如你. 秋风落叶, 秋雨绵绵, 愁心上秋,只为你. 某个员工信息表结构和数据如下: id name dept salary edlevel hire ...
- Net基础篇_学习笔记_第九天_数组_冒泡排序(面试常见题目)
冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 ...
- Android常见面试笔试题目
Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...
随机推荐
- php 命令行方式运行时 几种传入参数的方式
1. url方式 $param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as ...
- Android 应用开发实例之文件管理器
2013-07-02 10.2 文件管理器 能够浏览和管理手机/存储卡上的文件和文件夹,包括重命名.删除.新建.复制.粘帖等文件操作. 由于需要浏览大量的文件/文件夹,所以需要使用一个ListView ...
- Google发展史 Google十三年
http://blog.csdn.net/terryzero/article/details/5910617 "1997年9月15日,Larry Page 和 Sergey Brin 正式注 ...
- python --特殊方法与多范式
转自:http://www.cnblogs.com/vamei/archive/2012/11/19/2772441.html Python一切皆对象,但同时,Python还是一个多范式语言(mult ...
- ASIHTTPRequest 简单使用
ASIHTTPResquest 框架功能强大,应用非常多. 曾经写过ASIHTTPResquest的导入,如今就看一下基本使用 记一下当中基础的操作: 1.发送同步请求: NSURL * url = ...
- ubuntu下载软件安装包
apt-get -d download xxx ubuntu下载软件安装包命令.仅仅下载deb格式的安装包,不安装. xxx是待下载的安装包.
- JUC组件扩展(三):BlockingQueue(阻塞队列)详解
一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大 ...
- 简洁经常使用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
权限系统.Web开发常见标准子系统之中的一个.结合自己的一些思考和实践,从本篇開始权限系统的设计与实现之路. 近期,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇.仅仅是大致介 ...
- Atitit.软件仪表盘(4)--db数据库子系统-监测
Atitit.软件仪表盘(4)--db数据库子系统-监测 连接数::: 死锁表列表:死锁基础列表(最近几条记录,时间,sql等) 3.对服务器进行监控,获取CUP,I/O使用情况 4.对数据库进行 ...
- solr 简单搭建 数据库数据同步(待续)
原来在别的公司负责过文档检索模块的维护(意思就是不是俺开发的啦). 所以就略微接触和研究了下文档检索. 文档检索事实上是全文检索.是通过一种技术把N多文档进行一定规律的分割归类,然后创建易于搜索的索引 ...