前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试中的数据模型设计问题该怎么回答?

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

作者头像
王知无-import_bigdata
发布2024-05-15 18:19:31
1110
发布2024-05-15 18:19:31
举报

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

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

问题本身

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

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

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

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

先说核心基础内容

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

  1. 模型的分层
  2. 数据域的划分和业务过程
  3. 开发命名规范

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

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

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

再强调建设思路

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

维度层

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

明细层

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

汇总层

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

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

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

最后概括设计原则

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

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

总之

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据技术与架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题本身
  • 先说核心基础内容
  • 再强调建设思路
    • 维度层
      • 明细层
        • 汇总层
        • 最后概括设计原则
        • 总之
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档