2023.11.29 -hmzx电商平台建设项目 -核销主题阶段总结

2023-12-01 13:04

本文主要是介绍2023.11.29 -hmzx电商平台建设项目 -核销主题阶段总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.准备源数据

2.准备数仓工具进行源数据同步到ods层,本项目使用Datax

 3.使用Datax完成数据同步前建表时的方案选择

3.1同步方式区别:

3.2存储格式和压缩区别:

4.在hive中创建表,共31个表

5.数仓概念 和 数仓建模方案

5.1数仓的基本概念

5.2 数仓建模方案

关系建模:

 维度建模:

两张表关系:

数仓发展的三种模型:

 5.3数仓建设方案:

6.使用海豚调度完成ODS层到DWD层数据导入

6.1 先在DWD层建表

6.2 DWD层导入数据准备

6.3使用海豚调度平台创建导入数据的工作流,部署上线

​编辑

7.核销主题数仓建模

7.1核销主题需求

7.1.1 商品销售情况(核销)分析

7.1.2经营情况(已核销)分析

7.1.3 门店营销(核销)情况分析

销售渠道需求:

日清活动需求:

涉及表:


 

1.准备源数据

本项目的源数据层,由本地的Mysql和Sqlserver中而来,共31张表

销售表,会员表,订单表,库存表都称为指标/事实表,记录实际的业务数据 

2.准备数仓工具进行源数据同步到ods层,本项目使用Datax

datax的介绍:离线数据同步工具

 3.使用Datax完成数据同步前建表时的方案选择

3.1同步方式区别:

a.全量覆盖:建表时不需要构建分区表,每次一都是将之前的数据全部删除,重新导入 ,弊端是会没有历史数据

b.全量同步:建表时要构建分区表,分区字段与更新周期保持一致,每一次导入都是将表中所有数据导入到新的分区,弊端是如果新增的量很少,每次都是完全同步,会极大占用存储空间,以及有非常多的重复数据.

c.仅新增:建表时需要构建分区表,分区字段与更新周期保持一致,每一次导入都是将新增的数据导入到新的分区中

d.新增并更新:建表时需要构建分区表,分区字段与更新周期保持一致,每一次导入都是将新增的数据和更新的数据导入到一个新的分区中

e.缓慢渐变维:为了维护变化的数据, 有以下方法  1.直接覆盖 2.将新增和更新的数据放置到一个新的分区. 3.拉链表新增两个字段,一个开始一个结束,当数据发送变化的时候,将之前的数据结束时间调整为上一天的日期,新增一条新变更后的数据,开始时间为上一条结束时间

3.2存储格式和压缩区别:

存储格式一般选择orc ,  压缩方案:读多写少为snappy  /  写多读少为zlib或者gz

4.在hive中创建表,共31个表

构建的31张表分为8个维度表,23个业务数据表(事实表,指标表)

全量覆盖:适用于一般数据量较少,并且长时间不会改变,也不需要维护历史变化.  用于维度表,销售额目标等

全量同步:适用于保留历史快照, 用于每天门店商品库存天表.

仅新增:适用于数据量比较大,不需要维护历史变化的, 用于各种信息表,调货表

新增且更新:适用于数据量大,又需要维护历史变化,比如会员的信息表,商城订单明细表

5.数仓概念 和 数仓建模方案

5.1数仓的基本概念

5.2 数仓建模方案

关系建模:

 维度建模:

两张表关系:

1.事实表:根据分析的主题,主体所对应的表一般为事实表;事实表一般是由一堆其他表主键聚集的,事实表一般是由用户某种行为而产生的

2.维度表:在对事务进行分词处理的时候,在统计某个维度的时候,需要关联其他的表,这些表就是维度表.

数仓发展的三种模型:

 5.3数仓建设方案:

6.使用海豚调度完成ODS层到DWD层数据导入

6.1 先在DWD层建表

DWD层: 明细层

  • 作用: 根据要分析的主题, 从ODS层抽取相关的数据, 对数据进行清洗转换处理工作, 然后将数据加载到DWD层, 一般将此层称为 大聚合层, 一般将所有相关的数据全部糅杂在一个表中, 在此过程中, 可以进行一定的维度退化操作

  • 什么叫转换处理呢? 
        比如说: 对于时间而言, 在ODS表中有一个时间字段, 字段数据为:  2020-12-10 15:30:30
        说明:
            在ODS层这个时间字段上, 糅杂了太多字段数据, 包含 年  月  日 小时 分钟 秒
        此时, 需要将字段导入到DWD层时候, 将其转换为  年 月 日 小时 ...

维度层数据都是系统基础数据, 数据质量比较高, 顾一般不需要进行清洗处理操作

ods_dim_category_f进行了分类拉平操作

 ods_dim_goods_info_f将分类ID替换为对应一二三级分类ID,编码和名称

 ods_dim_store_f 门店表进行了降维操作 变成 dwd_dim_store_i

门店表: 在门店宽表构建时,就添加了门店面积信息和区域名称信息,门店面积信息可以用来计算坪效等,区域名称信息可以用来上卷时显示区域名称。

  • 其中门店面积信息可以从分店面积明细表中获取。先取实际经营面积,如果取不到(实际经营面积为空或0)再取经营面积。

  • 其中区域名称信息从店组信息表中取,store_group_type_no = ‘04’即对应区域的编码和名称。

  • 其中 store_type_code和management_type_code 需要转换为整数类型

新增了dwd_dim_store_clear_goods_i门店商品日清表,在门店商品表dwd_dim_store_goods_i的基础上筛选出日清数据,结构与门店商品表一致

6.2 DWD层导入数据准备

DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 

1.dim.dwd_dim_date_f时间维度表:不需要任何处理,直接将ODS层数据导入到DWD层即可

2.dim.dwd_dim_category_statistics_i 商品分类表进行拉宽处理

3.dim.dwd_dim_goods_i 商品表 ,将ods商品表和dwd分类表根据分类id进行关联

4.dim_dwd_dim_store_goods_i 门店商品表 , 将ods门店商品表和dwd分类表 根据分类id进行关联

5.dim_dwd_dim_store_clear_goods_i 日清门店商品表, 在门店商品表处理完后,通过条件where is_clear  = 1 即可

6.dim_dwd_dim_source_type_map_i 交易类型映射表,直接从ods导入dwd即可

7.dwd_dim_store_i 门店表 

6.3使用海豚调度平台创建导入数据的工作流,部署上线

DS的架构

7.核销主题数仓建模

核销主题:分为售卖主题-下单时间 ,  核销主题-订单完成时间/库存处理时间

目前dwd层共有30张表,核销主题共涉及到21张表

维度:dim_date_f , dim_source_type_map_f ,dim_store_f,dim_goods_f,dim_store_f

销售:store_sale_dtl,store_sale_info,store_sale_pay,shop_order,shop_order_item,shop_sale_pay,shop_refund,shop_refund_item

会员:member_union

订单:store_receive , store_return_to_vendor,store_return_to_dc,store_alloc_in,store_alloc_out,store_require

库存:store_stock_adj

7.1核销主题需求

7.1.1 商品销售情况(核销)分析

需求:了解不同城市,各个门店以及各个品类商品每天的销售情况

指标:销售单量、销售数量、销售金额、折扣金额、销售成本、余额支付金额、取消商品销售金额、退款商品销售金额、线上单量、线下单量、线上销售金额、线下销售金额、线上销售成本、线下销售成本、损耗金额、收货金额(收货-退货-退配+调入-调出)、要货金额

维度:时间,区域,类别

粒度:时间维度(天,下钻至刻),区域维度(城市,门店),类别维度(商品,第一品类,第二品类,第三品类)

涉及库:sale,member,order,stock

事实表:

sale: store_sale_dtl、store_sale_info、store_sale_pay、shop_order、shop_order_item、shop_sale_pay、shop_refund、shop_refund_itemmember: member_unionstock: store_stock_adjorder: store_receive、store_return_to_vendor、store_return_to_dc、store_alloc_in、store_alloc_out、store_require

维度表:

 dim: dwd_dim_date_f、dwd_dim_source_type_map_f、dwd_dim_store_f、dwd_dim_goods_f、dwd_dim_store_goods_f

7.1.2经营情况(已核销)分析

需求:了解不同城市,各个门店每天的销售情况(已核销)

指标:销售单量、销售数量、销售金额、折扣金额、销售成本、余额支付金额、取消商品销售金额、退款商品销售金额、线上单量、线下单量、线上销售金额、线下销售金额、线上销售成本、线下销售成本、损耗金额、收货金额(收货-退货-退配+调入-调出)、要货金额、线上会员单量、实体卡会员单量、线上会员销售金额、实体卡会员销售金额、线上会员销售成本、实体卡会员销售成本、线上会员下单人数、实体卡会员下单人数、使用余额销售金额、使用余额单量、使用余额的销售成本、使用余额的下单人数

维度:时间,区域

粒度:时间维度(天,下钻至刻),区域维度(城市,门店)

涉及库:sale,member,order,stock

涉及表: 

  • 1) 事实表:

    a) sale:store_sale_dtl、store_sale_info、store_sale_pay、shop_order、shop_order_item、shop_sale_pay、shop_refund、shop_refund_item

    b) member:member_union

    c) stock:store_stock_adj

    d) order:store_receive、store_return_to_vendor、store_return_to_dc、store_alloc_in、store_alloc_out、store_require

  • 2) 维度表:

    dwd_dim_date_f、dwd_dim_source_type_map_f、dwd_dim_store_f、dwd_dim_goods_f、dwd_dim_store_goods_f

7.1.3 门店营销(核销)情况分析

说明:了解各个门店营销情况,包括不同销售渠道(已核销)的销售情况以及日清活动的效果。【日清活动指的是,为了保证果蔬的新鲜度,一些商品当日出清,为了能出清商品,会采用打折的方式出售,并且随着时间的推移,越晚折扣越低。】

销售渠道需求

指标:订单量、退款订单量、取消订单量、商品销售金额、商品销售成本、商品折扣金额

维度:订单渠道

日清活动需求

指标:销售SKU数、销售单量、销售数量、销售金额、折扣金额、销售成本、销售利润、线上单量、线下单量、线上销售金额、线下销售金额、损耗金额、收货金额(收货-退货-退配+调入-调出)、要货金额、

维度:区域、品类

粒度:区域维度(门店)、品类维度(第一品类)

涉及库:sale、member、order、stock

涉及表:
  • 1) 事实表:

    a) sale:store_sale_dtl、store_sale_info、store_sale_pay、shop_order、shop_order_item、shop_sale_pay、shop_refund、shop_refund_item

    b) member:member_union

    c) stock:store_stock_adj

    d) order:store_receive、store_return_to_vendor、store_return_to_dc、store_alloc_in、store_alloc_out、store_require

  • 2) 维度表:dwd_dim_date_f、dwd_dim_source_type_map_f、dwd_dim_store_f、dwd_dim_goods_f、dwd_dim_store_goods_f

这篇关于2023.11.29 -hmzx电商平台建设项目 -核销主题阶段总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/441257

相关文章

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短