精华内容
下载资源
问答
  • 数据仓库面试

    万次阅读 多人点赞 2020-07-20 12:49:16
    文章目录数据仓库的定义?数据仓库和数据库的区别?如何构建数据仓库?什么是数据中台?数据中台、数据仓库、大数据平台的关键区别是什么?基础能力上的区别业务能力上的区别大数据的一些相关系统?如何建设数据中台...

    文章目录

    数据仓库的定义?

    首先,用于支持决策,面向分析型数据处理;其次,对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。

    数据仓库(Data Warehouse)是一个面向主题的(subject oriented)、集成的(integrated)、相对稳定的(non-volatile)、反应历史变化(time variant)的数据集合,用于支持管理决策(decision making support)。

    数据仓库和数据库的区别?

    从目标、用途、设计来说

    1. 数据库是面向事物处理的,数据是由日常的业务产生的,常更新;数据仓库是面向主题的,数据来源多样,经过一定的规则转换得到,用来分析。
    2. 数据库一般用来存储当前事务性数据,如交易数据;数据仓库一般存储的历史数据。
    3. 数据库的设计一般是符合三范式的,有最大的精确度和最小的冗余度,有利于数据的插入;数据仓库的设计一般不符合三范式,有利于查询

    如何构建数据仓库?

    数仓模型的选择是灵活的,不局限于某种模型方法。

    数仓数据是灵活的,以实际需求场景为导向。

    数仓设计要兼顾灵活性、可扩展性,要考虑技术可靠性和实现成本。

    https://www.zhihu.com/question/19703294

    1. 系统分析,确定主题。通过与业务部门的交流,了解建立数仓要解决的问题,确认各个主题下的查询分析要求

    2. 选择满足数据仓库系统要求的软件平台。选择合适的软件平台,包括数据库、建模工具、分析工具等

    3. 建立数据仓库的逻辑模型。确定建立数据仓库逻辑模型的基本方法,基于主题视图,把主题视图中的数据定义转到逻辑数据模型中

    4. 逻辑数据模型转换为数据仓库数据模型

    5. 数据仓库数据模型优化。随着需求和数据量的变化进行调整

    6. 数据清洗转换和传输。业务系统中的数据加载到数据仓库之前,必须进行数据的清洗和转换,保证数据仓库中数据的一致性。

    7. 开发数据仓库的分析应用。满足业务部门对数据进行分析的需求。

    8. 数据仓库的管理。包括数据库管理和元数据管理。

    什么是数据中台?

    数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台吧数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。

    这些服务和企业的业务有较强的关联性,是企业所独有且能复用的,它是企业业务和数据的积淀,其不仅能降低重复建设,减少烟囱式协作的成本,也是差异化竞争的优势所在。

    数据中台通过整合公司开发工具、打通全域数据、让数据持续为业务赋能,实现数据平台化、数据服务化和数据价值化。数据中台更加侧重于“复用”与“业务”。

    数据中台、数据仓库、大数据平台的关键区别是什么?

    基础能力上的区别

    数据平台:提供的是计算和存储能力

    数据仓库:利用数据平台提供的计算和存储能力,在一套方法论指导下建设的一整套的数据表

    数据中台:包含了数据平台和数据仓库的所有内容,将其打包,并且以更加整合以及更加产品化的方式对外提供服务和价值。

    业务能力上的区别

    数据平台:为业务提供数据主要方式是提供数据集

    数据仓库:相对具体的功能概念是存储和管理一个或多个主题数据的集合,为业务提供服务的方式主要是分析报表

    数据中台:企业级的逻辑概念,提现企业数据产生价值的能力,为业务提供服务的主要方式是数据API

    总的来说,数据中台距离业务更近,数据复用能力更强,能为业务提供速度更快的服务。数据中台是在数据仓库和数据平台的基础上,将数据生产为一个个数据API服务,以更高效的方式提供给业务。数据中台可以建立在数据仓库和数据平台之上,是加速企业从数据到业务价值的过程的中间层。

    大数据的一些相关系统?

    数仓设计中心:按照主题域、业务过程,分层的设计方式,以维度建模作为基本理论依据,按照维度、度量设计模型,确保模型、字段有统一的命名规范

    数据资产中心:梳理数据资产,基于数据血缘,数据的访问热度,做成本的治理

    数据质量中心:通过丰富的稽查监控系统,对数据进行事后校验,确保问题数据第一时间被发现,避免下游的无效计算,分析数据的影响范围。

    指标系统:管理指标的业务口径、计算逻辑和数据来源,通过流程化的方式,建立从指标需求、指标开发、指标发布的全套协作流程

    数据地图:提供元数据的快速索引,数据字典、数据血缘、数据特征信息的查询,相当于元数据中心的门户。

    如何建设数据中台?

    http://baijiahao.baidu.com/s?id=1651988047250956280&wfr=spider&for=pc

    数据中台在企业落地实践时,结合技术、产品、数据、服务、运营等方面,逐步开展相关工作。

    在这里插入图片描述

    1. 理现状。了解业务现状、数据现状、IT现状、现有的组织架构
    2. 定架构。确认业务架构、技术架构、应用架构、组织架构
    3. 建资产。建立贴近数据层、统一数仓层、标签数据层、应用数据层
    4. 用数据。对数据进行输出、应用。
    5. 数据运营。持续运营、持续迭代

    中台建设需要有全员共识,由管理层从上往下推进,由技术和业务人员去执行和落地是一个漫长的过程,在实施数据中台时,最困难的地方就是需要有人推动。

    数据湖的理解?

    数据湖是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。

    在这里插入图片描述
    在这里插入图片描述

    数仓最重要的是什么?

    个人认为是数据集成。

    企业的数据通常是存储在多个异构数据库中的,要进行分析,必须先要对数据进行一致性整合。

    集成整合后才可以对数据进行分析、挖掘数据潜在的价值。

    概念数据模型、逻辑数据模型、物理数据模型

    概念数据模型设计与逻辑数据模型设计、物理数据模型设计是数据库及数据仓库模型设计的三个主要步骤。

    概念数据模型CDM

    conceptual data model

    概念数据模型是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,以数据类的方式描述企业级的数据需求。

    概念数据模型的内容包括重要的实体与实体之间的关系。在概念数据模型中不包含实体的属性,也不包含定义实体的主键

    概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系

    逻辑数据模型LDM

    logical data model

    逻辑数据模型反应的是系统分析设计人员对数据存储的观点,是对概念数据模型的进一步的分解和细化。逻辑数据模型是根据业务规则确定的,关于业务对象、业务对象的数据项以及业务对象之间关系的基本蓝图

    逻辑数据模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键,指定实体的外键,需要进行范式化处理。

    逻辑数据模型的目标是尽可能详细的描述数据,但并不考虑在物理上如何实现

    物理数据模型PDM

    physical data model

    物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。

    物理数据模型的内容包括确定所有的表和列,定义外键用于确认表之间的关系,基于用户的需求可能要进行反范式化等内容。

    SCD的常用处理方式?

    slowly changing dimensions缓慢变化维度

    1. 不记录历史变化信息
    2. 添加列来记录历史变化
    3. 新插入数据行,并添加对应标识字段来记录历史数据。拉链表。

    元数据的理解?

    https://www.jianshu.com/p/f7c26b4ebe3c

    狭义来讲就是用来描述数据的数据

    广义来看,除了业务逻辑直接读写处理的业务数据,所有其他用来维护整个系统运转所需要的数据,都可以较为元数据。

    定义:元数据metadata是关于数据的数据。在数仓系统中,元数据可以帮助数据仓库管理员和数据仓库开发人员方便的找到他们所关心的数据;元数据是描述数据仓库内部数据的结构和建立方法的数据。按照用途可分为:技术元数据、业务元数据。

    技术元数据

    存储关于数据仓库技术细节的数据,用于开发和管理数据仓库使用的数据

    • 数据仓库结构的描述,包括数据模式、视图、维、层次结构和导出数据的定义,以及数据集市的位置和内容
    • 业务系统、数据仓库和数据集市的体系结构和模式
    • 由操作环境到数据仓库环境的映射,包括元数据和他们的内容、数据提取、转换规则和数据刷新规则、权限等。

    业务元数据

    从业务角度描述了数据仓库中的数据,他提供了介于使用者和实际系统之间的语义层,使不懂计算机技术的业务人员也能读懂数仓中的数据。

    • 企业概念模型:表示企业数据模型的高层信息。整个企业业务概念和相互关系。以这个企业模型为基础,不懂sql的人也能做到心中有数
    • 多维数据模型。告诉业务分析人员在数据集市中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。
    • 业务概念模型和物理数据之间的依赖。业务视图和实际数仓的表、字段、维的对应关系也应该在元数据知识库中有所体现。

    元数据管理系统?

    元数据管理往往容易被忽视,但是元数据管理是不可或缺的。一方面元数据为数据需求方提供了完整的数仓使用文档,帮助他们能自主快速的获取数据;另一方面数仓团队可以从日常的数据解释中解脱出来,无论是对后期的迭代更新还是维护,都有很大的好处。元数据管理可以让数据仓库的应用和维护更加的高效。

    元数据管理功能

    • 数据地图:以拓扑图的形式对数据系统的各类数据实体、数据处理过程元数据进行分层次的图形化展示,并通过不同层次的图形展现。
    • 元数据分析:血缘分析、影响分析、实体关联分析、实体差异分析、指标一致性分析。
    • 辅助应用优化:结合元数据分析功能,可以对数据系统的应用进行优化。
    • 辅助安全管理:采用合理的安全管理机制来保障系统的数据安全;对数据系统的数据访问和功能使用进行有效监控。
    • 基于元数据的开发管理:通过元数据管理系统规范日常开发的工作流程

    元数据管理标准

    • 对于相对简单的环境,按照通用的元数据管理标准建立一个集中式的元数据知识库
    • 对于比较复杂的环境,分别建立各部分的元数据管理系统,形成分布式元数据知识库,然后通过建立标准的元数据交换格式,实现元数据的集成管理。

    元数据管理系统

    自研

    apache atlas

    印象最深刻的项目是什么?为什么?亮点与优势?


    数仓如何确定主题域?

    https://www.jianshu.com/p/708f5606dd01

    主题

    主题是在较高层次上将数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对企业中某一宏观分析领域所涉及的分析对象。

    面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。

    主题是根据分析的要求来确定的。

    主题域

    从数据角度看(集合论)

    主题语通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域的确定由最终用户和数仓设计人员共同完成。

    从需要建设的数仓主题看(边界论)

    主题域是对某个主题进行分析后确定的主题的边界。

    数仓建设过程中,需要对主题进行分析,确定主题所涉及到的表、字段、维度等界限。

    确定主题内容

    数仓主题定义好以后,数仓中的逻辑模型也就基本成形了,需要在主题的逻辑关系中列出属性和系统相关行为。此阶段需要定义好数据仓库的存储结构,向主题模型中添加所需要的信息和能充分代表主题的属性组。

    如何控制数据质量?

    • 校验机制,每天进行数据量的比对 select count(*),早发现,早修复
    • 数据内容的比对,抽样比对
    • 复盘、每月做一次全量

    如何做数据治理?

    https://www.jianshu.com/p/44d7618f32b6

    数据治理不仅需要完善的保障机制,还需要理解具体的治理内容,比如数据应该怎么进行规范,元数据该怎么来管理,每个过程需要那些系统或者工具来配合?

    数据治理领域包括但不限于以下内容:数据标准、元数据、数据模型、数据分布、数据存储、数据交换、数据声明周期管理、数据质量、数据安全以及数据共享服务。
    在这里插入图片描述

    模型设计的思路?业务驱动?数据驱动?

    构建数据仓库有两种方式:自上而下、自下而上

    Bill Inmon推崇自上而下的方式,一个企业建立唯一的数据中心,数据是经过整合、清洗、去掉脏数据、标准的、能够提供统一的视图。要从整个企业的环境入手,建立数据仓库,要做很全面的设计。偏数据驱动

    Ralph Kimball推崇自下而上的方式,认为数据仓库应该按照实际的应用需求,架子啊需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期短,用户能很快看到结果。偏业务驱动

    数据质量管理

    https://blog.csdn.net/kuangfeng88588/article/details/99085074

    数据质量管理是对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的数据质量问题,进行识别、度量、监控、预警等,通过改善了提高组织的管理水平使数据质量进一步提高。

    数据质量管理是一个集方法论、技术、业务和管理为一体的解决方案。放过有效的数据质量控制手段,进行数据的管理和控制,消除数据质量问题,从而提高企业数据变现的能力。

    会遇到的数据质量问题:数据真实性、数据准确性、数据一致性、数据完整性、数据唯一性、数据关联性、数据及时性

    什么是数据模型?

    数据模型就是数据组织和存储的方法,通过抽象的实体以及实体间联系的形式来表达现实世界中事务的相互关系的一种映射,他强调从业务、数据存取和使用角度合理的存储数据。

    为什么需要数据仓库建模?

    数仓建模需要按照一定的数据模型,对整个企业的数据进行采集,整理,提供跨部门、完全一致的报表数据。

    合适的数据模型,对于大数据处理来讲,可以获得得更好的性能、成本、效率和质量。良好的模型可以帮助我们快速查询数据,减少不必要的数据冗余,提高用户的使用效率。

    数据建模进行全方面的业务梳理,改进业务流程,消灭信息孤岛,更好的推进数仓系统的建设。

    OLAP和OLTP的模型方法的选择?

    OLTP系统是操作事物型系统,主要数据操作是随机读写,主要采用满足3NF的实体关系模型存储数据,在事物处理中解决数据的冗余和一致性问题。

    OLAP系统是分析型系统,主要数据操作是批量读写,不需要关注事务处理的一致性,主要关注数据的整合,以及复杂大数据量的查询和处理的性能。

    3范式?

    • 每个属性值唯一,不具有多义性
    • 每个非主属性必须完全依赖于整个主键,而非主键的一部分
    • 每个非主属性不能依赖于其他关系中的属性

    数据仓库建模方法?

    有四种模型:ER模型、维度模型、Data Vault模型、Anchor模型。用的较多的是维度模型和ER模型。

    ER模型

    ER模型用实体关系模型描述企业业务,在范式理论上满足3NF。数仓中的3NF是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。

    采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据按照主题进行相似性整合,并进行一致性处理。

    ER模型特点:
    • 需要全方位了解企业业务数据
    • 实施周期较长
    • 对建模人员要求教高

    维度建模

    维度建模按照事实表维度表来构建数仓。

    维度建模从分析决策的需求出发构建模型,为分析需求服务。重点关注用户如何快速的完成数据分析,可以直观的反应业务模型中的业务问题,需要大量的数据预处理、数据冗余,有较好的大规模复杂查询的响应性能。

    事实表

    发生在现实世界中的操作性事件,其产生的可度量数值,存储在事实表中。从最细粒度级别来看,事实表的一行对应一个度量事件。事实表表示对分析主题的度量。‘

    事实表中包含了与各个维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型,且记录数不断增加,表数据量迅速增长。

    维度表

    维度表示分析数据时所用的环境。

    每个维度表都包含单独的主键列。维度表行的描述环境应该与事实表行完全对应。维度表通常比较宽,是扁平型的非规范表,包含大量的低粒度的文本属性。

    注意

    事实表的设计是以能够正确记录历史信息为准则

    维度表的设计是以能够以合适的角度来聚合主题内容为准则

    维度建模的三种模式
    • 星形模型:以事实表为中心,所有的维度直接连接在事实表上。由一个事实表和一组维度表组成。
    • 雪花模型:是对星形模型的扩展。雪花模型的维度表可以拥有更细的维度,比星形更规范一点。维护成本较高,且查询是要关联多层维表,性能较低
    • 星座模型:基于多张事实表,多张事实表共享维度信息
    维度建模步骤:
    • 选择业务过程
    • 选择粒度
    • 选定事实表
    • 选择维度

    事实表的类型?

    事实表有:事务事实表、周期快照事实表、累积快照事实表、非事实事实表

    事务事实表

    事务事实表记录的是事务层面的事实,保存的是最原子的数据,也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务记录一条记录。

    周期快照事实表

    以具有规律性的、可预见的时间间隔来记录事实。它统计的是间隔周期内的度量统计,每个时间段一条记录,是在事务事实表之上建立的聚集表。

    累积快照事实表

    累积快照表记录的不确定的周期的数据。代表的是完全覆盖一个事务或产品的生命周期的时间跨度,通常具有多个日期字段,用来记录整个生命周期中的关键时间点。

    在这里插入图片描述

    非事实型事实表

    https://www.cnblogs.com/lijun4017/archive/2010/08/05/1792293.html

    这个与上面三个有所不同。事实表中通常要保留度量事实和多个维度外键,度量事实是事实表的关键所在。

    非事实表中没有这些度量事实,只有多个维度外键。非事实型事实表通常用来跟踪一些事件或说明某些活动的范围。

    第一类非事实型事实表是用来跟踪事件的事实表。例如:学生注册事件

    第二类非事实型事实表是用来说明某些活动范围的事实表。例如:促销范围事实表

    数仓架构为什么要分层?

    • 分层可以清晰数据结构,使用时更好的定位和理解
    • 方便追踪数据的血缘关系
    • 规范数据分层,可以开发一些通用的中间层数据,能够减少极大的重复计算
    • 把复杂问题简单化
    • 屏蔽原始数据的异常。不必改一次业务就重新接入数据

    数据分层思想?

    理论上数据分为:操作数据层、数据仓库层、数据服务层。可根据需要添加新的层次,满足不同的业务需求。

    操作数据层ODS

    Operate Data Store操作数据存储。数据源中的数据经过ETL后装入ODS层。

    ODS层数据的来源一般有:业务数据库、日志、抓取等。

    数据仓库层DW

    根据ODS层中的数据按照主题建立各种数据模型。

    DW通常有:DWD、DWB、DWS

    DWD: data warehouse detail细节数据层,是业务层和数据仓库的隔离层。

    DWB: data warehouse base基础数据层,存储的是客观数据,一般用作于中间层。

    DWS: data warehouse service服务数据层,整合汇总分析某个主题域的服务数据。一般是大宽表。

    数据服务层/应用层ADS

    该层主要提供数据产品和数据分析使用的数据,一般会放在ES、Mysql系统中供线上系统使用

    数仓架构进化

    经典数仓架构:使用传统工具来建设数仓

    离线大数据架构:开始使用大数据工具来替代经典数仓中的传统工具

    Lambda架构:在离线大数据架构的基础上,使用流处理技术直接完成实时性较高的指标计算

    Kappa:实时处理变成了主要的部分,出现了以实时处理为核心的kappa架构

    离线大数据架构

    数据源通过离线的方式导入离线数仓中。下游应用根据业务需求选择获取数据的方式

    Lambda架构

    在离线数仓的基础上增加了实时计算的链路,并对数据源进行流式改造,实时计算去订阅消息队列,并推送到下游的数据服务中去。

    Lambda架构问题:同样的需求需要开发两套一样的代码;资源占用增多

    Kappa架构

    kappa架构可以认为是lambda架构的简化版,移除了lambda架构中的批处理部分。

    在kappa架构中,需求修改或者历史数据重新处理都通过上游重放完成

    kappa架构最大的问题是流式重新处理历史数据的吞吐能力会低于批处理,但可以通过增加计算资源来弥补

    总结

    真实场景中,是lambda架构和kappa架构的混合。大部分实时指标通过kappa架构计算,少量关键指标用lambda架构批量计算

    随着数据多样性的发展,数据库这种提前规定schema的模式显得力不从心。这时出现了数据湖技术,把原始数据全部缓存到某个大数据存储上,后续分析时根据需求去解析原始数据。简单来说,数据仓库模式是schema on write,数据湖模式是schema on read

    OLAP简介

    OLAP(On-line Analytical Processing),联机分析处理,其主要的功能在于方便大规模数据分析及统计计算,对决策提供参考和支持

    特点:数据量大、高速响应、灵活交互、多维分析

    OLAP分类

    存储类型分类

    ROLAP(RelationalOLAP)

    MOLAP(MultimensionalOLAP)

    HOLAP(HybridOLAP)

    处理类型分类

    • MPP架构
    • 搜索引擎架构
    • 预处理架构

    开源OLAP解决方案

    https://blog.csdn.net/weixin_42529806/article/details/97615618

    • Persto、SparkSQL、Impala等MPP架构和ROLAP的引擎
    • Druid和Kylin等预处理架构和MOLAP的引擎
    • ES这种搜索引擎架构
    • ClickHouse及IndexR这种列式数据库

    OLAP引擎

    https://www.cnblogs.com/kaleidoscope/p/10163678.html

    Presto

    Facebook开发的分布式大数据SQL查询引擎,专门进行快速数据分析

    特点

    • 可以将多个数据源的数据进行合并,可以跨越整个组织进行分析
    • 直接从HDFS读取数据,在使用前不需要大量的ETL操作

    查询原理

    1. 完全基于内存的并行计算
    2. 流水线
    3. 本地化计算
    4. 动态编译执行计划
    5. 小心使用内存和数据结构
    6. 类BlinkDB的近似查询
    7. GC控制

    Druid

    Druid是一个用于实时查询和分析的分布式实时处理系统,主要用于广告分析,互联网广告监控、度量和网络监控

    特点

    1. 快速的交互式查询——Druid的低延迟数据摄取架构允许事件在它们创建后毫秒内可被查询到。
    2. 高可用性——Druid的数据在系统更新时依然可用,规模的扩大和缩小都不会造成数据丢失;
    3. 可扩展——Druid已实现每天能够处理数十亿事件和TB级数据。
    4. 为分析而设计——Druid是为OLAP工作流的探索性分析而构建,它支持各种过滤、聚合和查询

    应用场景

    1. 需要实时查询分析
    2. 具有大量数据时,如每天数亿事件的新增、每天数10T数据的增加;
    3. 需要一个高可用、高容错、高性能数据库时。
    4. 需要交互式聚合和快速探究大量数据时

    Kylin

    Kylin是提供与Hadoop之上的SQL查询接口及多维分析能力以支持超大规模数据

    特点

    1. 用户为百亿以上数据集定义数据模型并构建立方体
    2. 亚秒级的查询速度,同时支持高并发
    3. 为Hadoop提供标准SQL支持大部分查询功能
    4. 提供与BI工具,如Tableau的整合能力
    5. 友好的web界面以管理,监控和使用立方体
    6. 项目及立方体级别的访问控制安全

    参考

    面试问题准备-数据仓库建模篇 https://blog.csdn.net/lurrass/article/details/89061562

    事实表的类型 https://blog.csdn.net/a6822342/article/details/99189806

    浅析非事实表 https://www.cnblogs.com/lijun4017/archive/2010/08/05/1792293.html

    展开全文
  • 联系:数据仓库是由数据库以一种方式组织起来的。 区别: (1)数据库强调范式,尽可能减少冗余; 数据仓库强调查询分析的速度,优化读取的操作,主要目的是做大量数据的查询。 (2) 数据库是行存储,数据仓库是列...

    1.数仓与关系数据库区别?

    联系:数据仓库是由数据库以一种方式组织起来的。
    区别:
    (1)数据库强调范式,尽可能减少冗余;
    数据仓库强调查询分析的速度,优化读取的操作,主要目的是做大量数据的查询
    (2) 数据库是行存储,数据仓库是列存储
    (3)数据库面向事务的,在线交易处理(OLTP)
    数据仓库是面向主题的、集成、相对稳定、反应历史变化存储历史数据(OLAP)。
    (4)数据仓库定期写入新数据,而不覆盖原有数据,而是给数据加上时间戳。
    (5)数据仓库两个基本元素:事实表和维度表
    事实表存储要查询的数据;维度是看待问题的角度,如时间、部门等。

    2.数仓为什么需要分层?优缺点?

    2.1 什么是数仓?

    面向主题的、集成的、相对稳定的、反映历史变化的数据集合
    为企业所有级别的决策制定过程,提供所有类型数据支撑的战略集合,主要是用于数据挖掘和数据分析,以建立数据沙盘为基础,为消灭消息孤岛和支持决策为目的而创建的。

    2.2 数据仓库建模的意义,为什么要对数据仓库分层?

    1. 用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大
    2. 通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对
      https://blog.csdn.net/qq_39093097/article/details/100126722
      版本二:
      只有数据模型
      将数据有序的组织和存储起来
      之后,大数据才能得到高性能、低成本、高效率、高质量的使用。
      1、清晰数据结构
      每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
      2、数据血缘追踪
      简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
      3、减少重复开发
      规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
      极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。
      4、用空间换时间,把复杂问题简单化。
      讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
      5、屏蔽原始数据的异常屏蔽业务的影响,不必改一次业务就需要重新接入数据。
      在业务或系统发生变化时,可以保持稳定或很容易扩展,提高数据稳定性和连续性。
      扩展内容见:https://blog.csdn.net/qq_22473611/article/details/103278799

    3.数仓链路很长怎么保证任务有序执行?

    4.消息队列(了解)

    消息队列
    1.什么是消息队列?
    可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ
    2.使用消息队列好处?
    1.通过异步处理提高系统性能(削峰、减少响应所需时间);
    2.降低系统耦合性。
    学习链接

    5 触发器

    5.1 是什么?

    1. 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。
    2. 触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。
    3. 触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
    4. 触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。
    5. 此外触发器是逻辑电路的基本单元电路,具有记忆功能,可用于二进制数据储存,记忆信息等。

    5.2 触发器有如下作用:

    可在写入数据表前,强制检验或转换数据
    触发器发生错误时,异动的结果会被撤销
    部分数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
    可依照特定的情况,替换异动的指令 (INSTEAD OF)。

    5.3 分类

    SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。
    来自百度百科

    6.表之间依赖是怎么触发的?(时间触发、版本触发)

    触发器
    1、什么是触发器?

    触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的
    2、触发器的作用?
    (1)可以强化约束,来维护数据的完整性和一致性;可以跟踪数据库内的操作,从而不允许未经许可的更新和变化
    (2)可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
    3、触发器分类
    触发时间:有before,after.
    触发事件:有insert,update,delete三种
    触发类型:有行触发、语句触发

    7.维度建模的方法?优缺点?

    7.1 什么是维度建模?

    1. 星型模型:是一种多维的数据关系。由一个事实表和一组维表组成,每个维表都有一个维作为主键,所有维的主键组合成事实表的主键。多维数据集的每一个维度都直接与事实表相连,不存在渐变维度,所以数据有一定冗余
    2. 雪花模型:雪花模型是当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上。雪花模型是对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。
    3. 星座模型:星座模型是数仓建设中的一种概念模型。这种模型往往应用于数据关系比星型模型和雪花模型更复杂的场合。事实星座模型需要多个事实表共享维度表,因而可以视为星形模型的集合,也称为星系模型。
      2.2 特点:
    4. 星型模型:关联关系简单、方便解耦,关联查询方便适用于大数据环境的数据模型建。但表中存在冗余数据。查询效率比雪花型高。
    5. 雪花模型:层级较多,关联不方便,但冗余数据较少
    6. 星座模型:在星型模型基础上共享维表。更适合复杂的数据环境。
      应用:
      雪花模型在**应用系统的表设计(关系型数据库)**中涉及的会比较多,
      **分析系统偏向于(大数据系统的数据库hadoop)**星型模型

    7.2 优缺点

    优点

    1. 简化查询-每次需要从数据库中获取一些信息时,可以不用编写冗长的查询
    2. 优化读取-针对读取进行了优化,可以写更少的JOIN,更快地返回结果
      缺点
    3. 对数据进行非规范化意味着一次性插入或更新会导致数据异常。在实践中,星型模型是通过批处理实来弥补这一问题
    4. 分析灵活性有限。星型模型通常是为特定目的而设计的。在分析需求方面,它不像规范化数据模型那样灵活

    8.事实表、维度表怎么建立?-设计原则

    1. 事实表:事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值或半可加事实。事实表产生于业务过程中而不是业务过程的描述性信息。在维度模型中也有表示多对多关系的事实,其他都是维度表。
    2. 维度表:维度表是对业务过程的上下文描述,主要包含代理键、文本信息和离散的数字。它是进入事实表的入口,丰富的维度属性给出了对事实表的分析切割能力。
      如果属性值是离散的,用于过滤和标记的,就放到维度表里,如果是属性值是连续取值,用于计算的,就放到事实表中
      首先,明确一个定义:
      代理键:维度表中的主键。
      创建维度表的规则
      主键(代理键,自动增加编号,数据仓库中只有唯一编号)
      业务键(业务键可以链接回数据源,具有业务含义)
      属性(来自数据源的描述性信息)
      有两种数据:主数据和事务数据。
      主数据是指实体(例如员工),而交易数据是指使用该实体执行的所有交易。
      主数据有限,而交易数据可能是数十亿。
      在维度表中,大多数数据是主数据。
      创建事实表的规则:
      主键(代理键/备用键,自动增加编号)
      外键(维度表中的主键/代理键/备用键)
      度量(addictive number/semi-addictive number)
      提示:事实表中没有描述性数据。
      转载自

    9.建模过程中逻辑模型和物理模型的区别?

    1、概念模型:就是从现实世界到信息世界的第一层抽象,确定领域实体属性关系等,使用E-R图表示,E-R图主要是由实体、属性和联系三个要素构成的。
    2、逻辑模型:是将概念模型转化为具体的数据模型的过程,即按照概念结构设计阶段建立的基本E-R图按选定的管理系统软件支持的数据模型(层次、网状、关系、面向对象),转换成相应的逻辑模型。这种转换要符合关系数据模型的原则。目前最流行就是关系模型(也就是对应的关系数据库)
    E-R图向关系模型的转换是要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码。这种转换一般按下面的原则进行:
    (1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。
    (2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但是关系的码会根据联系的类型变化,如果是:
    1:1联系,两端实体的码都成为关系的候选码。
    1:n联系,n端实体的码成为关系的码。
    m:n联系,两端实体码的组合成为关系的码。
    3、物理模型就根据逻辑模型对应到具体的数据模型的机器实现。物理模型是对真实数据库的描述。如关系数据库中的一些对象为表、视图、字段、数据类型、长度、主键、外键、索引、约束、是否可为空、默认值。
    4、三者关系:由上到下,先要概念设计,接着逻辑设计,再是物理设计,一级一级设计。

    10.哔哩哔哩up主投稿,对于看稿件这一行为怎么去建模?

    1. 数据模型的建立一般分为四步:
    需求分析(客户交流、理解需求、形成实体)
    概念模型设计 (形成E-R图)
    逻辑模型设计(对实体进行细化,细化成具体的表,同时丰富表结构。)
    物理模型设计
    实施运行维护
    2. 一般情况下,面对比较复杂的数据库建模, 规范的做法是:
    第一步: 需求分析,获得业务流程图,数据流图和数据字典
    第二步:根据数据流图和数据字典建立E-R图
    第三步:E-R图转换成为物理数据模型
    第四部:实施物理数据模型

    展开全文
  • 1.理解维度数据仓库——事实表、维度表、聚合表 参考自 1.1 事实表 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。 事实表中的每个列通常要么是键值列,要么是度量值列,但也可能包含其他参考...

    1.理解维度数据仓库——事实表、维度表、聚合表

    参考自

    1.1 事实表

    1. 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。
    2. 事实表中的每个列通常要么是键值列,要么是度量值列,但也可能包含其他参考目的的列——例如采购订单号或者发票号。
    3. 事实表中,每个度量值都有一个列不同事实表将有不同的度量值
    4. 事实表中对每个维度的最详细的项目成员都有数据行
    5. 事实是事实表几乎总会使用一个整数值来表示(维度)成员,而不使用描述性的名称。因为事实表往往会包含数量多得无法想象的数据行——在一个中等大小的数据仓库中,事实表动辄包含上百万行数据——使用整数键值可以有效地减小事实表的大小
    6. 事实表中使用整数键值时,维度成员的名称需要放到另一种表中——也就是维度表。通常,事实表中的每个维度都有一个维度表。
    7. 归纳:
      1)每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务。
      2)所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据
      3)包含在事实数据表中的“度量值”有两中:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。
      4)一般来说,**一个事实数据表都要和一个或多个纬度表相关联,**用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。

    1.2 维度表

    1. 维度表包含了维度的每个成员的特定名称。维度成员的名称称为“属性”(Attribute)
    2. 在数据仓库中,维度表中的键属性必须为维度的每个成员包含一个对应的唯一值。用关系型数据库术语描述就是,键属性称为主键列。每个维度表中的主键值都与任何相关的事实表中的键值相关。在维度表中出现一次的每个键值都会在事实表中出现多次
    3. 在事实表中,键值列(它是一对多关系的“多”的一方)称为外键列。关系型数据库使用匹配的**主键列(在维度表中)和外键列(在事实表中)**值来联接维度表到事实表。
    4. 维度信息移动到一个单独的表中,除了使得事实表更小外,还有额外的优点——可以为每个维度成员添加额外的信息
    5. 维度属性可以是可分组的,也可以是不可分组的。不可分组的属性通常称为成员属性(member property)。
    6. 某些可分组的属性可以组合起来创建一个自然层次结构(natural hierarchy)。例如假设Product有Category和Subcategory属性,在多数情况下,单个产品只会属于单个Subcategory,并且单个Subcategory只会属于单个Category。这将形成一个自然层次结构。在报表中,可能会显示Categories,然后允许用户从某个Category钻取到Subcategories,以及最终钻取到Products。

    1.3 结论:

    1、事实表就是你要关注的内容;
    2、维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。

    1.4 聚合表

    数据是按照最详细的格式存储在事实表中,各种报表可以充分利用这些数据。一般的查询语句在查询事实表时,一次操作经常涉及成千上万条记录,但是通过使用汇总、平均、极值等聚合技术可以大大降低数据的查询数量。因此,来自事实表中的底层数据应该事先经过聚合存储在中间表中。中间表存储了聚合信息,所以被称为聚合表,这种处理过程被称为聚合过程。

    2. 数据库三范式

    1. 第一范式,又称1NF,它指的是在一个应中的数据都可以组织成由行和列的表格形式,且表格的任意一个行列交叉点即单元格,都不可再划分为行和列的形式,实际上任意一张表格都满足1NF;
    2. 第二范式,又称2NF,它指的是在满足1NF的基础上,一张数据表中的任何非主键字段都全部依赖于主键字段没有任何非主键字段只依赖于主键字段的一部分。即,可以由主键字段来唯一的确定一条记录。比如学号+课程号的联合主键,可以唯一的确定某个成绩是哪个学员的哪门课的成绩,缺少学号或者缺少课程号,都不能确定成绩的意义。
    3. 第三范式,又称3NF,它是指在满足2NF的基础上,数据表的任何非主键字段之间都不产生函数依赖,即非主键字段之间没有依赖关系,全部只依赖于主键字段。例如将学员姓名和所属班级名称放在同一张表中是不科学的,因为学员依赖于班级,可将学员信息和班级信息单独存放,以满足3NF。

    3.如何检验数据仓库模型构建是否合理–京东面试题

    1. 数据是否完善,指标是否健全,维度表、事实表是否能涵盖所有的业务
    2. 规范度,模型、表名、字段名、格式
    3. 复用度。表格的复用度来衡量数仓的模型的好坏
    4. 其他:数据治理,配置生命周期,全量/增量减少存储,如果中间表可以通过其他表复现,可把中间表生命周期调短。

    4.数据质量管理–京东面试题

    1)正常
    时效减少,优化方式
    降低存储(设置增量表/全量表/拉链表)
    设置合理的生命周期,数据回溯可找回/或者通过其他表复现
    2)异常
    资源紧张–》日常数据监控
    数据倾斜问题–》缓解数据倾斜

    5.数据仓库、数据湖、数据集市的了解

    展开全文
  • 华为数据仓库面试

    2013-08-14 22:00:09
    华为数据仓库面试
  • 数据仓库面试题集锦(附答案和数仓知识体系)

    千次阅读 多人点赞 2021-04-30 14:46:24
    数据仓库知识体系 + 面试题集锦

    【数据仓库系列文章 - 传送门】 

    一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法)一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)_不吃西红柿-CSDN博客_事实表三种类型
    一篇文章搞懂数据仓库:元数据分类、元数据管理  一篇文章搞懂数据仓库:元数据分类、元数据管理_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实  一篇文章搞懂数据仓库:总线架构、一致性维度、一致性事实_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:数据应用--OLAP  一篇文章搞懂数据仓库:数据应用--OLAP_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa  一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:数据仓库规范设计  一篇文章搞懂数据仓库:数据仓库规范设计_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:常用ETL工具、方法  一篇文章搞懂数据仓库:常用ETL工具、方法_不吃西红柿-CSDN博客_数据仓库etl
    一篇文章搞懂数据仓库:四种常见数据模型  一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:数据治理(目的、方法、流程) 一篇文章搞懂数据仓库:数据治理(目的、方法、流程)_不吃西红柿-CSDN博客_数据仓库 数据治理
    一篇文章搞懂数据仓库:维度表(设计原则、设计方法) 一篇文章搞懂数据仓库:维度表(设计原则、设计方法)_不吃西红柿-CSDN博客
    一篇文章搞懂数据仓库:数据仓库的8个发展阶段  一篇文章搞懂数据仓库:数据仓库的8个发展阶段_不吃西红柿-CSDN博客_数据仓库发展史
    一篇文章搞懂数据仓库:三范式与反范式   一篇文章搞懂数据仓库:三范式与反范式_不吃西红柿-CSDN博客_数据仓库三范式

    目录

    数据仓库面试基础知识

    1、什么是数据仓库?

    2、数据仓库和数据库的区别?

    3、如何构建数据仓库?

    4、什么是数据中台?

    5、数据中台、数据仓库、大数据平台、数据湖的关键区别是什么?

    6、大数据有哪些相关的系统?

    7、如何建设数据中台?

    8、数据仓库最重要的是什么?

    9、概念模型、逻辑模型、物理模型分别介绍一下?

    10、SCD常用的处理方式有哪些?

    11、怎么理解元数据?

    12、数仓如何确定主题域?

    13、如何控制数据质量?

    14、模型设计的思路?业务驱动?数据驱动?

    15、为什么需要数据仓库建模?

    16、数据仓库建模方法有哪些?

    17、数仓架构为什么要分层?


    光阴似箭,岁月如刀。小编已经从刚毕业时堤上看风的白衣少年,变成了一个有五年开发经验的半老程序员。五年——是一个非常重要的时间节点,意味你见过很多套技术构架,学过很多技术组件,写过很多行代码,有了自己的技术理解、知识体系和编码风格。这个时候我们对待技术的态度已经从扩宽广度,慢慢转变成沉淀深度为主了。

    也是刚刚面试了北京各大厂,顺利拿到4个offer,趁热打铁,呕(dao)心(chu)沥(fu)血(zhi)总结了一些数据仓库的面试基础知识,希望能帮到大家,有需要内推的小伙伴加文末微信。

    数据仓库面试基础知识

    1、什么是数据仓库?

    权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

    1)数据仓库是用于支持决策、面向分析型数据处理;

    2)对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改

    2、数据仓库和数据库的区别?

    从目标、用途、设计来说

    1)数据库是面向事务处理的,数据是由日常的业务产生的,并且是频繁更新的;数据仓库是面向主题的,数据来源多样化,经过一定的规则转换得到的,用于分析和决策

    2)数据库一般用来存储当前事务性数据,如交易数据;数据仓库一般存储的是历史数据

    3)数据库设计一般符合三范式,有最大的精确度和最小的冗余度,有利于数据的插入;数据仓库设计一般不符合三范式,有利于查询

    3、如何构建数据仓库?

    数据仓库模型的选择是灵活的,不局限与某种模型方法;数据仓库数据是灵活的,以实际需求场景为导向;数仓设计要兼顾灵活性、可扩展性、要考虑技术可靠性和实现成本

    1)调研:业务调研、需求调研、数据调研

    2)划分主题域:通过业务调研、需求调研、数据调研最终确定主题域

    3)构建总线矩阵、维度建模

    总线矩阵:把总线架构列表形成矩阵形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上标记表示该业务处理过程与该维度相关(交叉探查)

    4)设计数仓分层架构

    5)模型落地

    6)数据治理

    4、什么是数据中台?

    数据中台是通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务和企业的业务有较强关联性,是企业所独有且能复用的,他是企业业务和数据的积淀,其不仅能降低重复建设,减少烟囱式协助的成本,也是差异化竞争的优势所在。

    数据中台是通过整合公司开发工具、打通全域数据、让数据持续为业务赋能,实现数据平台化、数据服务化和数据价值化。数据中台更加侧重于“复用”和“业务”。

    5、数据中台、数据仓库、大数据平台、数据湖的关键区别是什么?

    1)基础能力上的区别

    数据平台:提供的是计算和存储能力

    数据仓库:利用数据平台提供的计算和存储能力,在一套方法论的指导下建设的一整套的数据表

    数据中台:包含了数据平台和数据仓库的所有内容,将其打包,并且以更加整合以及更加产品化的方式对外提供服务和价值

    数据湖:一个存储企业各种各样原始数据的大型仓库,包括结构化和非结构化数据,其中湖里的数据可供存取、处理、分析和传输

    2)业务能力上的区别

    数据平台:为业务提供数据主要方式是提供数据集

    数据仓库:相对具体的功能概念是存储和管理一个或多个主题数据的集合,为业务提供服务的方式主要是分析报表

    数据中台:企业级的逻辑概念,体现企业数据产生价值的能力,为业务提供服务的主要方式是数据API

    数据湖:数据仓库的数据来源

    总的来说,数据中台距离业务更近,数据复用能力更强,能为业务提供速度更快的服务,数据中台在数据仓库和数据平台的基础上,将数据生产为一个个数据API服务,以更高效的方式提供给业务。数据中台可以建立在数据仓库和数据平台之上,是加速企业从数据到业务价值的过程的中间层。

    6、大数据有哪些相关的系统?

    数仓设计中心:按照主题域、业务过程,分层的设计方式,以维度建模作为基本理论依据,按照维度、度量设计模型,确保模型、字段有统一的命名规范

    数据资产中心:梳理数据资产,基于数据血缘,数据的访问热度,做成本的治理

    数据质量中心:通过丰富的稽查监控系统,对数据进行事后校验,确保问题数据第一时间被发现,避免下游的无效计算,分析数据的影响范围。

    指标系统:管理指标的业务口径、计算逻辑和数据来源,通过流程化的方式,建立从指标需求、指标开发、指标发布的全套协作流程

    数据地图:提供元数据的快速索引,数据字典、数据血缘、数据特征信息的查询,相当于元数据中心的门户。

    7、如何建设数据中台?

    数据中台在企业落地实践时,结合技术、产品、数据、服务、运营等方面,逐步开展相关工作

    1)理现状:了解业务现状、数据现状、IT现状、现有的组织架构

    2)定架构:确认业务架构、技术架构、应用架构、组织架构

    3)建资产:建立贴近数据层、统一数仓层、标签数据层、应用数据层

    4)用数据:对数据进行输出、应用

    5)数据运营:持续运营、持续迭代

    中台建设需要有全员共识,由管理层从上往下推进,由技术和业务人员去执行和落地是一个漫长的过程,在实施数据中台时,最困难的地方就是需要有人推动。

    8、数据仓库最重要的是什么?

    个人认为是数据集成和数据质量

    企业的数据通常存储在多个异构数据库中,要进行分析,必须对数据进行一致性整合,整合后才能对数据进行分析挖掘出潜在的价值;

    数据质量必须有保障,数据质量不过关,别人怎么会使用你的数据?

    9、概念模型、逻辑模型、物理模型分别介绍一下?

    1)概念模型CDM:概念模型是最终用户对数据存储的看法,反映了最终用户综合性的信息需求,以数据类的方式描述企业级的数据需求

    概念模型的内容包括重要的实体与实体之间的关系,在概念模型中不包含实体的属性,也不包含定义实体的主键

    概念模型的目的是统一业务概念,作为业务人员和技术人员之间的沟通桥梁,确定不同实体之间的最高层次的关系

    2)逻辑模型LDM:逻辑模型反映的是系统分析人员对数据存储的观点,是对概念模型的进一步分解和细化,逻辑模型是根据业务规则确定的,关于业务对象,业务对象的数据项以及业务对象之间关系的基本蓝图

    逻辑模型的内容包括所有的实体和关系,确定每个实体的属性,定义每个实体的主键,指定实体的外键,需要进行范式化处理

    逻辑模型的目标是尽可能详细的描述数据,并不考虑物理上如何实现

    3)物理模型PDM:物理模型是在逻辑模型的基础上,考虑各种具体的技术实现因素,进行数据体系结构设计,真正实现数据在数据仓库中的存放

    物理模型的内容包括确定所有的表和列,定义外键用确认表之间的关系,基于用户的需求可能要进行反范式化等内容

    10、SCD常用的处理方式有哪些?

    slowly changing dimensions 缓慢变化维度

    常见的缓慢变化维处理方式有三种:

    1)直接覆盖:不记录历史数据,薪数据覆盖旧数据

    2)新加一行数据(纵向扩展):使用代理主键+生效失效时间或者是代理主键+生效失效标识(保存多条记录,直接新添一条记录,同时保留原有记录,并用单独的专用字段保存)

    3)新加两个字段(横向扩展):一个是previous,一个是current,每次更新只更新这两个值,但是这样职能保留最近两次的变化(添加历史列,用不同的字段保存变化痕迹,因为只保存两次变化记录,使用与变化不超过两次的维度)

    11、怎么理解元数据?

    传送门:一篇文章搞懂数据仓库:元数据分类、元数据管理 —— 一篇文章搞懂数据仓库:元数据分类、元数据管理_不吃西红柿-CSDN博客

    狭义来讲就是:元数据就用来描述数据的数据

    广义来讲,除了业务逻辑直接读写处理的业务数据,所有其他用来维护整个系统运转所需要的数据,都可以认为是元数据

    在数仓中,元数据可以帮助数仓人员方便找到他们所关系的数据,是描述数仓内部数据的结构和建立方法的数据。按照用途可分为:技术元数据、业务员数据

    • 技术元数据:存储关于数据仓库技术细节的数据,用于开发和管理数仓使用的数据
    • 业务元数据:从业务角度描述了数据仓库中的数据,提供介于使用者和实际系统之间的语义层,使不懂计算机技术的业务人员也能读懂数仓中的数据

    元数据管理功能

    • 数据地图:以拓扑图的形式对数据系统的各类数据实体、数据处理过程元数据进行分层次的图形化展示,并通过不同层次的图形展现。
    • 元数据分析:血缘分析、影响分析、实体关联分析、实体差异分析、指标一致性分析。
    • 辅助应用优化:结合元数据分析功能,可以对数据系统的应用进行优化。
    • 辅助安全管理:采用合理的安全管理机制来保障系统的数据安全;对数据系统的数据访问和功能使用进行有效监控。
    • 于元数据的开发管理:通过元数据管理系统规范日常开发的工作流程(包括任务调度系统)。

    12、数仓如何确定主题域?

    主题是在较高层次上将数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域,在逻辑意义上,他是对企业中某一宏观分析领域所涉及的分析对象。

    面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。

    主题域通常是联系较为机密的数据主题的集合,可以根据业务的关注度,将这些数据主题划分到不同的主题域(也就是说对某个主题进行分析后确定的主题的边界)。

    关于主题域的划分,可以考虑几方面:

    1、按照业务或者业务过程划分:比如一个靠销售广告位置的门户网站主题域可能会有广告域,客户域等,而广告域可能就会有广告的库存,销售分析、内部投放分析等主题;

    2、根据需求方划分:比如需求方为财务部,就可以设定对应的财务主题域,而财务主题域里面可能就会有员工工资分析,投资回报比分析等主题;

    3、按照功能或者应用划分::比如微信中的朋友圈数据域、群聊数据域等,而朋友圈数据域可能就会有用户动态信息主题、广告主题等;

    4、按照部门划分:比如可能会有运营域、技术域等,运营域中可能会有工资支出分析、活动宣传效果分析等主题;

    总而言之,切入的出发点逻辑不一样,就可以存在不同的划分逻辑。在建设过程中可采用迭代方式,不纠结于一次完成所有主题的抽象,可先从明确定义的主题开始,后续逐步归纳总结成自身行业的标准模型。

    13、如何控制数据质量?

    传送门:一篇文章搞懂数据仓库:数据治理(目的、方法、流程)——  一篇文章搞懂数据仓库:数据治理(目的、方法、流程)_不吃西红柿-CSDN博客_数据仓库 数据治理

    1)校验机制,每天对比数据量,比如count(*),早发现,早修复

    2)数据内容的比对,抽样对比

    3)复盘、每月做一次全量

    14、模型设计的思路?业务驱动?数据驱动?

    构建数据仓库有两种方式:自上而下、自下而上

    Bill Inmon推崇自上而下的方式,一个企业建立唯一的数据中心,数据是经过整合、清洗、去掉脏数据、标准的、能够提供统一的视图。要从整个企业的环境入手,建立数据仓库,要做很全面的设计。偏数据驱动

    Ralph Kimball推崇自下而上的方式,认为数据仓库应该按照实际的应用需求,架子啊需要的数据,不需要的数据不要加载到数据仓库中。这种方式建设周期短,用户能很快看到结果。偏业务驱动

    15、为什么需要数据仓库建模?

    数仓建模需要按照一定的数据模型,对整个企业的数据进行采集,整理,提供跨部门、完全一致的报表数据。

    合适的数据模型,对于大数据处理来讲,可以获得得更好的性能、成本、效率和质量。良好的模型可以帮助我们快速查询数据,减少不必要的数据冗余,提高用户的使用效率。

    数据建模进行全方面的业务梳理,改进业务流程,消灭信息孤岛,更好的推进数仓系统的建设。

    16、数据仓库建模方法有哪些?

    传送门:一篇文章搞懂数据仓库:四种常见数据模型 —— 一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)_不吃西红柿-CSDN博客

    17、数仓架构为什么要分层?

    1. 分层可以清晰数据结构,使用时更好的定位和理解
    2. 方便追踪数据的血缘关系
    3. 规范数据分层,可以开发一些通用的中间层数据,能够减少极大的重复计算
    4. 把复杂的问题简单化
    5. 屏蔽原始数据的异常,下游任务没有感知异常

    【参考文献】

    1. 《数据中台:让数据用起来》   
    2. 《华为数据之道》
    3. 《大数据之路:阿里巴巴大数据实践》   
    4.   csdn博客大牛、知乎大佬文章

     

    添加公众号「信息技术智库」:

    🍅 硬核资料:20G,8大类资料,关注即可领取(PPT模板、简历模板、技术资料)
    🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
    🍅 面试题库:由各个技术群小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
    🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、前端等。

    👇👇送书抽奖丨技术互助丨粉丝福利👇👇

    展开全文
  • 数据仓库面试资料

    2012-10-19 13:25:16
    数据仓库面试资料.
  • 数据仓库面试常见问题集锦(带答案).docx
  • 数据仓库面试记录

    2020-07-22 21:06:49
    数据:table_log citycode webId ip tms … 100100 www.baidu.com 192.168.1.1 1595418314 ...
  • 数据仓库 面试 资料

    2009-03-24 21:45:58
    数据仓库 面试资料 自己收集 一些知识要点 和体会 原创。
  • 数据仓库面试常见问题集锦(带答案).zip
  • 数据仓库面试题,有可能不全,但是都是基础,是自己的学习笔记
  • 数据仓库面试题集锦

    2021-10-06 16:40:58
    数据仓库面试集锦
  • 大数据常见面试题之数据仓库

    千次阅读 2020-08-03 10:40:15
    例如销售分析就是一个分析领域,因此这个数据仓库应用的主题就是销售分析 主题是根据分析的要求来确定的.这与按照数据处理或应用的要求来组织数据是不同的.如在生产企业中,同样是材料供应,在操作型数据库系统中,人们...
  • 数据仓库架构师笔试题
  • 数据仓库工程师面试经验(2019)

    千次阅读 多人点赞 2019-09-12 15:04:55
    数据仓库面试经验分享(2019年)
  • 面试:在数据仓库中,你怎么验证你处理的数据的准确性 答:我说可以验证数据量。(这个也是瞎掰) 面试:那拉取过来的数据就是错误的怎么办? 我:。。。。。 求解大神,不胜感激,最好连贯完整一些
  • 数据仓库工程师面试

    千次阅读 2020-12-05 22:12:49
    表是作为oracle数据库存储数据的一种数据结构,视图是从已存在表上抽出逻辑相关的数据集合,其本身和表的区别不大,都是对数据一种存储,只不过我们可以在已有表的基础上抽取一部分我们想要的数据,视图是已经编译...
  • 数据仓库高级工程师 字节跳动面试

    千次阅读 2021-01-06 17:29:15
    本人面试的是 数据仓库高级工程师–推荐系统,从官网投的校招,2020年底最后一天发的简历,元旦假三天,四号早上来了通知 以下是面试题,希望有帮助 1.自我介绍 挑重点,与面试职位无关的经历不要说,除非特别牛逼那...
  • 数据仓库面试题资料

    万次阅读 多人点赞 2015-05-02 14:59:00
    什么叫数据仓库?  数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。 数据...
  • offer收割系列介绍: 1、分享桥哥本人或小伙伴在面试大厂时遇到的...2、涉及岗位:主要为大数据开发、数据仓库(桥哥干过的),其它岗位也可参考 3、涵盖技术:mysql、hadoop、hive、Spark、Flink、Kudu、Impala等...
  • 2020年大厂面试题-数据仓库

    千次阅读 2020-11-25 11:40:00
    每日一句一件事无论太晚或者太早,都不会阻拦你成为你想成为的那个人,这个过程没有时间的期限,只要你想,随时都可以开始。from 《返老还童》以下面试题均为身边朋友面试大厂所提供;且后期将不...
  • 数据仓库、商业智能相关笔试题、面试题(带答案)
  • 数据仓库常用面试知识

    万次阅读 2018-02-26 09:46:43
    什么叫数据仓库数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。 数据仓库...
  • 数据仓库工程师面试题目(不定期更新)

    千次阅读 多人点赞 2020-04-30 00:08:53
    增量拉链针对的是历史表情况,由于数据仓库中记录了大部分数据历史表变化情况,因此增量拉链加载策略在数据仓库中是使用比较广泛的一种加载策略。通常这种历史表都含有start_date和end_date字段,首先全字段对比源...
  • 经历这两个月的面试,笔者发现在数据仓库、数据开发的面试中,各个公司考察的点大同小异,正好借这个机会写篇文章总结一下,也给大家伙提供一些参考。 笔者的基本面试情况:前期大概准备了半个月到一个月,然后从年...
  • 点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源数据仓库的定义?首先,用于支持决策,面向分析型数据处理;其次,对多个异构的数据源有效集成,集成后按照主题进行重组,并包含历史数据,...
  • 导读:本文将带你一起走进蚂蚁金服大数据数仓面试。文末加群,即有机会与作者『潇傲江湖』群内沟通,高手对决。 蚂蚁金服大数据数仓岗位的面试经历 一、前言 本人一直在外企做传统数仓也...
  • 【社招】快手_数据仓库_面试题整理

    千次阅读 热门讨论 2020-07-06 19:45:01
    一、面试的是大数据开发岗(偏数据仓库),以下是面试题。 技术面一共三面,我将问题hui 1 讲一下你门公司的大数据项目架构 2 你在工作中都负责哪一部分 3 spark提交一个程序的整体执行流程。(包括向yarn申请资源,...
  • 进入DATE时代,大数据技术...这里黑马程序员主要和大家分享一下数据仓库工具hive相关的面试题! 1、 Hive 的 join 有几种方式,怎么实现 join 的?答:有3 种 join 方式: 1)在 reduce 端进行 join,最常用的 join 方

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,150
精华内容 10,460
关键字:

数据仓库面试