数据仓库、商业智能相关面试题(带答案)
BI工程师招聘面试题与参考回答

招聘BI工程师面试题与参考回答面试问答题(总共10个问题)第一题题目:请解释什么是商业智能(Business Intelligence, BI),并描述BI系统在企业决策中的作用。
此外,请简述一个实际场景,说明BI是如何帮助企业提高效率或解决问题的。
参考答案:商业智能(BI)定义:商业智能是一种综合性的概念,它涵盖了多种技术和应用,旨在帮助企业收集、集成、分析并呈现有用的业务信息,以便管理层做出更为明智的数据驱动型决策。
BI系统通常包括数据仓库、在线分析处理(OLAP)、数据挖掘、查询报表、仪表板等组件,它们共同为企业提供对内部运营和外部环境的深刻洞察。
BI系统在企业决策中的作用:1.数据整合与清洗:BI系统能够从不同的数据源中提取数据,并将其转换为统一格式,便于分析。
2.深入分析:利用高级分析技术如OLAP和数据挖掘,BI可以帮助发现隐藏在数据背后的模式、趋势以及关联性。
3.可视化展示: BI工具通过图表、仪表盘等形式将复杂的数据以直观的方式展现给决策者,使他们更容易理解关键指标的变化。
4.辅助决策:基于上述功能,BI系统可以支持企业制定短期战术调整和长期战略规划,从而提高竞争力。
实际应用场景示例:假设一家零售公司正在努力提高其库存周转率并减少滞销商品的数量。
通过建立BI系统,该公司能够实时监控各个门店的销售数据,并对其进行深入分析。
例如,通过数据挖掘技术发现某些产品在特定季节或时间段内的销售表现不佳。
基于这些分析结果,公司可以及时调整采购策略,减少此类产品的进货量,同时增加热销商品的库存,最终实现优化库存结构、提高资金使用效率的目的。
解析:此题考查了应聘者对于BI基本概念的理解及其对企业价值的认识。
一个好的答案不仅限于理论层面的阐述,还应该能够结合具体案例来展示BI的实际应用效果。
这有助于评估应聘者是否具备将理论知识转化为实践操作的能力,以及他们在面对实际问题时运用BI技术解决问题的潜力。
第二题题目描述:请您谈谈您对BI(商业智能)工程师这个角色的理解,以及您认为一个优秀的BI工程师应该具备哪些核心技能?参考回答:回答内容:我认为BI工程师是负责从数据中提取有价值信息、构建数据模型、设计报表和仪表板,以支持企业决策的专业人士。
数据仓库团队面试题-答案

目录1简答题 (1)1.1SQL Server与Oracle、DB2三种数据库比较 (1)1.2以下三种数据库语言都包含哪些细项 (2)1.3UNION 和UNION ALL的区别 (2)2实例题................................................................................................................... 错误!未定义书签。
3逻辑推理题 (5)答案............................................................................................................................... 错误!未定义书签。
1简答题1.1 SQL Server与Oracle、DB2三种数据库比较SQL Server与Oracle、DB2三种数据库进行比较,有何区别?请从开放性,可伸缩性,并行性,安全性三个方面叙述。
答案:开放性SQL Server只能在Windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。
Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。
而且Windows平台的可靠性,安全性和伸缩性是非常有限的。
它不象Unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle能在所有主流平台上运行(包括 Windows)。
完全支持所有的工业标准。
采用完全开放策略。
可以使客户选择最适合的解决方案。
对开发商全力支持。
DBz能在所有主流平台上运行(包括Windows)。
最适于海量数据。
DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。
可伸缩性,并行性SQL Server并行实施和共存模型并不成熟。
数据仓库面试题及答案

