MaxCompute大数据实践,电商数据仓库的星型模型和传统星型的区别

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 作者:王永伟 在Kimball所著的《数据仓库工具箱》一书中,对于维度模型设计采用的4步设计方法:1.选择业务过程 2.声明粒度 3.确定维度 4.确定事实。 在当前的互联网大数据环境下,面对复杂的业务场景,为了更有效准确地进行维度模型建设,基于Kimball的4步维度建模方法,我们进行了更进一步的改进。

作者:王永伟

  在Kimball所著的《数据仓库工具箱》一书中,对于维度模型设计采用的4步设计方法:1.选择业务过程 2.声明粒度 3.确定维度 4.确定事实。

在当前的互联网大数据环境下,面对复杂的业务场景,为了更有效准确地进行维度模型建设,基于Kimball的4步维度建模方法,我们进行了更进一步的改进。

  • 第一步:选择业务过程及确定事实表类型

    在明确了业务需求以后,接下来需要进行详细的需求分析,对业务的整个生命周期进行分析,明确关键的业务步骤,从而选择与需求有关的业务过程。

    以淘宝的正向订单流转为例:

    abebb3e4eef0ebbac6f248b80e321ebe449ca574 

    业务过程通常用行为动词表示,表示业务执行的活动。比如图中的淘宝订单流转的业务过程有四个:创建订单、买家付款、卖家发货、买家确认收货。在明确了流程所包含的业务过程后,需要根据具体的业务需求来选择与维度建模有关的业务过程。比如选择买家付款这个业务过程;还是选择创建订单和买家付款这两个业务过程,具体根据业务情况来确定。

    在选择了业务过程以后,相应的事实表类型也随之确定了。比如选择买家付款单个业务过程,那么事实表应为只包含买家付款这一个业务过程的单事务型事实表;如果选择的是所有这四个业务过程,并且需要分析各个业务过程之间的时间间隔,那么所建的事实表应为包含了所有四个业务过程的累积快照型事实表。

  • 第二步:声明粒度

    粒度的声明是事实表建模非常重要的一步,意味着精确定义事实表的每一行表示什么业务含义,粒度传递的是与事实表度量有关的细节层次。明确的粒度能确保对事实表中行的意思的理解不会产生混淆,保证所有的事实按照同样的细节层次记录。

    应该尽量选取最细级别的原子粒度,以确保事实表的应用具有最大的灵活性。同时对于订单过程而言,粒度可以被定义为最细的订单级别。比如淘宝订单中有父子订单的概念,既一条子订单对应一类商品,如果拍下了多种商品,则每种商品对应一条子订单;这些子订单一同结算的话,则会生成一条父订单。那么在这个例子中,事实表的粒度应该选择为子订单级别。

  • 第三步:确定维度

    完成粒度声明以后,也就意味着确定了主键,对应的维度组合以及相关的维度字段就可以确定了,应该选择能够描述清楚业务过程所处的环境的维度信息。比如淘宝的订单付款事务事实表中,粒度为子订单,相关的维度信息有买家维度、卖家维度、商品维度、收货人信息、业务类型、订单时间等。

  • 第四步:确定事实

    事实可以通过回答“过程的度量是什么”来确定。应该选择与业务过程有关所有事实,且事实的粒度要与所声明的事实表粒度一致。事实有可加性、半可加性、非可加性事实,需要将不可加事实分解为可加的组件。

    在淘宝的订单付款事务事实表中,同粒度的事实有子订单分摊的支付金额、邮费、优惠金额等。

  • 第五步:冗余维度

    在传统的维度建模星型模型中,对于维度的处理是需要单独存放在专门的维度表中,通过事实表中外键的方式获取维度。这样做的目的是为了减少事实表的维度冗余,从而减少存储消耗。而在大数据的事实表模型设计中,更多的考虑是提高下游用户的使用效率,降低数据获取的复杂性,减少关联的表数量。所以通常的事实表中会冗余方便下游用户使用的常用维度,以实现对事实表的过滤查询、控制聚合层次、排序数据以及定义主从关系等操作。

    比如在淘宝订单付款事务事实表中,通常会冗余大量的常用维度字段,以及商品的类目、卖家店铺等维度信息。


   更多数仓理论请关注:《 大数据之路:阿里巴巴大数据实践  


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
存储 缓存 分布式计算
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
37 4
|
1月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
84 0
|
20天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
ly~
|
1月前
|
供应链 搜索推荐 安全
大数据模型的应用
大数据模型在多个领域均有广泛应用。在金融领域,它可用于风险评估与预测、智能营销及反欺诈检测,助力金融机构做出更加精准的决策;在医疗领域,大数据模型能够协助疾病诊断与预测、优化医疗资源管理和加速药物研发;在交通领域,该技术有助于交通流量预测、智能交通管理和物流管理,从而提升整体交通效率;电商领域则借助大数据模型实现商品推荐、库存管理和价格优化,增强用户体验与企业效益;此外,在能源和制造业中,大数据模型的应用范围涵盖从需求预测到设备故障预测等多个方面,全面推动了行业的智能化转型与升级。
ly~
101 2
|
3月前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
3月前
|
消息中间件 存储 大数据
大数据-数据仓库-实时数仓架构分析
大数据-数据仓库-实时数仓架构分析
141 1
|
3月前
|
存储 SQL 分布式计算
MaxCompute 在大规模数据仓库中的应用
【8月更文第31天】随着大数据时代的到来,企业面临着海量数据的存储、处理和分析挑战。传统的数据仓库解决方案在面对PB级甚至EB级的数据规模时,往往显得力不从心。阿里云的 MaxCompute(原名 ODPS)是一个专为大规模数据处理设计的服务平台,它提供了强大的数据存储和计算能力,非常适合构建和管理大型数据仓库。本文将探讨 MaxCompute 在大规模数据仓库中的应用,并展示其相对于传统数据仓库的优势。
127 0
|
4月前
|
机器学习/深度学习 分布式计算 运维
MaxCompute产品使用合集之生产环境的a表和开发环境的a表的主要区别是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
自然语言处理 Cloud Native 关系型数据库
云原生数据仓库使用问题之分布键和分区键有什么区别
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
1月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 下一篇
    无影云桌面