《招行-DW-BI-数据面试题及答案.docx》由会员分享,可在线阅读,更多相关《招行-DW-BI-数据面试题及答案.docx(7页珍藏版)》请在课桌文档上搜索。
1、DW/BI数据库面试题一、基础题1 .简单描述TableExtentSegmentBlock之间的关系.table创建时,默认创建了一个datasegment,每个datasegment含有minextents指定的extents数,每个extent据据表空间的存储参数分配一定数量的blocks2 .描述Tablespace和Datafile之间的关系.一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内,table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,dat
2、afile则在物理上储存了数据库的种种对象。3 .描述日志的作用.记录数据库事务,最大限度地保证数据的一致性与安全性重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。4 .请列举几种表连接的内部算法(InnerIeftxRight、Join).Nestloop,hashjoin常用的2种吧。前者是大小表,小小表关联,后者是大表join大表。0Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Orhashjoin/mergejoin/n
3、estloop(clusterjoin)/indexjoin5 .SQL调整最关注的是什么.查看该SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk)6 .描述对索引的认识(索引的结构、对DML的影响、为什么提高了查询性能).索引是与表和聚类相关的可选结构。你可以创建,也可以不创建。可以在一个表的一个或多个列上创建索引,以加速SQL语句在该表上的执行。索引比没有索引能更快地定位信息,Oracle数据库对表数据提供更快的访问路径。正确使用索引是减少磁盘TO的重要手段。b-treeindex/bitmapinde
4、x/functionindex/patitionalindex(local/global)索引通常能提高select/update/delete的性能,会降低insert的速度关于OraCIe索引结构,请参考如下:关于Oracle索引以及Bitmap索引和B-tree索引(归档)关于SQLSERVER索引结构,存储数据的方式请参考SQLSERVER底层存储和性能优化总结分享【数据后台存放在页面面,但是他的排列顺序不像我们SeleCt是有顺序的。数据库存储页比较凌乱,杂乱无章。,这个Page用满了,在存放另外一个列的数据。不创建任何索引,就很杂乱,相当于一堆数据。】7 .绑定变量是什么?绑定变量
5、有什么优缺点?绑定变量就是将变量的数据通过一定的数据访问技术来和相应的实体捆绑在一起,使之成为一个整体。是数据绑定的一种形式,也是变量访问的一种方法。绑定变量可以减少SQL分析,节约共享池的空间。但是在某些情况下,使用绑定变量也是有缺点的。比如说,如果使用绑定变量,那么优化器就会忽略直方图的信息,在生成执行计划的时候可能不够优化。8 .比较TRUNCATE和DELETE命令.两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollbackSegnlent.而DeIete是DML操作,需要rollbacksegment且花费较长时间.Delte删除的
6、时候记录日志,而truncate不记录日志。9 .FACTTable上需要建立何种索引?位图索引适合位图索引的字段(重复率高的、常用于AND、IN、OR等)如时间、非唯一型的键10 .什么是SCD?请列举SCD的种类与区别.方式一:直接用最新值,覆盖就有值。等于是忽略了历史的变化。拿上面销售人员的例子来说,销售员甲2013年3月以前的业绩,也会归入到销售二部。方式二:记录历史,以有效期起和止来标示当前有效。这样的情况下,需要结合代理键,因为一个维度成员,会有若干行记录,这种情况下,表结构可以类似于:KEY,CODE,NAME,有效期起,有效期止,当前有效?这种情况下,可以将上例中销售员甲的转部
7、门前的业绩归入到其当时归属的部门。方式三:记录当前和最近几次的历史,这种处理方式实际上很少使用。另外,还会有一些非主流的处理方式,譬如不覆盖,或者说1、2、3方式结合,成为TYPE6的,等等。实际的处理,需要理论结合实际,实际,指的是客户的需求和工具的支持度。客户如果能接受覆盖,这是最容易处理的方式。否则,就要调研关注变化的属性。ETL工具中,有些可以支持从源系统表生成TYPE2的组件,但是用起来好像也不是太好用。二、SQL试题1 .有一张表T(Fl,F2,F3,F4),要根据字段F2排序后取第8-16条记录显不,请写出SQLo对应的SQL如下:withcteas(selectROW_NUMB
8、ER()over(orderbyF2)asRN,*fromT)select*fromctewhereRNbetween8and16或者selecttop8*fromTwhereF2notin(selecttop8F2fromTorderbyF2)2 .指出下面SQL语句的执行顺序:selecta.columnl,COUNT(*)ASCountValue,SUM(b.column3)ASSumValuefromTableAainnerJoinTableBbona.columnl=b.columnlanda.column2二1whereb.column3-10groupbya.columnlhav
9、ingCOUNT(*)10orderbya.columnl1.From2.0N3.INNERJOIN4.WHERE5.GROUPBY6.having7.SELECT8.ORDERBY三、DW/BT试题1.描述ROLAP、MOLAP、HoLAP的区别与优势。多维存储方式(MOLAP)MOLAP在服务器上对数据立方体数组及其管理技术的实现,可以所有的信息查询都从MOLAP服务器上获得。a,优势.性能好、响应速度快;- 支持高性能的决策支持计算;- 复杂的跨维计算;- 多用户的读写操作。b,缺点- 占用的存储空间较大- 难以达到TB级数据量;- 需要进行预计算,可能导致数据爆炸;.无法支持维的动态变
10、化;缺乏数据模型和数据访问的标准。二.关系数据库存储方式(ROLAP)ROLAP充分利用关系数据库技术将明细数据和聚合数据存储在一个关系型结构中的存储方式。a,优势- 没有大小限制;现有的关系数据库的技术可以沿用;- 可以通过SQL实现详细数据与概要数据的储存;-现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、位图索引、SQl的OLAP扩展等大大提高了ROALP的速度;查询性能较不如MOLAP方式。占用的存储空间较少b,缺点.一般比MDD响应速度慢;SQL无法完成部分计算,主要是无法完成多行的计算,无法完成维之间的计算。三.混合存储方式(HOLAP)将聚合存储到分析服务器计
11、算机上的多维结构中,并将分区的源数据保留在它现有的关系型结构中的存储方式。特点- 查询性能介于以上两种方式之间- 占用的存储空间介于以上两种方式之间- 适用于在对基于大量基本数据的汇总进行查询时需要快速响应的多维数据集2.描述星型与雪花型的区别与优势。.数据优化雪花模型使用的是规范化数据,也就是说数据在数据库内部是组织好的,以便消除冗余,因此它能够有效地减少数据量。通过引用完整性,其业务层级和维度都将存储在数据模型之中雪花模型相比较而言,星形模型实用的是反规范化数据。在星形模型中,维度直接指的是事实表,业务层级不会通过维度之间的参照完整性来部署。星形模型2 .业务模型主键是一个单独的唯一键(数
12、据属性),为特殊数据所选择。在上面的例子中,AdVertiSejID就将是一个主键。外键(参考属性)仅仅是一个表中的字段,用来匹配其他维度表中的主键。在我们所引用的例子中,AdVertiSeJID将是Account_dimension的一个外键。在雪花模型中,数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。而在星形模型中,所有必要的维度表在事实表中都只拥有外键。3 .性能第三个区别在于性能的不同。雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低。举个例子,如果你想要知道AdVertiSer的详细信息,雪花模型就会请求许多信息,比如AdVertiSerName、ID以及
13、那些广告主和客户表的地址需要连接起来,然后再与事实表连接。而星形模型的连接就少的多,在这个模型中,如果你需要上述信息,你只要将Advertiser的维度表和事实表连接即可。4 .ETL雪花模型加载数据集市,因此ETL操作在设计上更加复杂,而且由于附属模型的限制,不能并行化。星形模型加载维度表,不需要再维度之间添加附属模型,因此ETL就相对简单,而且可以实现高度的并行化。3 .描述一下DW设计架构,及ETL设计方法。主要描述你的DW的的数据流转路径,就是哪个系统到哪个系统。ETL的设计ods,增量,调度等4 .描述你所熟悉的数据模型,如一些行业的模型,实际参与的设计及主题。财务数据模型,主要是凭证,会计科目,供应商,客户,等主事实表就是会计分录、凭证等。因为凭证有表头和表体。所以事实表由两个表组成,一个是存储表头一个是表体。会计科目、供应商、客户是作为单独维度表。其他维度作为辅助维度存储在在一张表中。继续阅读