数据开发/数仓工程师上手指南(七)CDM-DWS层搭建规范及流程

news2024/11/15 19:46:08

前言

进入到了CMD公共数据层的结尾最后一层-DWS层了,该层基本就是直接与业务强关联,也就是说产品提出的需求,或是报表、用户画像统计好还是数据大屏都是在这一层给处理好数据,再放入ADS层,然后我们只需要在BI里面配备对应的数据源即可,因此可以说DWS层这一层建模是否清晰明了,简单易建是检验我们ODS层和DWD,DIM层建模的好坏。一般我们也可以从DWS这一层,也就是需求侧结果出发来逆向推理我们需要建立的ODS和DWD层,总之DWS层需要我们仔细琢磨,需要上生产的东西一定得小心再小心。

一、理解DWS层

DWS层旨在为业务分析提供高效、快速的汇总数据访问。这一层是基于分析主题对象进行建模,提供了关键指标的汇总视图,支持上层应用的决策和洞察。通过构建公共粒度的汇总指标事实表,DWS层可以帮助识别趋势、模式和异常。

原始数据可以比作城市地图上每条街道和建筑的详细信息,而DWS层就像导航应用中的路况总结。它告诉你交通拥堵的区域、最畅通的路线和预计到达时间,而不是让你逐个查看每条街道的情况。

如果把详细数据想象成一天中所有发生的新闻事件,DWS层就是晚间的新闻摘要。它从大量的新闻中提取出最重要的头条和趋势,让你在短时间内了解最重要的信息,而不需要阅读所有的新闻报道。

二、DWS设计原则

我们依旧以为招标业务供应商的信用度分析画像这个需求来分析举例,在为招标业务构建每个供应商的分析画像时,DWS层需要通过汇总供应商相关的多维数据,提供综合的分析视角。

其中DWS设计原则总共有五层:

2.1主题驱动的聚集建模

  • 分析主题:基于供应商在招标过程中的行为模式进行建模,提供全方位的分析支持。

    • 在构建供应商画像时,分析目标可以包括:

      • 供应商投标次数:了解供应商参与招标的活跃度。

      • 中标率:评估供应商在不同项目中的成功率。

      • 平均投标金额:衡量供应商报价的竞争力。

      • 合作项目类型:识别供应商主要参与的项目类型。

      • 地理分布:分析供应商参与项目的地域分布。

  • 汇总表设计:创建一个以供应商为中心的汇总表,包含多个关键指标。

    • 比如供应商绩效汇总表:

      • supplier_id:供应商唯一标识

        supplier_name:供应商名称

        num_bids:投标次数

        num_wins:中标次数

        win_rate:中标率(num_wins / num_bids)

        total_bid_amount:总投标金额

        avg_bid_amount:平均投标金额

        num_project_types:参与的项目类型数量

        num_provinces:参与的省份数量

        active_period:活跃期(例如,最近一次投标日期)

2.2不跨越事实的聚集

  • 数据一致性:确保聚集数据与原始数据模型保持一致,不跨越多个事实表进行汇总。

  • 单一事实表:在单一的事实表(如投标事务表)上进行聚集,保持数据模型的简单和一致。

2.3数据公用性

  • 共享性:确保供应商画像数据可以多个业务部门和分析应用提供支持

  • 常用维度:对常用维度(如地域、项目类型)进行聚集,提高查询性能

2.4不跨数据域

  • 数据隔离:将数据汇总限制在供应商域内,不涉及其他业务域(如项目域或合同域)。

2.5区分统计周期

  • 周期标识:明确供应商画像的统计周期,例如"_1m"标识按月统计。

    • 时间维度:按月、季度、年度进行统计

    • 地域维度:按省、市进行汇总

三、DWS设计流程

3.1明确分析目标

在设计DWS表之前,首先明确供应商画像分析的目标。常见的分析目标包括:

  • 供应商参与投标的活跃度

  • 供应商的中标率

  • 供应商的平均投标金额

  • 供应商的地理活动分布

  • 供应商参与的项目类型

3.2确定关键指标和维度

识别实现分析目标所需的关键指标(事实)和维度。

关键指标(事实)

  • 投标总次数(Total Bids):供应商提交的投标总次数。

  • 中标次数(Winning Bids):供应商成功中标的次数。

  • 中标率(Win Rate):中标次数占投标总次数的比例。

  • 投标总金额(Total Bid Amount):所有投标的总金额。

  • 平均投标金额(Average Bid Amount):每次投标的平均金额。

  • 活跃项目类型数量(Active Project Types):参与的不同项目类型数量。

  • 地理覆盖范围(Geographical Reach):涉及的不同地区或省份数量。

维度

  • 时间维度:支持按天、月、季度或年进行分析。

  • 地理维度:分析不同省市的活动。

  • 项目类型维度:分析不同项目类型的参与情况。

3. 3数据模型设计

基于以上指标和维度,设计DWS表的结构。包括字段名称、数据类型以及注释。每个表结构反映了特定的业务分析需求,并包含了必要的字段和维度。

