2023.11.25电商项目平台建设2 -四大业务之核销主题建模

1.数仓建模步骤

自下而上 ADS-DWS-DWM-DWD

 

2.DWD方案(清洗转换,降维拉宽) 

DWD层的表

dwd_sale_store_sale_dtl_i 门店销售明细宽表

维度dim        销售sale合成成的宽表

dwd_dim_date_f

日期表

store_sale_dtl

门店销售明细表

dwd_sale_store_sale_dtl_i

门店销售明细表

dwd_dim_source_type_map_f

交易类型映射表

store_sale_info

门店销售信息表

dwd_dim_store_f

分店信息表

store_sale_pay

门店销售支付表

dwd_dim_goods_f

门店商品信息表

dwd_dim_store_goods_f

店组信息表 

 

先合并销售的三张表(事实表),再去和维度的5张表合并,最后生成门店销售明细表的宽表

先与销售的3张事实表进行关联

销售日期:基于门店销售信息表中的库存日期处理
注意:所有时间数据都建议格式化下
 

母店编码和店铺编码: 母店编码为销售信息表的门店编码, 门店编码使用销售信息表的销售门店编码,如果没有, 再使用门店编码
交易来源:如果为null, 返回1,代表线下POS
会员类型: 如果以OL- 或者 SF- 开头的为1线上会员, 如果是''或者null为0非会员, 否则为实体卡会员
是否余额支付: 基于门店销售支付表,如果订单id为null返回0代表不是,否则返回1代表是
结算类型: 判断trade_id,如果为1 返回0(正常交易), 为2返回2, 如果为3,4返回5
母订单编号: 判断明细表中商品销售金额sale_amount如果小于0采用销售表的source_order_sn(退款单据ID),反之如果大于等于0采用销售表的parent_order_sn. 否则选order_no
item,sort,cashier_no,cashier_name,zt_id(member_center_sn),member_id: 如果为null设为0
支付时间: 选择商品信息表的支付日期pay_date
最后更新时间: 选择商品信息表的库存时间deal_date
是否为组合类型: 判断明细表combination_flag,如果为1返回1(是),否则返回0(否)
trade_mode_id,share_user_id,commission_amount: 如果为null, 设置为0
余额支付金额: 判断单据总支付金额如果等于0 , 则结果为0; 如果余额支付金额为null,则结果也为0,                                          否则使用余额支付金额 * (商品销售金额 / 单据总支付金额)

基于合并后的3个事实表结果,再去和其他五个维度表关联,生成最终商品明细宽表

刻钟: 判断0-14为1,15-29为2,30-44为3,45-59位4
刻钟数: 计算格式为hourly*4+刻钟
销售类型: 判断source_type或者original_source_type,当为1返回1, 当为9返回5 , 当为 4,5,6,7,8返回6. 当为11返回8 ,否则返回7
供应链类型: 判断门店商品信息表的 tag 商品标识为null, 返回4
采购仓库编号:	判断门店商品信息表的 dc_no 如果为null 返回-1
采购仓库名称:	判断门店商品信息表的 dc_name 如果为null 返回其他仓
采购柜组编号:	判断门店商品信息表的 group_no 如果为null, 返回-1
采购柜组名称:	判断门店商品信息表的 group_name 如果为null, 返回其他柜组
供应商ID: 判断门店明细表的vendor_id 如果为null, 返回0
是否日清: 判断门店商品信息表的is_clear 如果为null, 返回0
写入时间: 设置为昨天
核销时间: 设置为交易日期

冲减:冲减是会计学上使用较多的术语。是指收入或者费用之间相互抵消,冲减可以部分冲掉,也可以全额冲掉。 

 

3.DWM方案(提前聚合,业务合并)

4.DWS方案(基于主题需求-维度指标,形成大宽表)

5.ADS方案(基于主题需求-维度指标,分析和计算最终指标)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/221907.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【心得】XXE漏洞利用个人笔记

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别) xxe的利用 XML Entity 实体注入 当程序处理xml文件时,没有禁止对外部实体的处理,容易造成xxe漏洞 危害 主流是任意文件读取 XML 文件 一般表示带有结构的数据 祖父 3个叔父 8个堂弟堂妹 …