数据仓库面试题及答案数据仓库面试题及答案Student(S#,Sname,Sage,Sse-x) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Sse-x:学生性别Course(C#,Cname,T#) 课程表C#,课程编号;Cname:课程名字;T#:教师编号SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,T eacher where Teacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(*)=(select count(*) from SC where S#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男生、女生人数Select count(Sse-x) as 男生人数 from Student group by Sse-x having Sse-x='男';Select count(Sse-x) as 女生人数 from Student group by Sse-x having Sse-x='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B whereA.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。
数据库系统工程师招聘面试题与参考回答2025年

2025年招聘数据库系统工程师面试题与参考回答(答案在后面)面试问答题(总共10个问题)第一题题目:请描述一下数据库系统的基本组成部分,并解释每个组成部分的作用。
第二题问题:请简述事务的ACID特性,并详细解释这四个特性在数据库操作中的具体含义及其重要性。
第三题题目:数据库系统工程师在处理并发控制时,常常会遇到死锁问题。
请简要解释什么是死锁?在你的实际工作经验中,你是如何预防和解决死锁问题的?第四题题目:请解释什么是ACID属性,并简要说明这些属性在数据库事务处理中的重要性。
第五题题目:请简要描述数据库系统工程师在保证数据库安全方面需要关注的几个关键点,并说明如何在实际工作中进行风险预防和应对。
第六题题目:请解释一下什么是数据库索引,并描述几种常见的索引类型及其应用场景。
请给出相应的例子和优缺点分析。
第七题题目描述:请描述一下你对于一个复杂数据查询优化的思路,并举例说明你曾经优化过的一个具体案例。
第八题题目:请解释ACID属性在数据库事务中的含义,并举例说明如何确保一个事务满足这些属性?第九题题目:请简述数据库索引的作用及其类型,并说明为什么在某些情况下,即使不使用索引也能快速检索到数据。
第十题题目:请描述一下你如何设计一个适用于高并发场景下的数据库读写分离架构,并说明其中的关键技术和解决方案。
2025年招聘数据库系统工程师面试题与参考回答面试问答题(总共10个问题)第一题题目:请描述一下数据库系统的基本组成部分,并解释每个组成部分的作用。
答案:数据库系统主要由以下几部分组成:1.数据库:数据库是存储数据的集合,它包含了组织中的所有结构化数据。
数据库中的数据是按照某种数据模型组织起来的,如关系模型、对象模型等。
2.数据库管理系统(DBMS):DBMS是负责管理和操纵数据库的软件系统。
它提供了创建、查询、更新、删除数据库中数据的功能,同时也负责数据的安全性、完整性、并发控制和恢复。
3.数据库管理员(DBA):DBA是负责数据库的日常维护、性能优化、备份和恢复的专业人员。
数据库面试题目及答案

数据库面试题目及答案数据库面试是程序员求职过程中必不可少的一部分。
在面试中,面试官通常会提出各种与数据库相关的问题,以考察面试者对数据库的理解和应用能力。
本文将介绍一些常见的数据库面试题目,并提供相应的答案,希望能帮助读者在面试中取得好成绩。
1. 什么是数据库?答案:数据库是存储和组织数据的集合。
它是一个可以持久存储的数据集合,可以通过各种操作进行管理和访问。
2. 什么是关系型数据库?答案:关系型数据库是基于关系模型的数据库管理系统。
它使用表(关系)来组织数据,并通过主键和外键等约束保持表之间的关联性。
3. 什么是主键?答案:主键是一个唯一标识符,用于唯一地标识关系中的每一行。
它可以是一个或多个列,并且不允许有重复的值。
4. 什么是外键?答案:外键是关系模型中用来建立表之间关系的一种机制。
它用于在一个表中引用另一个表的主键。
5. 什么是索引?答案:索引是为了提高数据库查询性能而创建的数据结构。
它可以加快数据的查找速度,类似于书籍的目录。
6. 请解释一下数据库范式?答案:数据库范式是创建和规范化数据库表的一种方法。
它分为不同的级别(第一范式、第二范式、第三范式等),每个级别都有一些规则,用于减少数据冗余和提高数据的完整性。
7. 什么是事务?答案:事务是一系列数据库操作的集合,它们要么全部执行成功,要么全部回滚。
事务具有四个特性,即原子性、一致性、隔离性和持久性(ACID)。
8. 请解释一下数据库的ACID原则?答案:ACID是指数据库事务的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
原子性指事务要么全部执行成功,要么全部回滚;一致性指事务在执行之前和之后数据库的状态必须保持一致;隔离性指多个事务之间应该相互隔离,互不干扰;持久性指一旦事务提交,其结果将永久保存在数据库中。
9. 什么是数据库连接池?答案:数据库连接池是一种管理和复用数据库连接的机制。
数据仓库与商业智能分析考核试卷

B. 数据加密
C. 安全备份
D. 数据掩码
14. 以下哪些是商业智能分析中的预测分析工具?( )
A. 时间序列分析
B. 回归分析
C. 贝叶斯网络
D. 决策树
15. 以下哪些是云计算在商业智能中的应用?( )
A. 数据存储
B. 数据处理
C. 分析工具的提供
D. 硬件资源的购买
16. 以下哪些是大数据分析的关键技术?( )
2. 在数据仓库中,星型模型是一种常用的数据模型,其核心是______表。
答题括号:____________________
3. 商业智能(BI)的主要目的是通过分析企业中的数据来提供业务洞察力。
答题括号:____________________
4. 数据挖掘是从大量的数据中通过算法发现模式、关系和洞见的过程。
A. 数据采集
B. 数据存储
C. 数据处理与分析
D. 数据可视化
17. 以下哪些是数据仓库与大数据技术的区别?( )
A. 数据量大小
B. 数据处理速度
C. 数据类型多样性
D. 数据分析复杂性
18. 以下哪些是商业智能的未来发展趋势?( )
A. 人工智能技术的融合
B. 自助式分析工具的普及
C. 实时分析能力的增强
D. 数据备份
10. 数据可视化技术主要包括哪两种形式?( )
A. 报表和图表
B. 图表和文字
C. 文字和报表
D. 图表和动画
11. 在商业智能分析中,以下哪个指标不属于财务分析?( )
A. 营业收入
B. 利润率
C. 存货周转率
D. 客户满意度
12. 以下哪个不是商业智能分析的应用场景?( )
数据仓库设计习题与答案(商务智能)

一、多选题1、物理模型设计包括以下哪些步骤?A.实体转换成对应的表B.建立表之间的连接C.确定列类型D.属性转换成列正确答案:A、B、C、D2、在物理模型设计阶段除了考虑数据结构之外,还需要考虑以下哪些问题?A.维护代价B.存储时间C.字段类型D.字段大小正确答案:A、B3、以下哪种关于元数据的说法是错误的?A.元数据也有数据类型B.元数据是细节数据C.元数据是综合数据D.元数据是定义数据的数据正确答案:A、B、C4、元数据的使用者主要包括以下人员。
A.开发人员B.业务人员C.分析人员D.管理员正确答案:A、D5、数据仓库的数据抽取方法中,从逻辑抽取角度可以分为以下哪几种方式?A.相对抽取B.绝对抽取C.全量抽取D.增量抽取正确答案:C、D6、以下哪些内容是数据转换阶段需要完成的工作?A.数据分离B.数据合并C.数据转化D.数据类型确定正确答案:A、B、C7、以下哪些内容是数据转换的主要类型?A.字段导出B.特征集合转化C.日期时间转化D.信息合并正确答案:A、B、C、D8、在进行数据仓库中的数据装载时,如果遇到装载的数据和数据仓库中已有数据重复,常用的处理方法以下哪些是正确的?A.增加一条新记录B.覆盖(更新)原有记录C.丢弃新纪录D.合并新记录和已有记录正确答案:A、B、C、D9、以下对数据集市的特点描述中,哪些是正确的?A.数据源少B.主题少C.建设周期短D.只能满足部门级应用正确答案:A、B、C、D10、以下哪些方法可以用来实施数据仓库?A.自顶向下,总体规划,分步实施B.“big-bang“,爆炸式C.自底向上D.分项并举正确答案:A、B、C二、判断题1、数据库和数据仓库的的设计都以需求驱动为原则正确答案:错2、与数据库的设计相同,数据仓库的设计也是三级模型结构。
正确答案:对3、概念模型设计的核心是将实际需求机型高度的抽象和概括。
正确答案:对4、数据清洗就是消除数据源中不符合规范的数据的过程。
众测数仓面试题

众测数仓面试题1、能否简介一下当前这个项目2、什么是数据仓库呢?3、数据仓库和传统的业务数据库有什么区别?4、OLTP和OLAP分别是什么?有什么区别?5、项目是如何分层的6、数仓一般怎么做分层处理呢?7、数仓分层的作用是什么?8、项目中有做按照主题分析吗?若有,有哪些主题9、数据分析能决定企业未来发展,请辩证这个观点10、什么是事实表,什么是维度表,有什么区别和联系11、什么是指标,什么是维度,有什么区别和联系12、数据仓库的主要特性是?13、数据仓库主要解决了什么问题14、一个企业一般构建几个数据仓库最好,并说明15、什么是缓慢渐变维?适用于什么场景?16、什么是拉链表?适用于什么场景17、什么是维度的分层和分级?什么是上钻和下卷?18、请简述数据集市19、请简述维度退化,以及其作用20、请简述以下层级的主要作用22、请简述SCD2的实现方法(最少2种,多了不限)23、请用三个单词来总结数仓分层的主要工作内容24、什么是版本控制工具25、什么是git26、.git文件夹的作用27、什么是本地库什么是远程库28、在大数据框架中,压缩的作用是什么?29、请简述行存储和列存储各自的优缺点和适用场景30、什么是Hive的分区?什么是Hive的分桶?31、Hive中静态分区、动态分区、混合分区分别是什么32、什么是Map Join,有什么好处,主要原理是什么33、如何显式的告知Hive执行任务要走MapJoin34、什么是Bucket Map Join,有什么好处,主要原理是什么35、什么是SMB Join,有什么好处,主要原理是什么36、请简述Hive的执行原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1商务智能1.1数据仓库1.1.1数据仓库的4大特点(特征)?面向主题的,集成的,相对稳定的,反映历史变化的。
1.1.2数据仓库的四个层次体系结构?1.数据源是数据仓库系统的基础,是整个系统的数据源泉。
通常包括企业内部信息和外部信息。
内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。
外部信息包括各类法律法规、市场信息和竞争对手的信息等等;2.数据的存储与管理是整个数据仓库系统的核心。
数据仓库的真正关键是数据的存储和管理。
数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。
要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。
针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。
数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)3.OLAP服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。
ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP 基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
4.前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。
其中数据分析工具主要针对OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。
1.1.3描述一下联机分析处理OLAP?(维的概念,基本多维操作,层次结构,与OLTP的区别)OLAP(联机分析处理On-Line Analytical Processing)也叫多维DBMS。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。
“维”一般包含着层次关系,这种层次关系有时会相当复杂。
通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。
因此OLAP也可以说是多维数据分析工具的集合。
也叫做多维数据集。
一般一个多维数据集可以用一个立方体的方式进行描述。
多维数据集是联机分析处理(OLAP) 中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。
多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。
每个多维数据集都有一个架构,架构是数据仓库中已联接的各表的集合,多维数据集从数据仓库提取其源数据。
架构中的核心表是事实数据表,事实数据表是多维数据集度量值的源。
OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。
·钻取是改变维的层次,变换分析的粒度。
它包括向上钻取(roll up)和向下钻取(drill down)。
roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。
如果剩余的维只有两个,则是切片;如果有三个,则是切块。
·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
1.1.4多维数据集为什么显示有些表即是事实表又是维度表?退化维度。
1.1.5描述一下粒度?维度?Cube?粒度反映了数据仓库按照不同的层次组织数据,根据不同的查询需要,存储不同细节的数据。
在数据仓库中,粒度越小,数据越细,查询范围就越广泛。
相反,粒度级别越高,表示细节程度越低,查询范围越小。
1.1.6描述一下ODS,统一数据视图运营数据存储(The operational data store, ODS)或称操作型数据存储是一个面向主题的、集成的、当前的并且是可"挥发"的数据集合,它反映了在某一个时间切片瞬间,经营分析系统和外围系统(BOSS、MIS...)用以相互交换数据的集合,主要用于经营分析系统与外围系统关键数据一致性校验、以及经营分析系统对其它外围系统的决策支持数据的回馈,回馈数据包括以客户扩展属性为主体的详细资料等。
运营数据存储扮演的是用于数据稽核与交互的角色。
ODS 的存储结构是以企业范围所有相关业务系统的数据,以全面、统一进行关系型实体来体现的,ODS中的数据是基于分析主题进行组织,而不是基于业务系统的功能进行组织。
ODS只是存储了当前的数据且数据是“挥发”性的,因此其数据的刷新是很快,过期的数据将要被挥发掉。
因此ODS的存储量取决于业务接口数据的抽取与刷新频率,取决于企业的服务客户的数量。
从ODS的作用和实现来说,ODS将各个孤立的业务系统的运营数据集成起来,现成全企业的统一数据视图,同时可实现ODS的数据共享。
1.1.7描述一下企业信息工厂数据仓库领域里,有一种构建数据仓库的架构,叫Corporate Information Factory,中文一般翻译为“企业信息工厂”。
企业信息工厂的创始人是数据仓库之父Inmon。
企业信息工厂主要包括集成转换层(I&T)、操作数据存储(ODS)、数据仓库(EDW)、数据集市(DM)、探索仓库(EW)等部件。
这些部件有机的结合在一起,为企业提供信息服务。
集成转换层的目的是将来自操作型源系统的数据集成转换到数据仓库中,它通常由一组程序组成,而其它部件如数据仓库和数据集市等则主要由数据组成。
当业务数据来源多,业务复杂时,集成转换层会建立一些临时表,为数据处理提供方便。
这时,集成转换层包括程序和数据,也称数据准备区(Data Staging Area)。
通常中等规模及以上的数据仓库系统都会建立数据准备区。
操作数据存储(ODS)是建立在数据准备区和数据仓库之间的一个部件。
用来满足企业集成的、综合的操作型处理需要。
例如,出尽可能实时的集成的操作报表等需求。
一般,也称操作数据存储是用来满足企业战术决策的需要。
操作数据存储是个可选的部件。
数据仓库是企业信息工厂的核心部件,用来保存整个企业的数据。
一般,也称数据仓库是用来满足企业战略决策的需要。
数据仓库的数据来自数据准备区和操作数据存储。
数据集市是为了满足企业特定部门的分析需求而专门建立的数据的集合。
数据集市的数据来源是数据仓库。
企业信息工厂中的数据集市一般来说是非规范化的、定制的和汇总的。
而多维体系架构中的数据集市分为两种,分别是原子数据集市和聚集数据集市。
一般来说,企业信息工厂中的数据集市相当于多维体系架构中的聚集数据集市。
1.1.8数据是数据集市?数据集市中的数据具有数据仓库中数据的特点,只不过数据集市专为某一部门或某个特定商业需求定制,而不是根据数据容量命名。
数据集市面向部门、业务单元或特定应用,因而规模较小,便于快速实现,且成本较低,短期内即可获得明显效果。
数据集市的应用不仅满足了部门的数据处理需求,而且作为数据仓库的子集有助于构建完整的企业级数据仓库。
1.1.9元数据的定义,元数据管理,元数据的作用用?数据仓库的元数据是关于数据仓库中数据的数据。
它的作用类似于数据库管理系统的数据字典,保存了逻辑数据结构、文件、地址和索引等信息。
广义上讲,在数据仓库中,元数据描述了数据仓库内数据的结构和建立方法的数据。
元数据是数据仓库管理系统的重要组成部分,元数据管理器是企业级数据仓库中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。
(1)构建数据仓库的主要步骤之一是ETL。
这时元数据将发挥重要的作用,它定义了源数据系统到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。
数据抽取和转换的专家以及数据仓库管理员正是通过元数据高效地构建数据仓库。
(2)用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制报表。
(3)数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。
元数据可分为技术元数据和业务元数据。
技术元数据为开发和管理数据仓库的IT 人员使用,它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。
而业务元数据为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。
在数据仓库中,元数据的主要作用如下。
(1)描述哪些数据在数据仓库中,帮助决策分析者对数据仓库的内容定位。
(2)定义数据进入数据仓库的方式,作为数据汇总、映射和清洗的指南。
(3)记录业务事件发生而随之进行的数据抽取工作时间安排。
(4)记录并检测系统数据一致性的要求和执行情况。
(5)评估数据质量。
1.1.10什么是主数据,主数据管理?和元数据有什么区别?主数据管理和传统数据仓库的区别?主数据是指在整个企业范围内各个系统(操作/事务型应用系统以及分析型系统)间要共享的数据,比如,可以是与客户(customers), 供应商(suppliers), 帐户(accounts)以及组织单位(organizational units)相关的数据。
主数据通常需要在整个企业范围内保持一致性(consistent)、完整性(complete)、可控性(controlled),为了达成这一目标,就需要进行主数据管理(Master Data Management ,MDM)。
主数据不是企业内所有的业务数据,只是有必要在各个系统间共享的数据才是主数据,比如大部分的交易数据、帐单数据等都不是主数据,而像描述核心业务实体的数据,而像客户、供应商、帐户、组织单位、员工、合作伙伴、位置信息等都是主数据。
主数据是企业内能够跨业务重复使用的高价值的数据。
主数据管理(Master Data Management ,MDM)是指一组约束和方法用来保证一个企业内主题域和系统内相关数据和跨主题域和系统的相关数据的实时性、含义和质量。
这是从深层次来说来说明主数据管理(MDM)的深度和复杂性,简单的说,主数据管理(MDM)保证你的系统协调和重用通用、正确的业务数据(主数据)。