《数据仓库面试题.docx》由会员分享,可在线阅读,更多相关《数据仓库面试题.docx(24页珍藏版)》请在第一文库网上搜索。
1、数据仓库面试题问题1: in exists的区别not in和not exists的区别?答案:n是一个集合运算符.a in (a, c, d, s, d-这个运算中,前面是一个元素,后面是一个集合,集合中的元素类型是和前面的元素一样的.而exists是一个存在判断,如果后面的查询中有结果,则exists为真,否则为假。not in和not exi sts如果查询语句使用了 not in那么内外表都进行全表扫描,没有用到索引;而not extsts的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。总之:尽量使用not exist ,避免使用not in
2、not in会默认调用子查询not exist会调用关联子查询问题2:拉链表知道么?答案:拉链表就是随着时间变迁产生历史数据。拉链表的含义:就是记录历史。记录一个事务从开始一直到当前状态的所有变化信息。问题3:数仓三层架构,具体每层作用?答案:1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务。2:业务逻辑层:主耍是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。3:界面层:主要表示WEB方式,也可
3、以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。问题4:为什么叫星型模型和雪花模型?答案:星型模型是:多维表的数据关系,它由一个事实表和一组维表组成,每个维作为主键雪花模型是:当一个或多个维没有直接连接到事实表上,而是通过其他维表连接到事实表上的时候,其图解就像雪花模型连接在一起、使用场景:雪花模型使得维度分析更加容易,比如“针对特定的广告主,有哪些客户或者公司是在线的?”星形模型用来做指标分析更适合,比如“给定的一个客户他们的收入是多少?”问题5:星型模型和雪花模型各自的优点?答案:概念一一根据事实表
4、和维度表的关系,可将常见的模型分为星型模型和雪花模型。在数据仓库的建设中,一般都会围绕着这两种模型来设计表关系或者结构。那么什么是事实表和维度表呢?在维度建模中,将度量称为“事实”,将环境描述为“维度”。维度是用于分析事实所需要的多样环境。例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。事实则紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。例如订单作为交易行为的核心载体,直观反映了交易的状况。订单的流转会产生很多业务过程,而下单、支付和成功完结三个业务过程是整个订单的关键节点。获取这三个业务过程的笔数、
5、金额以及转化率是日常数据统计分析的重点,事务事实表设计可以很好地满足这个需求。当所有维表都直接连接到事实表上时,整个图解就像星星一样,故将该模型称为星型模型。星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一点的冗余。如在地域维度表中,存在国家A省B的城市C以及国家A省B的城市D两条记录,那么国家A和省B的信息分别存储了两次,即存在冗余。息公司分公司代3t处时阍澧蛀域懂寸何道荒门懂产品U精售款量省份,星型模型强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都
6、是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。当有一个或多个维表没有直接连接到事实表上,而是通过其他维度表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展,它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的层次区域,这些被分解的表都连接到主维度表而不是事实表。如将地域维表分解为国家,省份,城市等维表。它的优点是:通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,去除了数据冗余,但是在分析数据的时候,操作比
7、较复杂,需要join的表比较多所以其性能并不一定比星型模型高。ecn理道通谴城同门品七士新户2,-ft A an A口声=声区别及优缺点星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花模型要高。星型模型不用考虑很多正规化的因素,设计与实现都比较简单。雪花模型由于去除了冗余,有些统计就需要通过表的连接才能产生,所以效率不一定有星型模型高。正规化也是一种比较复杂的过程,相应的数据库结构设计、数据的ETL、以及后期的维护都要复杂一些。因此在冗余可以接受的前提下,实际运用中星型模型使用更多,也更有效率。属性星型模型数据总量多少可读性容易差表个数少多查询速度快慢冗余度高
8、低对实时表的情况增加宽度字段比较少,冗余底扩展性差好什么时候使用雪花模型?Ralph Kimball,数据仓库大师,讲述了三个例子。对于三个例子,使用雪花模型不仅仅是可接受的,而且可能是一个成功设计的关键。1、一个用户维度表且数据量较大。其中,8096的事实度量表是匿名访问者,仅包含少数详细信息。20%的是可靠的注册用户,且这些注册用户有较为详细的信息,与多个维度表中的数据相连。2、例如一个金融产品维度表,且这些金融产品有银行类的,保险类等等区别。因此不同种类的产品有自己一系列的特殊属性,且这些属性并非是所有产品共享的。3、多个企业共用的日历维度表。但每个企业的财政周期不同,节假日不同等等。在
9、数据仓库的环境中用雪花模型,降低储存的空间,到了具体某个主题的数据集市再用星型模型。雪花模型使得维度分析更加容易,比如“针对特定的广告主,有哪些客户或者公司是在线的?,星形模型用来做指标分析更适合,比如“给定的一个客户他们的收入是多少?”总结通过上面的对比我们可以发现,在数据仓库建设中大多时候比较适合使用星型模型构建底层数据Hive表,通过大量的冗余来提升查询效率,星型模型对OLAP的分析引擎支持比较友好,这一点在Kylin中比较能体现。而雪花模型在关系型数据库中如MySQL, Oracle中非常常见,尤其像电商的数据库表。在数据仓库中雪花模型的应用场景比较少,但也不是没有,所以在具体设计的时
10、候,可以考虑是不是能结合两者的优点参与设计,以此达到设计的最优化目的。问题6:什么是缓慢变化维答案:缓慢变化维1 .缓慢变化维在数据仓库中,有个概念叫缓慢变化维,经常简写为SCD,2 .缓慢变化维的提出是因为现实世界中,维度的属性并不是静态的,它会随时间的流失发生缓慢的变化。这种随着时间变化的我们称之为缓慢变化维。问题7:如果现在有一千张表从一个库到另外一个库的ODS层,你会怎么做?答案:利用消息队列做数据订阅发布问题8: 3)隔岗原始数据不论是数据的界常还是数据的敏感性,使我实数据9统计数据帔网开.问题11:说说你对数据仓库的理解?答案:数据仓库是面向主题进行组织的,数据是集成的、不可更新的
11、、随时间变化的的。数据仓库经历了这样三个阶段:简单报表阶段、数据集市阶段、数据仓库阶段。问题12:数据库和数据仓库的区别?数据库:是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。数据库由很多表组成,表是二维的,一张表里可以有很多字段。数据仓库:是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,但是从数据量来讲数据仓库比数据库更庞大些。数据仓库的主要作用用于数据挖掘、数据分析,辅助领导来做决策的。区别:实际上二者之间讲的是OLTP和OLAP操作型处理OLTP:它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。分析型处理
12、OLAP: 一般针对某些主题的历史数据进行分析,支持管理决策。问题13:如何构建数据仓库?答案:数据仓库模型的选择是灵活的,不局限与某种模型方法;数据仓库数据是灵活的,以实际需求场景为导向;数仓设计耍兼顾灵活性、可扩展性、要考虑技术可靠性和实现成本1)调研:业务调研、需求调研、数据调研2)划分主题域:通过业务调研、需求调研、数据调研最终确定主题域3)构建总线矩阵、维度建模总线矩阵:把总线架构列表形成矩阵形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上标记表示该业务处理过程与该维度相关(交叉探查)4)设计数仓分层架构5)模型落地6)数据治理问题14:什么是数据中台?答案:数据
13、中台是通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务和企业的业务有较强关联性,是企业所独有且能复用的,他是企业业务和数据的积淀,其不仅能降低重复建设,减少烟囱式协助的成本,也是差异化竞争的优势所在。数据中台是通过整合公司开发工具、打通全域数据、让数据持续为业务赋能,实现数据平台化、数据服务化和数据价值化。数据中台更加侧重于“复用”和“业务”。问题15:数据中台、数据仓库、大数据平台、数据湖的关键区别是什么?答案:1)基础能力上的区别数据平台:提供的是计算和存储能力数据仓库:利用数据平台提供的计算和存储能力,在一套方法论的指导下建设的一整套的数据表数据中台:包含了数据平台和数据仓库的所有内容,将其打包,并且以更加整合以及更加产品化的方式对外提供服务和价值数据湖:一个存储企业各种各样原始数据的大型仓库,包括结构化和非结构化数据,其中湖里的数据可供存取、处理、分析和传输2)业务能力上的区别数据平台:为业务提供数据主要方式是提供数据集数据仓库:相对具体的功能概念是存储和管理一个或