中国北斗:守护萨雷兹湖一方安澜

中国北斗:守护萨雷兹湖一方安澜 在第三届“一带一路”国际合作高峰论坛数字经济高级别论坛上,由中国经济信息社、国家发展改革委高技术司、国家数据局联合编制的《数字“慧”就发展之路》中英文图文集正式发布,展现了中国与共建“一带一路”国…

前端向后端传JSON数据,使用MyBatis查询

form中向后端传的是空字符串,并不是null 而在MyBatis的判断中应判断是否为空字符串,而并非null

[计算机网络]运输层概述

虽然我自己也不知道写在前面和前言有什么区别..... 这个系列其实是针对<深入浅出计算机网络>的简单总结,加入了一点个人的理解和浅薄见识,如果您有一些更好的意见和见解,欢迎随时协助我改正,感激不尽啦. 最近心态平和了不少, 和过去也完全做了个割舍吧,既然痛苦和压力的…

python类和对象

1.使用对象组织数据 class Student:nameNone #记录名字 stu1Student() #创建对象 stu1.name"abc" #为对象属性赋值2.类的定义和使用 2.1成员方法的定义语法 传参的时候self是透明的&#xff0c;不用管 class Stu:nameNonedef sayHi(self):print(f"你好&#x…

C++中的new、operator new与placement new

new operator new operator是我们常用的new。 new 和 delete 是用来在 堆上申请和释放空间的 &#xff0c;是 C 定义的 关键字&#xff0c;和 sizeof 一样。 实际 new / delete 和 malloc / free 最大的区别是&#xff0c;前者对于 自定义类型 除了可以开辟空间&#xff0c;…

Vue轻松入门,附带学习笔记和相关案例

目录 案例 一Vue基础 什么是Vue&#xff1f; 补充&#xff1a;mvvm框架 mvvm的组成 详解 Vue的使用方法 1.直接下载并引入 2.通过 CDN 使用 Vue 3.通过npm安装 4.使用Vue CLI创建项目 二插值表达式 什么是插值表达式&#xff1f; 插值表达式的缺点 解决方法 …

仅2万粉,带了2.6万件的货!TikTok Shop美区达人周榜(11.13-11.19)

11月24日&#xff0c;TikTok Shop近日公布了美国市场和英国市场的全托管黑五大促战绩。数据显示&#xff0c;11月14日至11月20日&#xff0c;其美国市场的订单量环比10月20日-10月26日增长了205%。 家居户外热销品有&#xff1a;数码触摸屏相框、毛绒地毯、家居毛毯。黑马商品…

基于C#实现梳排序

为什么取名为梳&#xff0c;可能每个梳都有自己的 gap 吧&#xff0c;大梳子 gap 大一点&#xff0c;小梳子 gap 小一点。上一篇我们看到鸡尾酒排序是在冒泡排序上做了一些优化&#xff0c;将单向的比较变成了双向&#xff0c;同样这里的梳排序也是在冒泡排序上做了一些优化。 …

使用不平衡数据集练习机器学习

一、介绍 在当今世界&#xff0c;机器学习和人工智能几乎被广泛应用于每个领域&#xff0c;以提高绩效和结果。但如果没有数据&#xff0c;它们还有用吗&#xff1f;答案是否定的。机器学习算法严重依赖我们提供给它们的数据。我们提供给算法的数据质量在很大程度上决定了机器学…

运动戴耳机哪种款式比较好?十大运动蓝牙耳机品牌排行榜

​运动蓝牙耳机是大家运动时必不可少的装备&#xff0c;不止上耳佩戴稳固舒适&#xff0c;且音质也相当不错&#xff0c;防水性也高&#xff0c;还带来高续航和稳定连接。下面我来给大家推荐几款值得选购的运动耳机&#xff0c;希望大家能找到自己喜欢的那一款。 1.南卡开放式…

Callable、Future和FutrueTask详解

一、Callable介绍 1.1 Runnable介绍 Runnable是一个接口&#xff0c;里面声明了run方法。但是由于run方法返回值类型为void&#xff0c;所以在执行完成任务后&#xff0c;无法返回任何结果。 FunctionalInterface public interface Runnable {public abstract void run(); }…