数据类型选择:根据数据的性质选择合适的数据类型,如金额使用DECIMAL以确保精度,文本字段使用VARCHAR

主键定义:每个表都设置了主键以确保数据的唯一性和完整性。

性能优化:在必要时可以对常用查询字段设置索引,以提高查询性能。

3.3.1供应商绩效汇总表

用途:分析供应商的整体绩效和行为模式。




CREATE TABLE supplier_performance_summary (
    supplier_id INT PRIMARY KEY,                 -- 供应商唯一标识
    supplier_name VARCHAR(255),                  -- 供应商名称
    num_bids INT,                                -- 投标次数
    num_wins INT,                                -- 中标次数
    win_rate DECIMAL(5, 2),                      -- 中标率(中标次数/投标次数)
    total_bid_amount DECIMAL(18, 2),             -- 总投标金额
    avg_bid_amount DECIMAL(18, 2),               -- 平均投标金额
    num_project_types INT,                       -- 参与的项目类型数量
    num_provinces INT,                           -- 参与的省份数量
    last_active_date DATE                        -- 最近活跃日期
);

 

 

3.3.2项目类型汇总表

用途:分析不同类型项目的投标和中标情况。

CREATE TABLE project_type_summary (
    project_type_id INT PRIMARY KEY,             -- 项目类型唯一标识
    project_type_name VARCHAR(255),              -- 项目类型名称
    num_projects INT,                            -- 项目数量
    total_bid_amount DECIMAL(18, 2),             -- 总投标金额
    avg_bid_amount DECIMAL(18, 2),               -- 平均投标金额
    num_wins INT,                                -- 中标项目数量
    win_rate DECIMAL(5, 2)                       -- 中标率(中标项目数量/项目数量)
);

 

3.3.3地域销售汇总表

用途:分析不同地域的销售和投标情况。

CREATE TABLE region_sales_summary (
    province_id INT PRIMARY KEY,                 -- 省份唯一标识
    province_name VARCHAR(255),                  -- 省份名称
    num_bids INT,                                -- 投标次数
    total_sales_amount DECIMAL(18, 2),           -- 总销售金额
    num_projects INT,                            -- 项目数量
    avg_sales_amount DECIMAL(18, 2),             -- 平均销售金额
    top_supplier_id INT,                         -- 销售额最高的供应商ID
    top_supplier_name VARCHAR(255)               -- 销售额最高的供应商名称
);

 

3.3.4时间周期汇总表

用途:分析不同时间周期内的业务表现。

CREATE TABLE time_period_summary (
    time_period VARCHAR(10) PRIMARY KEY,         -- 时间周期标识(例如 Q1, 2024)
    num_bids INT,                                -- 投标次数
    total_bid_amount DECIMAL(18, 2),             -- 总投标金额
    avg_bid_amount DECIMAL(18, 2),               -- 平均投标金额
    num_wins INT,                                -- 中标次数
    win_rate DECIMAL(5, 2)                       -- 中标率(中标次数/投标次数)
);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】——堆的实现(赋源码)

堆的概念与结构 堆(Heap)是计算机科学中一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看作一棵完全二叉树的数组对象。 堆的性质: 堆中某个结点的值总是不大于或不小于其父结点的值; 堆总是一棵完全二叉树。 堆的物理结构本质上是顺序…

PDF怎么转Word?分享二个简单的方法

很多小伙伴在工作学习的时候,经常会遇到别人发来的PDF文件。PDF 文件用于查看资料非常方便,因为它们的布局稳定,在大多数设备上都可以显示相同的布局。 如果我们需要将其转换为Word,如何转换呢?许多人不知道如何转换。…

怎么录制视频?简单步骤教你如何录制高质量视频

视频是我们生活、工作和学校中不可或缺的一部分,但对于初学者来说,面对琳琅满目的录屏工具,往往感到无从下手,今天我们就给大家分享几种简单又高效的电脑录屏方法,让你轻松掌握高质量视频录制的技巧。 录制技巧1&#…

工厂人员定位系统原理

工厂人员定位系统是一种通过现代无线通讯技术和定位技术实现对工厂内人员位置进行实时监测的系统。其具体原理是通过安装在员工身上的定位标签产生无线电信号,并通过无线通讯网络传输给基站,再由基站将数据传输到服务器进行处理,最终在监控中…

《藏文驾考》App:支持藏汉双语切换的驾考题库,方便不熟汉语的藏族学员考驾照,中文藏文语音读题!

藏文驾考,是一款支持藏汉双语切换的驾照考试在线刷题学习软件。服务于涉藏地区的藏文驾驶理论考试,同步西藏、四川、青海、甘南等涉藏地区的驾考新规题库。提供科目一、科目四藏文交规理论学习,科目二、科目三视频技巧讲解。支持汉语、卫藏、…

Power功效分析之广义模型原理及案例实操

Power功效分析常用于实验研究时样本量的计算(或功效值计算),如果是涉及广义模型时的回归系数差异计算时,SPSSAU共提供二元logit回归和Poisson回归情况时的Power功效分析,具体如下表格所述: 比如二元Logit回…

