数仓面试问题

数仓面试问题

数仓分层理论

  • 贴源层:作用是讲业务系统源数据落地到数据仓库中,hive中建设为text表,不保存历史
  • 历史层:hive中通常建为orc表,保存贴源层每天历史数据,为后续数仓提供数据服务
  • 标准层(仓库层):针对实际业务划分主题域,并对源系统数据进行清洗以及标准化。清洗不同格式日期格式,空格等问题,并根据词根对表、以及字段命名标准化,同时对数据码值进行国标标准化,例如证件类型,职业等 (通常使用维度建模)
  • 轻度汇总层:根据实际业务与需求,对数据进行轻度汇总,基本上都是大宽表,一般汇总到客户维度
  • 应用层(报表层)(指标层):根据具体需求生成具体的数据,并推送数据到应用系统中

为什么对数仓分层

  • 数仓设计的根本原因是为了解决业务问题,数仓分层会把问题进行拆分,复杂的问题简单化。
  • 数据表管理混乱,分层后数据结构更加清晰,每一层做的事情一目了然,遇到事情可以更好的定位。
  • 数据分层后,每一层都会进行对应的数据处理以及加工,其结果可以复用,减少大量重复开发工作。
  • 源系统业务发生变化整个数仓涉及条线会重新开发,工作量巨大,若源发生变动,只需要改动部分层。

处理大数据过程中如何保证得到期望值

  • 数据接入阶段不丢失数据
  • ETL阶段做好清洗和转换工作
  • 汇总与加工阶段要保证加工的逻辑与需求相匹配

建模中星型模型和雪花模型的区别

  • 星形模型:最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,维表之间没有关联。
  • 雪花模型:维表也可以作为事实表存在,导致事实表在使用中需要关联多层维表。
  • 星座模型:多张事实表共享维度信息。

什么是数据仓库?

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

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

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

如何构建数据仓库

  • 调研:业务调研、需求调研、数据调研
  • 划分主题域:通过业务调研、需求调研、数据调研最终确定主题域
  • 构建总线矩阵、维度建模
  • 设计数仓分层架构
  • 模型落地
  • 数据治理

什么是数据中台

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

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

基础能力上的区别

  • 数据平台:提供的是计算和存储能力
  • 数据仓库:利用数据平台提供的计算和存储能力,在一套方法论的指导下建设的一整套的数据表
  • 数据中台:包含了数据平台和数据仓库的所有内容,将其打包,并且以更加整合以及更加产品化的方式对外提供服务和价值
  • 数据湖:一个存储企业各种各样原始数据的大型仓库,包括结构化和非结构化数据,其中湖里的数据可供存取、处理、分析和传输

业务能力上的区别

  • 数据平台:为业务提供数据主要方式是提供数据集
  • 数据仓库:相对具体的功能概念是存储和管理一个或多个主题数据的集合,为业务提供服务的方式主要是分析报表
  • 数据中台:企业级的逻辑概念,体现企业数据产生价值的能力,为业务提供服务的主要方式是数据API
  • 数据湖:数据仓库的数据来源

总结:

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

SCD(缓慢变化维)常用的处理方式有哪些?

  • 直接覆盖:不记录历史数据,薪数据覆盖旧数据
  • 新加一行数据(纵向扩展):使用代理主键+生效失效时间或者是代理主键+生效失效标识(保存多条记录,直接新添一条记录,同时保留原有记录,并用单独的专用字段保存)
  • 新加两个字段(横向扩展):一个是previous,一个是current,每次更新只更新这两个值,但是这样职能保留最近两次的变化(添加历史列,用不同的字段保存变化痕迹,因为只保存两次变化记录,使用与变化不超过两次的维度)

数仓如何确定主题域?

  • 按照业务或者业务过程划分:比如一个靠销售广告位置的门户网站主题域可能会有广告域,客户域等,而广告域可能就会有广告的库存,销售分析、内部投放分析等主题;
  • 根据需求方划分:比如需求方为财务部,就可以设定对应的财务主题域,而财务主题域里面可能就会有员工工资分析,投资回报比分析等主题;
  • 按照功能或者应用划分::比如微信中的朋友圈数据域、群聊数据域等,而朋友圈数据域可能就会有用户动态信息主题、广告主题等;
  • 按照部门划分:比如可能会有运营域、技术域等,运营域中可能会有工资支出分析、活动宣传效果分析等主题;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值