数据仓库设计-分层

表设计与规划

  • DWD层:基于业务活动事件构建,每个表对应一个具体业务过程,可适当冗余重要维度属性,提高易用性。命名规范如dwd_{业务分类}_{数据域}_{业务过程}_{自定义内容}_{存储策略}_
  • DWS层:根据分析主题构建汇总指标,考虑数据时效性与存储策略。命名规范如dws_{业务分类}_{数据域}_{自定义内容}_{时间周期}_
  • ADS层:面向业务分析需求,构建直接可用的分析指标表,进一步汇总和优化数据,提高分析效率。命名规范如 ads_{业务分类}_{数据集市}_{主题域}_{自定义内容}_{时间周期}_

DWD

在DWD层(明细数据层)的设计中,每个表直接映射到一个具体的业务过程,这是对业务活动深入分析的基础。

要体现主题,主要通过以下几个方面:

  • 业务分类与数据域明确:表命名中的{业务分类}和{数据域}部分直接指明了数据所属的业务领域和范畴,如电商行业的交易、广告投放、用户行为分析等,这有助于区分和归类不同业务场景的数据,体现了数据的主题方向

  • 业务过程为核心:通过_{业务过程}_这一部分,每个表直接关联到一个详细的业务活动或流程,比如订单生成、支付完成、用户登录等。这些业务过程是分析的主体,它们定义了数据的产生背景和分析的出发点,确保数据表紧密围绕特定的业务活动构建,从而鲜明地体现了数据的主题性。

  • 维度属性的整合:虽然DWD层鼓励对重要维度属性进行适当冗余以提高查询效率和易用性,这种设计也是基于对业务主题的深刻理解。通过预计算和整合与业务过程紧密相关的维度信息,使得分析时能够快速聚焦于特定主题,无需频繁关联其他表,增强了数据表在特定业务分析场景下的直接可用性。

  • 自定义内容灵活性:_{自定义内容}_部分允许根据实际分析需求加入更多描述性信息,这部分可以是对业务过程的进一步细分或是特定分析视角的标识,确保表结构能够灵活适应多样的分析主题。

  • 存储策略与主题时效性:虽然存储策略如_{存储策略}_看似与主题体现无关,但它间接影响数据的保留周期和访问效率,对于时效性强的主题(如实时销售分析),合理的存储策略能保证数据的新鲜度,从而更好地服务于该主题的即时分析需求。

综上所述,DWD层通过精确的业务过程对应、维度属性的整合、以及命名规范中对业务分类、数据域和自定义内容的明确,确保了每张表都紧密围绕特定的业务主题构建,从而在数据层面清晰体现了分析的主要方向和焦点。

DWS

在DWS层的命名规范中,主题体现在{业务分类}_{数据域}_{自定义内容}这一部分。具体来说:

  • 业务分类:指明了数据所属的业务领域,帮助区分不同业务单元的数据,确保分析时能够快速定位到相关业务背景。
  • 数据域:定义了数据的产生环境或业务过程,如消费者域、商品域、交易域等,它体现了数据的来源和主要特征,直接关联到具体的业务活动或事件,是构建分析主题的基础
  • 自定义内容:这部分提供了额外的描述信息,可以根据具体分析需求灵活设定,用来进一步细化和明确分析的主题。例如,如果分析关注的是“用户购买行为”,那么“购买行为”就可能作为自定义内容来体现主题。

综上,通过这三个部分的组合,命名规范不仅体现了数据的业务归属和技术范畴,更重要的是明确了分析的主要焦点或目的,即分析主题。这样的命名方式有助于提高数据模型的可读性和维护性,使得数据分析师或其他使用者能够快速理解表的用途和所承载的业务含义。

ADS层(Application Data Service)

