当前位置 博文首页 > 大数据manor的博客 :?[面试进阶]Hive数据仓库的设计,项目中分

    大数据manor的博客 :?[面试进阶]Hive数据仓库的设计,项目中分

    作者:[db:作者] 时间:2021-09-13 09:54

    在这里插入图片描述

    🚩 问题分析

    本题考察的是公司中数仓的真实使用场景,和面试者的理解。

    🚩 核心问题讲解

    数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自下而上流入数据仓库后,向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。

    源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。

    数据仓库层(DW):也称为细节层,DW 层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。

    数据应用层(DA 或 APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。

    数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动,都可以认为是 ETL(抽取 Extra, 转化 Transfer, 装载 Load)的过程,ETL 是数据仓库的流水线,也可以认为是数据仓库的血液。它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持 ETL 的正常和稳定。

    为什么要对数据仓库分层?

    用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据;不分层的话,如果源业务系统的业务规则发生变化,将会影响整个数据清洗过程,工作量巨大。

    通过数据分层管理可以简化数据清洗的过程。因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒。每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

    🚩 问题扩展

    元数据是数据仓库管理系统的重要组成部分,元数据管理是企业级数据仓库中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。

    构建数据仓库的主要步骤之一是 ETL。这时元数据将发挥重要的作用,它定义了源数据系统到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。数据抽取和转换的专家,以及数据仓库管理员,正是通过元数据高效地构建数据仓库。

    用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制报表。

    数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。

    🚩 结合项目中使用

    大数据项目中经常使用这些数据模型方法来更优化地组织和存储数据,以便获得更好的性能。

    cs