当前位置 博文首页 > 大数据manor的博客 :?[面试进阶]在Hive数据仓库中的建模方式是

    大数据manor的博客 :?[面试进阶]在Hive数据仓库中的建模方式是

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

    在这里插入图片描述

    🚩 问题分析

    本题主要是为了考察面试人员对于业务的熟悉和理解程度,单讲业务建模类型是相对容易的,但是切合业务进行建模就值得我们多多思考了。

    🚩 核心问题讲解

    Hive作为数据仓库,同关系型数据库开发过程类似,都需要先进行建模。所谓建模,就是对表之间指定关系方式。建模在Hive中大致分为星型、雪花型和星座型。

    要对建模深入理解,首先需要对Hive数仓中的集中表概念进行界定。Hive中的表从形态上分内部表、外部表、桶表、分区表。

    在数据逻辑上划分为维度表和事实表。维度表等价于我们常说的字典表。事实表就是字典表之外的数据表。

    ? 星型

    多张维度表,一张事实表,维度表之间没有关系。

    查询性能要好些,存储有冗余的。星型模型使用的比较多。

    ? 雪花型

    雪花型是星型建模的扩展,维度表之间有关系。

    存储减少冗余,查询性能有损失,需要多级连接。和星型模型的共性就是只有一张是事实表。

    ? 星座型

    星座型也是星型模型的扩展,存在多张事实表。

    🚩 问题扩展

    扩展性差的时候,记住这样一句话:当增加新业务的时候,就需要增加相应的表。

    🚩 结合项目中使用

    例如:某个业务系统的信息没有提供汇总表,而是新增一种新的业务,就需要新增一张数据表。

    我们统计业务量的时候,要拿大几十张数据表进行关联,报表执行效率很差,后面就直接在数据仓库上帮源系统做了张新业务的汇总表,提高了后续报表的加工效率,也屏蔽了新增业务品种对报表的影响。

    这里我们可以结合书仓管设计的基本特性来考虑:

    (1)清晰数据结构

    (2)数据血缘追踪

    (3)减少重复开发

    (4)复杂问题简单化

    (5)屏蔽原始数据的异常

    (6)屏蔽业务的影响,不必改一次业务就需要重新接入

    我们可以依照这些概念,哪些基本数据分到数仓层,再结合我们的业务需求,逐层构建各个业务上的集市层。

    可以有效减少我们后期运营维护的各项成本。

    cs