数据仓库、商业智能相关面试题(带答案)

合集下载

BI工程师招聘面试题与参考回答

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工程师是负责从数据中提取有价值信息、构建数据模型、设计报表和仪表板,以支持企业决策的专业人士。

数据仓库面试题及答案

数据仓库面试题及答案

数据仓库面试题及答案数据仓库面试题及答案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人的课程才统计)。

数据仓库面试题

数据仓库面试题

数据仓库面试题一、简介数据仓库是一个用于存储和管理大量数据的系统,被广泛应用于数据分析和决策支持领域。

在数据仓库领域的面试中,涉及到的题目通常围绕数据仓库的架构、设计、模型、ETL流程、性能优化等方面展开。

本文将针对数据仓库面试常见的题目进行一一解答。

二、题目解答1. 请介绍数据仓库的架构。

数据仓库的架构通常包括三层:数据源层、集成层和展示层。

数据源层是指数据仓库的原始数据来源,可以是各种业务系统中的数据库、文件、API等。

集成层负责对数据进行抽取、转换和加载(ETL)的过程,将原始数据转化为适合分析和查询的形式。

展示层是数据仓库最终呈现给用户的部分,一般使用OLAP数据模型,支持多维分析和报表功能。

2. 请介绍数据仓库的设计原则。

数据仓库的设计原则主要包括可理解性、稳定性、高性能和易扩展性。

可理解性要求数据仓库的模型和数据应该能够被用户清晰地理解和操作,遵循一致的命名规范和约定。

稳定性要求数据仓库的结构和数据应该是可靠的,能够保证数据的完整性和准确性。

高性能要求数据仓库在查询和分析时能够快速响应,通常通过索引、分区等技术来实现。

易扩展性要求数据仓库能够方便地扩展和增加新的数据源,以适应业务发展和数据增长的需求。

3. 什么是星型模型和雪花模型?星型模型和雪花模型是常见的数据仓库设计模型。

星型模型以一个中心的事实表(Fact Table)为核心,与多个维度表(Dimension Table)关联。

事实表中包含了事实(例如销售量、金额等)以及用于关联维度表的外键。

维度表包含了与事实表相关的维度(例如时间、产品、地区等),每个维度表都有一个与之关联的主键。

星型模型简单、直观,易于理解和查询。

雪花模型在星型模型的基础上进行了拓展,将维度表进一步规范化,使得维度间可以建立更多层级的关联。

即维度表可以再次分解成更小的维度表。

这样做可以提高数据的一致性和准确性,但同时也增加了模型的复杂性。

4. 请解释OLAP和OLTP的区别。

数据仓库架构师面试题

数据仓库架构师面试题

数据仓库(商业智能)/ETL架构师面试题1. What is a logical data mapping and what does it mean to the ETL team?什么是逻辑数据映射?它对ETL项目组的作用是什么?答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息:目标表名:目标列名:目标表类型:注明是事实表、维度表或支架维度表。

SCD类型:对于维度表而言。

源数据库名:源数据库的实例名,或者连接字符串。

源表名:源列名:转换方法:需要对源数据做的操作,如Sum(amount)等。

逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL 策略。

在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。

项目中最好选择能生成逻辑数据映射的数据迁移工具。

2. What are the primary goals of the data discovery phase of the data warehouse project?在数据仓库项目中,数据探索阶段的主要目的是什么?答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。

对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data Discovery Phase),另一个是异常数据检测阶段。

数据探索阶段包括以下内容:1.收集所有的源系统的文档、数据字典等内容。

2.收集源系统的使用情况,如谁在用、每天多少人用、占多少存储空间等内容。

3.判断出数据的起始来源(System-of-Record)。

4.通过数据概况(Data Profiling)来对源系统的数据关系进行分析。

数据探索阶段的主要目的是理解源系统的情况,为后续的数据建模和逻辑数据映射打下坚实的基础。

数据仓库工程师面试题

数据仓库工程师面试题

数据仓库工程师面试题作为数据仓库工程师,面试题是评估您对数据仓库设计和管理的理解和经验的重要参考。

下面是一些常见的数据仓库工程师面试题,带您深入了解该领域的知识和技能。

1. 请解释一下数据仓库是什么,以及它与传统数据库的区别是什么?数据仓库是一个被设计用于支持处理和分析大量结构化和非结构化数据的系统。

与传统数据库相比,数据仓库有以下区别:- 数据来源:数据仓库从多个不同的源中获取数据,包括内部和外部数据源,例如业务系统、Web日志和社交媒体。

而传统数据库主要用于业务操作和事务处理。

- 数据结构:数据仓库使用星型模型或雪花模型来组织数据,以便更好地支持查询和分析。

传统数据库则使用关系模型。

- 数据性能:数据仓库通过聚集、索引和分区等技术来优化查询性能,而传统数据库更关注事务性处理的响应时间。

2. 请解释一下ETL的过程是什么,以及在数据仓库中的作用是什么?ETL(抽取、转换和加载)是数据仓库中的常见过程。

它包括以下步骤:- 抽取(Extract):从多个数据源中获取数据,并进行初步清洗和转换,以满足后续处理的需求。

- 转换(Transform):对抽取的数据进行清洗、规范化、转换和整合,以满足数据仓库的模型和规范。

- 加载(Load):将已转换的数据加载到数据仓库中的相应表中。

ETL的作用是将分散和异构的数据整合到一个中心化的数据仓库中,以便进行分析和报告。

通过ETL过程,可以清洗数据、处理数据质量问题、整合多个数据源的数据,并为分析师和业务用户提供一致、准确的数据。

3. 请解释一下星型模型和雪花模型,并阐述它们之间的区别。

星型模型和雪花模型是用于组织数据仓库中的事实表和维度表的两种常见模型。

- 星型模型:星型模型由一个中心的事实表和多个维度表组成。

事实表包含可度量的业务指标,而维度表包含描述业务上下文的属性。

维度表通过外键与事实表相连,而且维度表之间没有相互连接。

- 雪花模型:雪花模型延伸了星型模型,通过将维度表进一步分解成多个规范化的表来减少数据冗余。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)是指一组约束和方法用来保证一个企业内主题域和系统内相关数据和跨主题域和系统的相关数据的实时性、含义和质量。

相关文档
最新文档