当前位置:   article > 正文

面试中的数据模型设计问题该怎么回答?

面试中的数据模型设计问题该怎么回答?

面试中关于数据模型设计是一个很常见的问题,这个问题很宽泛、看起来很简单,但是想回答好并不容易。

这篇文章很短,我们就简单聊一下这个问题。

问题本身

模型设计本身是一个开放性的问题,什么意思呢?这个问题并没有100%对的标准答案。

当然各种社区有很多关于模型设计的方法论、规范性质的文章可以参考,但是这些理论不足以支持你拿到一个面试官满意的评价。

这个问题到底该怎么回答?

下面这个思路供大家参考。

先说核心基础内容

在做数仓建模、模型设计时,首先我们要表达出来整体的建设思路,这个建设思路必须包含下面这几个内容:

  1. 模型的分层

  2. 数据域的划分和业务过程

  3. 开发命名规范

可以在这些内容的基础上进行扩展,你可以把某个核心业务场景带入进来,告诉面试官你在真实场景中是如何做的。

例如你可以在某个场景中按照不同的模型设计方法做对比,然后告诉面试官你们最终的选择和原因。

有真实的业务场景帮你做背书,比「虚空」描述来的更加可信和有说服力。

再强调建设思路

建设思路这部分,我非常建议大家可以从模型设计的一些基本原则入手。分别在维度层、明细层、汇总层以及可能有的数据集市做描述,例如:

维度层

可以强调你们在维度层建设的时候的一些基本原则,例如不做跨域关联、不做基于业务过程的二次加工,核心原则是保障维度表的质量和时效等。

明细层

在明细层你可以表达,明细层是维度建模的核心。在明细层的设计中会包含业务过程、维度属性以及通用的业务逻辑封装,尽量多的冗余维度属性和事实字段,提升覆盖度和易用性。

汇总层

在汇总层可以表达重点关注,指标的计算口径统一、提升复用性,并且汇总层还会承担指标的标准化沉淀。核心原则是减少重复加工,沉淀某个业务粒度下的业务过程指标。

另外如果你们还有关于数据集市的建设,可以表达你们的考量是什么?例如易用性?可扩展性?冗余各种跨域关联计算的高度汇总指标?等等。

这些内容都是建设思路的表达,最好结合具体的真实的业务过程来跟面试官交流,并且在表达过程中要有自己的思考。这么做的优点是什么?缺点又是什么?

最后概括设计原则

可以总结一下模型设计的一些原则,例如可以从下面内容来表达:高内聚、低耦合,公共逻辑抽象,扩展性,成本考量等。

上面的内容最好结合实际的业务场景表达,并且可以针对性的在某个点进行展开,例如可以通过数据冗余降低数据的查询和更新成本等。

总之

这个问题是一个宽泛、无标准答案的问题。

如果你实在不知道如何下手,可以参考我上面的思路。或者结合自己掌握的关于建模的其他理论、实践新增或者减少。

「言之有物」「思路清晰」 是回答好这个问题的关键。

283b40a8d314c3fcc5eee791f1f2e8af.png300万字!全网最全大数据学习面试社区等你来!

如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

8c89e98f89f67338696d6982a3fe3b99.png

5fd17ba1fc7b283c225d145b535e2174.jpeg

全网首发|大数据专家级技能模型与学习指南(胜天半子篇)

互联网最坏的时代可能真的来了

我在B站读大学,大数据专业

我们在学习Flink的时候,到底在学习什么?

193篇文章暴揍Flink,这个合集你需要关注一下

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

我们在学习Spark的时候,到底在学习什么?

在所有Spark模块中,我愿称SparkSQL为最强!

硬刚Hive | 4万字基础调优面试小总结

数据治理方法论和实践小百科全书

标签体系下的用户画像建设小指南

4万字长文 | ClickHouse基础&实践&调优全视角解析

【面试&个人成长】社招和校招的经验之谈

大数据方向另一个十年开启 |《硬刚系列》第一版完结

我写过的关于成长/面试/职场进阶的文章

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/584831
推荐阅读
相关标签
  

闽ICP备14008679号