设计基于以下几个核心原则和考量:

  • 分析主题对象驱动:ADS层直接面向具体的业务分析需求,其设计核心在于明确的分析主题。这意味着表结构和内容需紧密围绕业务部门或产品团队的具体分析目标来构建,确保提供的数据能够直接服务于决策制定或业务洞察。

  • 汇总指标复用性:ADS层构建在DWS层(汇总数据层)之上,利用DWS层预计算的公共粒度汇总指标,进一步提炼和组织数据,形成面向业务场景的更高层次汇总或定制化指标。这样的设计旨在提高数据的复用性和查询效率,减少重复计算,加速分析过程。

  • 时间周期适应性:考虑到业务分析往往关注特定时间范围的表现,ADS层的表设计会明确标注时间周期(如_1d、_td、_nd),便于用户根据需要快速获取日、周、月等不同时间跨度的数据。

  • 易于理解和操作:为了提升业务用户的使用体验,ADS层的表和字段命名应直观反映其业务含义,遵循清晰的命名规范,如_ads_{业务分类}{数据集市}{主题域}{自定义内容}{时间周期}_,使得非技术背景的用户也能轻松理解并操作数据。

  • 灵活扩展性:随着业务发展和分析需求的变化,ADS层设计需具备良好的扩展性,能够快速响应新增的分析主题或细化的指标需求,同时保持数据模型的稳定性和一致性。

综上所述,ADS层的设计理念是高度面向业务分析的实际需求,通过高效复用汇总数据、明确的时间周期界定、直观的表结构设计以及灵活的扩展机制,确保数据服务能够精准、高效地支持各类业务决策和市场洞察。

举例说明

在电商数据分析的场景中,我们可以以"订单交易"作为一个主题,来说明其在Data Warehouse(数据仓库)不同层次——明细层(DWD, Detail Data Warehouse),汇总层(DWS, Data Warehouse Service),以及应用层(ADS, Application Data Service)的设计,以及该主题域的划分。

DWD(明细数据层)设计

表名: dwd_ec_trd_create_ord_di

  • 层级: DWD
  • 主题域: 公共层_电商业务_交易域
  • 二级主题: 下单

描述: 在DWD层,针对"订单交易"主题,我们会存储详细的订单创建事件数据。这包括了订单生成的每一个细节,如订单编号、用户ID、商品ID、购买数量、下单时间等。这些数据通常来源于贴源层(ODS)的订单表,经过清洗、去重、丰富等处理后形成,为后续分析提供最基础的数据支撑。

DWS(汇总层)设计

表名: dws_ec_trd_cate_commodity_gmv_kpi_fy

  • 层级: DWS
  • 主题域: 公共层_电商业务_交易域
  • 二级主题: 无

描述: 在DWS层,针对"订单交易"主题,我们关注的是更高层次的汇总指标,比如按商品类别统计的总成交额(GMV)关键绩效指标。这类数据通常是对DWD层的明细数据进行聚合计算得到的,例如按日期、商品类别汇总订单金额,用于监控不同商品类别的销售表现和趋势分析。

ADS(应用层)设计

表名: ads_ec_ec360_gmv_kpi_overview

  • 层级: ADS
  • 主题域: 应用层_电商业务_电商集市
  • 二级主题: 电商360

描述: 在ADS层,针对"订单交易"主题,我们构建面向业务决策者的综合视图,如电商360概览。此表可能包含了跨多个维度(如时间、地区、商品类别)的订单交易汇总信息,如总销售额、订单量等关键指标,以及可能的趋势分析、预测等高级分析结果。这些信息直接服务于管理层的决策需求,帮助他们快速了解整体业务状况并做出相应策略调整。

主题域划分

在上述案例中,"订单交易"这一主题被划分在了"公共层_电商业务_交易域"下,它覆盖了从用户下单到支付完成的整个交易过程。在DWD层,我们关注数据的原始细节;DWS层则聚焦于这些细节数据的汇总与关键指标计算;而到了ADS层,则进一步提炼为面向业务决策的高阶信息展示。这样的分层设计不仅保证了数据处理的效率,也确保了数据的灵活性和可用性,满足不同层级的分析需求。

同样是交易域, 在主题域 和 数据域 中有什么区别?

在数据仓库架构中,“主题域”(Subject Area)和"数据域"(Data Domain)是两个不同的概念,它们从不同的角度对数据进行分类和组织。

主题域(Subject Area)
主题域是从业务分析的角度出发,根据业务主题或分析需求来划分的数据集合。它更侧重于业务逻辑和分析目的,通常与特定的业务流程或决策过程相关联。主题域通常跨越多个数据源,包含与特定业务主题相关的所有数据。

例子:
在电商业务中,"交易"可以是一个主题域。这个主题域可能包括订单信息、支付信息、退货信息、客户评价等,因为这些数据都与交易过程相关,且对于分析交易行为和客户偏好非常有用

