数仓实践:总线矩阵架构设计1

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 数仓实践:总线矩阵架构设计1

如何设计一套切实可行的数据仓库呢?


我们要明白,对于数据仓库的设计是不能完全依赖于业务的需求,但往往又必须要服务于业务的价值。


因此,在构建数据仓库前,我们往往会通过总线矩阵设计,来快速理解业务并规划数据仓库体系。以求从宏观的角度来描述企业的业务和数据现状,并指导后续的数据仓库建模。


不妨先来看看,祖师爷 Kimball 在书中对总线矩阵的定义:


总线矩阵:提供一种分解企业DW/BI规划任务的合理方式,行是业务过程,列是公共维度(一致性维度),图表中的 X 表示的是哪些列与哪些行有关系,也表示这一个业务过程需要有哪些公共维度。



所以,总线矩阵和一致性维度、一致性事实共同组成了 Kimball 的多维体系结构基础。

在这种多维体系结构(MD) 的数据仓库架构中,主导的思想便是分步建立数据仓库,并由数据集市组合成企业的数据仓库。


但是,在建立第一个数据集市前,架构师首先要做的就是设计出在整个企业内具有统一解释的标准化的维度和事实,即一致性维度和一致性事实,而开发团队必须严格的按照这个体系结构来进行数据集市的迭代开发。


如果我们在建立数据仓库之初,只考虑单独的某个业务系统的数据建设,不仅无法满足一致性目标的。还会使相互有联系的系统数据由于维度不同导致关联复杂或者关联不上,数据之间互相成为了孤岛,这对于后期的扩展或者整个数仓的建设都是巨大的阻碍。


一致性维度就好比企业范围内的一组总线,不同数据集市的事实的就好比插在这组总线上的元件。


这也是称之为总线架构的原因。因此实际设计过程中,我们通常把总线架构列表成矩阵的形式,其中列为一致性维度,行为不同的业务处理过程,即事实,在交叉点上打上标记表示该业务处理过程与该维度相关,这个矩阵也称为总线矩阵(Bus Matrix)。


了解总线矩阵设计的必要性,它的作用就很容易理解了。简单来讲无非是以下三点:


1.架构师清晰地梳理整个数据体系


2.帮助决策者(Boss)从宏观的角度了解数据仓库的整体情况


3.让所有的数据仓库参与者了解数据仓库的设计


如何编写总线矩阵?


首先,总线矩阵不是代码,也不是纯文档性质。在构建总线矩阵对过程中,也需要完成许多代码开发前期的准备工作。


首先完成横向,即 数据域划分,业务过程的确立。数据域是一种对数据的抽象,通过将联系较为紧密的数据划分在同一数据主题中,方便寻找和使用数据。


比如,制造业中,我们可以将数仓划分为:生产、财务、人力、供应链、交付等数据域,每个域下包含不同的业务过程。如生产域下包括生产计划、实际生产、设备停机等业务。


通常是先确定业务过程有哪些,再按照某个规则将相关的业务划分为同一数据域中,常用的规则有:按业务相关性、按需求方、按应用划分等。也可以将数据域划分为多级主题,比如先按照部门划分一级主题,再按业务划分二级主题。


数据域的划分没有对错,根据实际情况进行划分,让数据归纳更清晰,更好找易用就是好的数据域划分。划分数据域时,可参考这些规则:数量不能太多,建议不超过10个;不同主题间无重叠业务过程;具有一定前瞻性,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中或扩展新的数据域。


其次完成纵向列,即公共一致性维度的划分以及度量值的确定。维度是我们看世界的角度,度量则是形容指标的水平,他们都是指标的重要组成。比如有个指标:“四月交付2000辆车”,“四月”和“车”是维度,“2000”是度量值,“辆”则是度量单位,维度和度量组合在一起形成月度指标。如果没有维度,“交付2000辆”则啥也代表不了。


维度的划分具有行业共同性,比如电商行业通常涉及这些维度:买家、卖家、订单、广告、货运、支付等,制造业中:设备、产线、项目、物料、车型等,还有一些跨行业通用的维度,如城市、日期等。维度的一致性是数据一致性的重中之重,总线矩阵是一致性维度建设的重要文件。从讨论总线矩阵的那刻开始,数仓数据一致性问题就解决了一半。


总线矩阵中的度量通常是原子指标,指业务过程中最基本的原子指标。比如生成计划业务过程中,度量是“件数”,设备停机事件中,度量为“停机时长”。总线矩阵中描述的度量,能够给分析人员直观的了解目前数据具备的分析能力。


最后是确定业务过程同维度间的关联关系。应该分析每个业务过程,尽可能多的关联维度与业务过程,而不仅仅是当前分析需要哪些维度,否则就陷入了面向需求开发的陷阱。


业务矩阵编写完成后,应组织多方参与评审,包括业务方、分析人员、架构师、产品经理等,以确定业务矩阵的最终版本。



相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
7天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
14天前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
22天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
22天前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
47 3
|
24天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
82 5
|
21天前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
33 1
|
22天前
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
39 2
|
22天前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
41 1
|
23天前
|
负载均衡 监控 API
后端开发中的微服务架构实践与挑战
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势和面临的挑战,并通过案例分析提出了相应的解决策略。微服务架构以其高度的可扩展性和灵活性,成为现代软件开发的重要趋势。然而,它同时也带来了服务间通信、数据一致性等问题。通过实际案例的剖析,本文旨在为开发者提供有效的微服务实施指导,以优化系统性能和用户体验。
|
23天前
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####

热门文章

最新文章