监听器Listener + 过滤器Filter

监听器Listener 介绍 Listener是JavaEE的规范,就是接口 监听器的作用是,监听某种变化(一般就是对象创建/销毁, 属性变化), 触发对应方法完成相应的任务 ServletContextListener监听器(最常用) 作用: 监听S…

javase综合案例4 -- 考试系统

文章目录 一&#xff0c;项目要求二&#xff0c;创建实体类ExamItem三&#xff0c;创建考试服务类ExamService3.1 全局变量 考题列表itemList(List< ExamItem >类型)&#xff0c;答案数组answerArr (String[]类型)&#xff0c;得分score3.2 初始化方法init()3.3 打印菜单…

从0开始的算法(数据结构和算法)基础(六)

二叉树 什么是二叉树 二叉树是一种非线性数据结构(层次关系结构)&#xff0c;代表“祖先”与“后代”之间的派生关系&#xff0c;体现了“一分为二”的分治逻辑。与链表类似&#xff0c;二叉树的基本单元是节点&#xff0c;每个节点包含值、左子节点引用和右子节点引用。 首先…

人生苦短,我用 Python,AI 模型助力高效数据提取

一、前言 在网络爬虫和数据挖掘领域&#xff0c;提取网页内容是一项常见且重要的任务。无论是从新闻网站、电商平台还是社交媒体&#xff0c;获取有用的信息都是开展后续分析和应用的前提。然而&#xff0c;传统的网页内容提取需要编写大量的代码来处理和解析 HTML 文档&#…

comfyui flux

下载文本编码器&#xff0c;模型放到ComfyUI/models/clip/ 下&#xff0c;t5模型可以任选其一&#xff1b;https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main 下载vae模型&#xff0c;https://huggingface.co/black-forest-labs/FLUX.1-schnell/tree/main&a…

31、Python之面向对象:开闭原则与多态?学我者生、似我者死

引言 前面我们花了不少的篇幅把Python中面向对象的封装与继承简单介绍了一遍。今天来聊一下Python面向对象的第三个特性&#xff1a;多态。 其实&#xff0c;在《Python之面向对象&#xff1a;一切皆对象&#xff0c;可你真的需要面向对象吗》这篇文章中&#xff0c;对比面向…

Python大数据分析——朴素贝叶斯模型

Python大数据分析——朴素贝叶斯模型 数学方面思路理论基础高斯贝叶斯分类器多项式贝叶斯分类器伯努利贝叶斯分类器 代码部分高斯贝叶斯——皮肤识别多项式贝叶斯——毒蘑菇识别伯努利贝叶斯——情感分析 数学方面 思路 该分类器的实现思想非常简单&#xff0c;即通过已知类别…

vs code 代码同步到服务器,无需下载插件,使用自带ftp

可使用 vscode 自带ftp,无需下载插件 快捷键 ctrl shift p {"name": "My Server", //上传名"host": "192.168.56.102",//服务器"protocol": "ftp",//协议"port": 21,//端口"username": &q…

《机电信息》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《机电信息》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《机电信息》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a;江苏省设备成套股份有限公司 主办单位&#x…

nvm安装高版本的node18.17.0,报https://nodejs.org/dist/latest/SHASUMS256.txt

1、执行npm install v18.17.0这条命令时&#xff0c;报如下错误&#xff1a; 2、或者报Node.js v18.17.0 is not yet released or is not available. 解决方案&#xff1a; 1、打开nvm 的安装路径中的setting.json node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.…

基于目标检测的目标跟踪(python)

文章目录 概要环境准备目标检测实现目标跟踪实现整合后的代码可能遇到的问题Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory参考概要 基于目标检测的目标跟踪过程通常包括以下…

硬控年轻人的长沙,城市底色竟是研发

近年来&#xff0c;找到“流量密码”的长沙&#xff0c;吸引了来自全国各地的年轻人&#xff0c;形成百川赴海之势。而消费生力军的到来&#xff0c;也让长沙成为新消费发展的“沃土”&#xff0c;三顿半、茶颜悦色、文和友、墨茉点心局、柠季、零食很忙等一众“顶流”新消费品…

ADC的一些细节

一&#xff0c;输入通道 总共 2 个 ADC&#xff08;ADC1&#xff0c;ADC2&#xff09;&#xff0c;每个 ADC 有 18 个转换通道: 16 个外部通道、 2 个内部通道&#xff08;温度传感器、内部参考电压&#xff09; ADC1和ADC2的通道都相同&#xff0c;是采用分时复用来…

汇凯金业:黄金交易技术分析方法

黄金交易&#xff0c;作为一种高风险、高收益的投资方式&#xff0c;需要投资者具备一定的专业知识和技能&#xff0c;才能在市场中获得收益。技术分析&#xff0c;作为一种重要的分析方法&#xff0c;可以帮助投资者判断市场趋势&#xff0c;寻找交易机会。 一、趋势分析&…