数据域(Data Domain)
数据域则是从数据管理和治理的角度出发,根据数据的性质、来源或用途来划分的数据集合。它更侧重于数据的存储、安全、合规性和技术特性。数据域通常与数据的物理存储和管理相关,定义了数据的存储位置、访问权限和处理流程。

例子:
在同一个电商业务中,"交易"也可以是一个数据域。这个数据域可能包含所有与交易直接相关的数据表和视图,如订单表、支付表、退货表等。这些数据表可能存储在不同的数据库或数据仓库中,但它们都属于交易数据域,因为它们包含了交易过程中产生的数据

区别

  • 业务视角 vs 技术视角

    • 主题域更侧重于业务视角,关注业务流程和分析需求。
    • 数据域更侧重于技术视角,关注数据的存储、管理和治理。
  • 分析 vs 存储

    • 主题域关注的是数据分析和业务决策,通常与特定的分析目标相关。
    • 数据域关注的是数据的物理存储和处理,包括数据的安全性、合规性和性能。
  • 动态性 vs 稳定性

    • 主题域可能更加动态,随着业务需求的变化而变化。
    • 数据域则相对稳定,一旦定义,通常不会频繁更改。
  • 跨域性 vs 独立性:

    • 主题域可能跨越多个数据域,因为它包含了与特定业务主题相关的所有数据。
    • 每个数据域相对独立,关注特定类型的数据的管理和优化。

在实际应用中,理解和区分主题域和数据域有助于更好地组织和管理数据,支持业务分析和决策。

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

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

相关文章

【Linux系列】利用 CURL 发送 POST 请求

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

通义灵码实操—飞机大战游戏

通义灵码实操—飞机大战游戏 有没有想象过自己独立编写一个有趣的小游戏。在本实践课程中,你不仅可以实现这个想法,而且还将得到通义灵码智能编程助手的支持与指导。我们将携手步入编程的神奇世界,以一种简洁、高效且具有创造性的方式&#…

lora训练模型 打造个人IP

准备工作 下载秋叶炼丹器整理自己的照片下载底膜 https://rentry.org/lycoris-experiments 实操步骤 解压整合包 lora-scripts,先点击“更新” 训练图片收集 比如要训练一个自己头像的模型,就可以拍一些自己的照片(20-50张,最少15张&…

Caffeine 手动策略缓存 put() 方法源码解析

BoundedLocalManualCache put() 方法源码解析 先看一下BoundedLocalManualCache的类图 com.github.benmanes.caffeine.cache.BoundedLocalCache中定义的BoundedLocalManualCache静态内部类。 static class BoundedLocalManualCache<K, V> implements LocalManualCache&…

Spring Boot框架下的教育导师匹配系统

第一章 绪论 1.1 选题背景 如今的信息时代&#xff0c;对信息的共享性&#xff0c;信息的流通性有着较高要求&#xff0c;尽管身边每时每刻都在产生大量信息&#xff0c;这些信息也都会在短时间内得到处理&#xff0c;并迅速传播。因为很多时候&#xff0c;管理层决策需要大量信…

Unity SRP学习笔记(二)

Unity SRP学习笔记&#xff08;二&#xff09; 主要参考&#xff1a; https://catlikecoding.com/unity/tutorials/custom-srp/ https://docs.unity.cn/cn/2022.3/ScriptReference/index.html 中文教程部分参考&#xff08;可选&#xff09;&#xff1a; https://tuncle.blog/c…

2024年10款超好用的企业防泄密软件|企业文件加密防泄密必备!

随着信息技术的迅速发展&#xff0c;企业面临的数据泄露风险越来越高。为了保护企业的敏感信息&#xff0c;防止数据泄露&#xff0c;企业防泄密软件应运而生。以下是2024年值得关注的10款企业防泄密软件&#xff0c;帮助企业有效保障数据安全。 1.安秉网盾 安秉网盾防泄密是一…

K8S flannel网络模式对比

K8S flannel网络模式对比 VXLAN 模式Host-GW 模式如何查看 Flannel 的网络模式?如何修改 Flannel 的网络模式?如何修改flannel vxlan端口?Flannel 是一个 Kubernetes 中常用的网络插件,用于在集群中的节点之间提供网络连接。Flannel 提供了多种后端实现方式,vxlan 和 host…

计算机网络:网络层 —— 移动 IP 技术

文章目录 IPv6IPv6 的诞生背景主要优势IPv6引进的主要变化 IPv6数据报的基本首部IPv6数据报首部与IPv4数据报首部的对比 IPv6数据报的拓展首部IPv6地址IPv6地址空间大小IPv6地址的表示方法 IPv6地址的分类从IPv4向IPv6过渡使用双协议栈使用隧道技术 网际控制报文协议 ICMPv6ICM…

大客户营销数字销售实战讲师培训讲师唐兴通专家人工智能大模型销售客户开发AI大数据挑战式销售顾问式销售专业销售向高层销售业绩增长创新

唐兴通 销售增长策略专家、数字销售实战导师 专注帮助企业构建面向AI数字时代新销售体系&#xff0c;擅长运用数字化工具重塑销售流程&#xff0c;提升销售业绩。作为《挑战式销售》译者&#xff0c;将全球顶尖销售理论大师马修狄克逊等理论导入中国销售业界。 核心专长&…

【dvwa靶场:XSS系列】XSS (Stored)低-中-高级别,通关啦

更改name的文本数量限制大小&#xff0c; 其他我们只在name中进行操作 【除了低级可以在message中进行操作】 一、低级low <script>alert("假客套")</script> 二、中级middle 过滤了小写&#xff0c;咱们可以大写 <Script>alert("假客套…

css中pointer-events:none属性对div里面元素的鼠标事件的影响

文章目录 前倾提要当没有设置属性pointer-events时候结果 当子元素设置了pointer-events: none修改后的代码结果如下所示 当父元素设置了pointer-events: none若两个div同级也就是兄弟级 前倾提要 在gis三维开发的地图组件上放一个背景图片&#xff0c;左右两侧的颜色渐变等&a…

Vue:计算属性

Vue&#xff1a;计算属性 计算属性getset 在模板中&#xff0c;有时候填入的值要依赖于多个属性计算得出。 例如使用姓和名拼出全名&#xff1a; 以上效果可以通过以下代码实现&#xff1a; <div id"root">姓&#xff1a;<input type"text" v-m…

就业市场变革:AI时代,我们将如何评估人才?

内容概要 在这个充满变革的时代&#xff0c;就业市场正被人工智能&#xff08;AI&#xff09;技术深刻改变。随着技术的进步&#xff0c;传统的人才评估方式逐渐显示出其局限性。例如&#xff0c;过去依赖于纸质简历和面试评估的方式在快速变化的环境中难以准确识别真实的人才…

网站504错误出现的原因以及如何修复

504网关超时错误意味着上游服务器未能在规定时间内完成请求&#xff0c;导致无法传递网站内容。当您访问某个网站时&#xff0c;浏览器会向该网站的服务器发出请求。如果请求处理成功&#xff0c;服务器会返回200 OK状态码&#xff1b;但如果服务器响应超时&#xff0c;浏览器可…

学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)

目录 一、部署单点RocketMQ 二、原理篇 三、实操篇 1、引入依赖 2、启动自动装配 3、配置application.yml 4、启动类 5、编写一个统一格式的消息对象 6、生产者 ​编辑 7、定义一个constant 8、多/单个消费者订阅一个主题 1.实现消费者 2.编写接口发送消息 3.接口…

安全关键型嵌入式系统设计模式整理及应用实例

本文提供了对安全关键型嵌入式系统设计模式的全面概述&#xff0c;这些模式旨在提高系统在面临潜在故障时的安全性和可靠性。文中详细介绍了15种设计模式&#xff0c;包括同质冗余&#xff08;HmD&#xff09;、异质冗余&#xff08;HtD&#xff09;、三模冗余&#xff08;TMR&…

京东零售推荐系统可解释能力详解

作者&#xff1a;智能平台 张颖 本文导读 本文将介绍可解释能力在京东零售推荐系统中的应用实践。主要内容包括以下几大部分&#xff1a;推荐系统可解释定义、系统架构、排序可解释、模型可解释、流量可解释。 推荐系统可解释定义 推荐系统可解释的核心包括三部分&#xff0…

java项目之校园周边美食探索及分享平台(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园周边美食探索及分享平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 校园周边美食…

stack和queue --->容器适配器

不支持迭代器&#xff0c;迭代器无法满足他们的性质 边出边判断 实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<stack> #include<queue> using namespace std; int main() {stack<int> st;st.push(1);st.push(2);st.push(3);…