数仓学习-维度建模
- 格式:docx
- 大小:808.33 KB
- 文档页数:10
数据仓库技术中的维度建模方法与技巧随着信息化的深入发展,数据的规模和复杂性不断增加,对数据仓库技术的需求也越来越高。
数据仓库作为一种重要的数据管理和分析工具,维度建模方法和技巧成为数据仓库建设的核心内容。
本文将从维度建模的概念、设计原则、模式选择以及应用实践等方面进行探讨。
一、维度建模的概念和设计原则概念维度建模是数据仓库中的一种数据建模方法,强调以业务过程为中心,将业务过程与事实表和维度表相结合,构建一个可靠、灵活和易于维护的数据模型。
维度是指业务过程的方面或特征,比如时间、地点、产品等。
设计原则(1)简洁性:维度建模应尽量避免冗余数据,只保留最重要和必要的维度和指标。
(2)一致性:数据模型应与业务过程相匹配,避免出现不符合业务逻辑的数据结构。
(3)灵活性:数据模型应具备较高的灵活性,能够适应业务需求的变化和演进。
(4)易于理解和维护:数据模型应具备良好的可读性和可维护性,方便数据仓库管理人员进行数据维护和查询等操作。
二、维度建模的模式选择星型模型星型模型是维度建模中最常用的一种模式。
它以一个具有业务实体属性的事实表为中心,围绕着该事实表构建一系列与之关联的维度表。
维度表和事实表通过共享的主键进行连接,形成一个星状的拓扑结构。
雪花模型雪花模型是星型模型的一种扩展,它在星型模型的基础上进一步细化和拆分维度表。
通过在维度表上拆分出一层或多层的子维度表,雪花模型可以更好地处理维度表的复杂性,提高数据模型的灵活性和性能。
星座模型星座模型是维度建模中的一种高级模式,它将多个星型或雪花模型进行整合,形成一个更大的数据模型。
星座模型适用于数据仓库规模较大、数据量较多的情况,能够更好地支持复杂的分析需求。
三、维度建模的应用实践设计维度表在设计维度表时,应根据业务需求和数据特点进行合理的抽象和归纳。
一方面,应考虑维度的可度量性和可分析性,确保维度表中的属性能够有效支持分析需求;另一方面,还应考虑维度的可扩展性和可维护性,尽量避免冗余和复杂的属性。
数据仓库技术中的维度建模方法与技巧对于数据仓库技术的研究和应用,维度建模一直是一个重要的方面。
它通过将数据以维度和事实的形式组织起来,提供了数据分析和决策支持的能力。
本文将讨论维度建模的基本概念、方法和技巧。
1. 概述维度建模是一种以维度来组织数据的方法。
维度可以理解为数据的分类属性,如时间、地点、产品等。
而事实则是以数字为主的数据,表示某种业务指标。
维度建模通过将维度属性和事实数据关联起来,形成一个多维数据模型。
这个模型可以很好地支持数据分析和查询操作。
2. 维度的设计在维度建模中,维度的设计是至关重要的。
首先,需要确定维度的层次结构,即维度之间的关系和层级。
例如,时间维度可以按年、季度、月份等进行层次划分。
其次,需要考虑维度的属性,即维度的描述信息。
这些属性可以用于筛选和分组数据。
最后,还要考虑维度的范围和粒度,即维度的取值范围和精确度。
维度的设计需要根据具体业务需求和数据特点进行调整和优化。
3. 事实表的设计事实表是维度建模的核心。
它包含了事实数据和与之关联的维度外键。
事实表的设计需要考虑事实的粒度和度量。
事实的粒度指的是事实数据的最小粒度,即每个记录所表示的时间和空间单位。
度量则是对事实数据进行加工和计算的衍生指标。
在事实表的设计过程中,需要考虑事实的粒度和度量的选择,以及与维度的关系和关联方式。
4. 维度建模的技巧在维度建模的实践中,有一些技巧可以帮助提高建模效果和性能。
首先,可以使用维度层次化建模的方法。
这种方法通过划分维度的层次结构,将复杂的数据模型分解为简单的部分,提高了查询和分析的效率。
其次,可以使用维度属性的层次化建模方法。
这种方法通过将维度的属性以层次的形式组织起来,提高了数据的可用性和灵活性。
另外,还可以使用维度表的冗余建模方法。
这种方法通过在维度表中冗余一些信息,避免了多表连接的开销,提高了查询和计算的性能。
5. 维度建模的应用维度建模在实际应用中有广泛的应用领域。
首先,它可以用于业务智能和数据分析。
数据仓库技术中的维度建模方法与技巧随着信息技术的飞速发展,数据仓库已经成为企业管理和决策的重要工具。
而在数据仓库的建设过程中,维度建模是一种常用且有效的方法。
本文将介绍数据仓库技术中的维度建模方法与技巧,探讨如何利用维度建模提升数据仓库的效率和性能。
一、维度建模的基本概念与原则维度建模是一种以面向业务问题的方式组织数据的方法。
它将数据按照业务专业性进行划分,形成一种易于理解和使用的数据模型。
维度建模的核心思想是将事实表和维度表进行关联,通过事实表记录业务指标的数值,而维度表则描述了业务的上下文。
在进行维度建模时,有几个基本原则需要遵循。
首先是粒度一致性原则,即事实表和维度表之间的粒度要一致,以避免数据混乱和计算错误。
其次是维度可分解原则,即将复杂的维度进行分解,形成更加简洁易用的维度层次结构。
另外,还需要保持维度的稳定性,即维度的定义和结构在一定时间内不发生变化。
这些原则可以为维度建模提供一个稳定而一致的基础。
二、维度建模的方法与技巧1. 选择合适的维度在维度建模中,选择合适的维度是非常重要的。
维度应该是具有业务含义的属性,能够描述业务的特征和属性。
同时,维度应该具有层级结构,可以形成维度的树状关系。
例如,在销售数据中,产品维度可以包括产品类别、品牌、型号等层级。
选择合适的维度可以提高数据的可理解性和查询效率。
2. 设计合理的维度层次结构在维度建模中,设计合理的维度层次结构可以帮助用户更好地理解数据。
维度的层次结构应该是自然、有序且易于理解的。
根据数据的层级结构划分,可以将维度分为多个层次,从而形成维度的多层级关系。
例如,在时间维度中,可以分为年、季度、月、周等多个层级。
这样设计的层次结构可以满足用户对不同粒度数据的查询需求,提高数据灵活性。
3. 使用约束和引用键在维度建模中,引用键是一个重要的技巧,它用于在事实表和维度表之间建立关联。
通过引用键,可以实现多个维度表之间的关联和查询。
同时,还可以通过约束键来限制维度表中的数据。
引言概述在数字化时代,数据成为企业运营和决策的重要驱动力。
为了更好地管理和利用企业数据,很多企业采用数据仓库来集成和存储数据。
数据仓库建模是数据仓库设计的核心环节,它决定了数据在仓库中的组织结构和查询方式。
本文将介绍四种常见的数据仓库建模方法,包括维度建模、实体关系模型、标准化模型以及主题建模。
维度建模维度建模是一种以事实表和维度表作为核心的建模方法。
事实表是存储数值型数据的表,维度表则存储描述性属性的表。
在维度建模中,事实表和维度表通过共享主键来建立关联。
小点详细阐述:1.事实表的设计:事实表应选择合适的粒度,并包含与业务流程相关的度量。
例如,销售事实表可以包含销售额、销售数量等度量。
2.维度表的设计:维度表应包含与业务流程相关的描述性属性,例如时间、产品、地理位置等。
维度应具有层次结构,以便支持多维分析。
3.关系型数据库实现:维度建模通常使用关系型数据库来实现,它通过表和关联键来表示维度和事实之间的关系。
实体关系模型实体关系模型是一种基于关系代数和数据库范式的建模方法。
它通过实体、属性和关系来描述数据的结构。
实体关系模型适用于较复杂的数据仓库场景,其中数据具有多层级和复杂的关系。
小点详细阐述:1.实体的建模:实体是数据仓库中的核心对象,它代表了业务流程中的实际对象。
实体的属性描述了实体的特征。
2.关系的建模:关系描述了实体间的关联和依赖关系。
在实体关系模型中,关系通过外键建立。
3.数据库范式:实体关系模型追求高度的数据规范化,以减少数据冗余和不一致性。
标准化模型标准化模型是一种以消除冗余数据为核心的建模方法。
在标准化模型中,数据被拆分为多个表,并通过关系建立关联。
小点详细阐述:1.数据拆分:标准化模型通过将数据拆分为多个表,将重复的数据存储在一个地方,并通过外键建立关联。
2.数据插入和查询:标准化模型在数据插入和查询时需要进行多表关联操作,对性能有一定影响。
3.适用场景:标准化模型适用于事务性场景,如订单管理、库存管理等。
数据仓库建模方法总结数据仓库建模是数据仓库构建过程中的重要环节,它决定了数据仓库的数据结构和查询性能。
本文将总结几种常见的数据仓库建模方法,包括维度建模、事实建模和标准化建模,并比较它们的优缺点。
1. 维度建模维度建模是一种常见的数据仓库建模方法,它基于维度表和事实表的概念。
维度表包含描述业务过程的属性,如时间、地点、产品等,而事实表包含与业务过程相关的度量。
维度表和事实表通过共同的键连接起来,形成星型或雪花型的模型。
优点:1) 简单直观:维度建模易于理解和使用,可以快速设计和构建数据仓库。
2) 查询性能高:维度建模的星型结构简化了查询的关联操作,提高了查询性能。
缺点:1) 一对一关系:维度表和事实表之间是一对多的关系,无法处理多对多的关系。
2) 数据冗余:维度表中的属性可能存在冗余,造成数据冗余和一致性问题。
2. 事实建模事实建模是基于主题的数据仓库建模方法,它以业务过程为核心构建事实表,包括维度键和度量。
事实表记录了业务过程发生的事实信息,维度键用于连接事实表和维度表,度量用于度量业务过程的指标。
优点:1) 灵活性高:事实建模能够适应复杂的业务逻辑和多对多的关系。
2) 数据粒度控制:事实表可以根据需要控制数据的粒度,提供灵活的查询和分析能力。
缺点:1) 设计复杂:事实建模的设计复杂度较高,需要考虑多对多的关系和度量的粒度控制。
2) 查询性能相对低:事实建模需要进行多表关联操作,查询性能相对较低。
3. 标准化建模标准化建模是一种将数据仓库模型与关系数据库模型类似的建模方法。
它将数据存储在标准化的表中,通过复杂的关联操作来查询和分析数据。
标准化建模与维度建模和事实建模相比,更适用于小型数据仓库和查询较少的情况。
优点:1) 数据一致性:标准化建模减少了数据冗余,提高了数据一致性。
2) 灵活可扩展:标准化建模可以适应不同的查询需求,支持灵活的查询和分析。
缺点:1) 查询复杂:标准化建模需要进行多表关联和聚合操作,查询复杂度较高。
数据仓库中的维度建模与事实表设计数据仓库是一个集成的、主题导向的、时间可变的、非易失性的数据存储,用于支持管理决策。
在数据仓库中,维度建模和事实表设计是非常重要的,它们是数据仓库设计的核心。
维度建模是指将数据仓库中的数据组织成一个统一的、易于理解的维度模型,而事实表设计则是指如何将业务过程和指标以一种易于查询和分析的方式存储到数据库中。
在本文中,我们将探讨数据仓库中的维度建模与事实表设计的相关内容。
一、维度建模维度建模是数据仓库设计的核心,它是数据仓库中维度和事实之间的关系模型。
维度模型由事实表和维度表组成,它们之间存在着一对多的关系。
维度模型是一个简单直观的模型,它将业务过程和指标以一种易于理解的方式组织起来。
1.维度表在维度建模中,维度表是非常重要的,它是用来描述业务对象的表。
维度表通常包含了多个属性字段,每个属性字段描述了业务对象的一个特定属性。
比如,在销售数据中,维度表可能包含了产品、时间、地点等属性字段。
2.事实表事实表是数据仓库中存储业务过程和指标的表,它包含了一个或多个度量字段,度量字段是用来度量业务活动的指标。
事实表和维度表之间通过外键关联起来,事实表中的度量字段通常是和维度表的外键字段关联的。
3.星型模式维度模型通常被称为星型模式,因为它的结构呈现出星型的形状。
在星型模式中,中心的事实表被围绕着多个维度表组织起来,形成了一个星型的结构。
4.雪花模式除了星型模式之外,还有一个常见的维度模型是雪花模式。
在雪花模式中,维度表的层次结构被规范化成多个维度表,这样可以节省存储空间,但也会增加查询复杂度。
5.维度层次维度表中的属性字段通常是按照层次结构组织起来的,比如在时间维度中,可以有年、季度、月、日等层次。
在维度建模中,采用自然层次结构的维度表是非常重要的,它可以帮助用户更加方便地进行查询和分析。
维度建模是数据仓库设计的核心,它可以帮助用户更加方便地理解业务过程和指标。
通过合理的维度建模,可以提高数据仓库的查询性能,减少数据冗余,提高数据的一致性和可靠性。
数据仓库建模数据仓库建模是指将原始数据整理和组织,以便于分析和决策支持的过程。
它是数据仓库项目中的重要环节,决定了数据仓库的结构和性能。
本文将介绍数据仓库建模的概念、常用方法和最佳实践。
一、概述数据仓库建模是将各种不同来源的数据进行抽取、清洗、转换和加载,最终形成适用于商业智能分析的结构化模型。
它可以帮助企业从大量的数据中发现隐藏的商业价值,为管理层提供决策依据。
二、数据仓库建模方法1. 维度建模维度建模是数据仓库建模的一种常见方法。
它以事实表为中心,围绕着维度表来组织数据。
事实表是包含了业务度量(如销售额、利润等)的表,而维度表则包含了事实表所描述的业务维度(如时间、地点、产品等)的具体信息。
维度建模具有简单、易于理解和维护的特点,广泛应用于数据仓库项目中。
2. 规范化建模规范化建模是将数据仓库中的数据按照规范化的数据库设计原则进行建模。
它将数据分散存储在多个表中,以减少数据冗余和提高数据一致性。
规范化建模适用于对数据一致性要求较高,但性能要求相对较低的场景。
3. 星型模型和雪花模型星型模型是维度建模的一种具体实现方式,它以一个事实表和多个维度表组成星型结构。
星型模型简单、易于理解和查询,适合于业务分析和报表查询。
而雪花模型是在星型模型基础上,将维度表进一步规范化,减少了数据冗余,提高了灵活性和数据一致性。
4. 声明式建模声明式建模是一种使用元数据描述数据仓库模型的方法。
它通过定义元数据中的核心概念和规则,自动生成数据仓库中的数据模型和代码。
声明式建模提高了开发效率和模型的一致性,但对于复杂的业务场景需要谨慎使用。
三、最佳实践1. 理清需求在进行数据仓库建模之前,需要充分了解业务需求,理清分析和报表查询的目标。
只有明确需求,才能设计出合适的模型结构。
2. 引入业务专家数据仓库建模需要与业务专家密切合作,理解业务领域,并将其转化为可操作的维度和度量。
只有深入理解业务,才能构建出有用的数据仓库。
3. 划分合适的粒度数据仓库的数据粒度应该根据具体业务需求来确定,既要保留足够的详细信息以满足分析需求,又要避免数据量过大导致性能下降。
引言:数据仓库是一个用来存储、整合和管理组织中各种类型数据的集中库,为决策支持和业务分析提供数据基础。
在数据仓库建设过程中,数据建模是一个至关重要的步骤,它决定了数据仓库的架构、数据的组织方式以及数据的查询效率。
本文将介绍数据仓库的常见建模方法,并通过实例演示来加深理解。
概述:数据仓库建模主要包括维度建模和标准化建模两种方法。
维度建模侧重数据的分析和查询,采用星型或雪花型模型,标准化建模侧重数据的存储和管理,采用三范式模型。
下面将对这两种方法进行详细阐述。
正文内容:一、维度建模1. 星型模型- 星型模型是一种常见的维度建模方法,它以一个中心事实表为核心,围绕着多个维度表构建关系。
这种模型简单直观,适用于多维分析和查询操作。
- 实例演示:我们以零售业为例,事实表为销售订单表,维度表包括产品维度、时间维度和地区维度。
通过星型模型,可以方便地进行销售额、销售量等指标的分析和查询。
2. 雪花型模型- 雪花型模型是在星型模型的基础上进行维度表的归一化,并使用多层级的维度表来表示更复杂的关系。
这种模型适用于维度之间有多级关系的情况。
- 实例演示:在健康保险领域,事实表为理赔表,维度表包括疾病分类维度、医院维度和地区维度。
通过雪花型模型,可以灵活地进行疾病的统计分析,如特定疾病在特定地区的就医情况。
3. 硬度建模- 硬度建模是一种将维度直接存储在事实表中的建模方法,它减少了维度表和事实表之间的连接,提高了查询效率。
这种模型适用于维度表较小且不经常发生变化的情况。
- 实例演示:在人力资源管理中,事实表为员工绩效表,维度信息包括员工姓名、所属部门、入职日期等。
通过硬度建模,可以快速地查询某个员工的绩效数据和所属部门的平均绩效数据。
二、标准化建模1. 第一范式- 第一范式是一种最基本的标准化建模方法,要求每个字段的值不可再分,即每个字段都是不可再分的最小单元。
这种模型适用于简单的存储和管理需求。
- 实例演示:在物流管理中,需要存储和管理货物的基本信息,如货物名称、货物数量、货物重量等。
数据仓库的建模方法
数据仓库的建模方法一般可以分为以下几种:
1. 维度建模:维度建模是一种基于维度模型的建模方法。
它以事实表和维度表为核心,通过定义维度和事实之间的关系来描述数据仓库中的数据。
维度建模的优点是简单直观,易于理解和使用,适合一些小到中等规模的数据仓库。
2. 基于实体关系模型的建模方法:这种建模方法将数据仓库建模看作是一个基于实体关系模型的数据库设计问题。
它使用实体、关系和属性等概念来描述数据仓库中的数据,通过规范化、反规范化等技术来优化数据模型。
这种建模方法适用于复杂的数据仓库,具有很强的灵活性和扩展性。
3. 模式化设计方法:模式化设计是一种基于模式的建模方法,它将数据仓库中的数据分为不同的模式或层次,每个模式或层次都有特定的功能和目的。
模式化设计方法可以使数据仓库更加灵活和可扩展,能够更好地满足用户的需求。
4. 主题建模:主题建模是将数据仓库建模看作是一种主题导向的建模方法。
它以业务主题为核心,将数据仓库中的数据组织成一系列的主题模型,每个主题模型都包含与该主题相关的事实和维度。
主题建模的优点是能够更好地满足用户的查询需求,提供更准确、可理解和可用的数据。
不同的建模方法适用于不同的情况和需求,选择合适的建模方法对于数据仓库的
成功实施和运营非常重要。
数仓维度建模(如有侵权请联系删除)一、什么是维度建模按照事实表,维度表来构建数据仓库,数据集市。
将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。
二、维度建模的优势和原则1、优势和缺点a) 维度建模是可预测的标准框架。
允许数据库系统和最终用户查询工具在数据方面生成强大的假设条件,这些数据主要在表现和性能方面起作用。
b) 星型连接模式的可预测框架能够忍受不可预知的用户行为变化。
c) 具有非常好的可扩展性,以便容纳不可预知的新数据源和新的设计决策。
可以很方便在不改变模型粒度情况下,增加新的分析维度和事实,不需要重载数据,也不需要为了适应新的改变而重新编码。
较好的扩展性意味着以前的所有应用都可以继续运行,并不会产生不同的结果。
但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。
而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。
而在这些与处理过程中,往往会导致大量的数据冗余。
另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
2、维度建模的原则原则1、载入详细的原子数据到维度结构中维度建模应该使用最基础的原子数据进行填充,以支持不可预知的来自用户查询的过滤和分组请求,用户通常不希望每次只看到一个单一的记录,但是你无法预测用户想要掩盖哪些数据,想要显示哪些数据,如果只有汇总数据,那么你已经设定了数据的使用模式,当用户想要深入挖掘数据时他们就会遇到障碍。
当然,原子数据也可以通过概要维度建模进行补充,但企业用户无法只在汇总数据上工作,他们需要原始数据回答不断变化的问题。
原则2、围绕业务流程构建维度模型业务流程是组织执行的活动,它们代表可测量的事件,如下一个订单或做一次结算,业务流程通常会捕获或生成唯一的与某个事件相关的性能指标,这些数据转换成事实后,每个业务流程都用一个原子事实表表示,除了单个流程事实表外,有时会从多个流程事实表合并成一个事实表,而且合并事实表是对单一流程事实表的一个很好的补充,并不能代替它们。
原则3、确保每个事实表都有一个与之关联的日期维度表三、维度建模中表类型1、事实表发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。
从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。
事实表表示对分析主题的度量。
比如一次购买行为我们就可以理解为是一个事实。
图中的订单表就是一个事实表,你可以理解他就是在现实中发生的一次操作型事件,我们每完成一个订单,就会在订单中增加一条记录。
事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。
事实表包含了与各维度表相关联的外键,可与维度表关联。
事实表的度量通常是数值类型,且记录数会不断增加,表数据规模迅速增长。
2、明细表(宽表)事实表的数据中,有些属性共同组成了一个字段(糅合在一起),比如年月日时分秒构成了时间,当需要根据某一属性进行分组统计的时候,需要截取拼接之类的操作,效率极低。
如:local_time为了分析方便,可以事实表中的一个字段切割提取多个属性出来构成新的字段,因为字段变多了,所以称为宽表,原来的成为窄表。
year month day hour m s将上述的local_time字段扩展为如下6个字段,又因为宽表的信息更加清晰明细,所以也可以称之为明细表。
3、维度表每个维度表都包含单一的主键列。
维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。
维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。
维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况,你可以选择按类别来进行分析,或按区域来分析。
每个类别就构成一个维度。
上图中的用户表、商家表、时间表这些都属于维度表,这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。
总的说来,在数据仓库中不需要严格遵守规范化设计原则。
因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。
事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为准则。
四、维度建模的三种模式1、星型模式星形模式(Star Schema)是最常用的维度建模方式。
星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。
星形模式的维度建模由一个事实表和一组维表成,且具有以下特点: a. 维表只和事实表关联,维表之间没有关联; b. 每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键; c. 以事实表为核心,维表围绕核心呈星形分布;2、雪花模式雪花模式(Snowflake Schema)是对星形模式的扩展。
雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。
所以一般不是很常用3、星座模式星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。
前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。
在业务发展后期,绝大部分维度建模都采用的是星座模式。
五、维度建模过程数仓工具箱中的维度建模四步走:1、选择业务过程维度建模是紧贴业务的,所以必须以业务为根基进行建模,那么选择业务过程,顾名思义就是在整个业务流程中选取我们需要建模的业务,根据运营提供的需求及日后的易扩展性等进行选择业务。
比如商城,整个商城流程分为商家端,用户端,平台端,运营需求是总订单量,订单人数,及用户的购买情况等,我们选择业务过程就选择用户端的数据,商家及平台端暂不考虑。
业务选择非常重要,因为后面所有的步骤都是基于此业务数据展开的。
2、声明粒度先举个例子:对于用户来说,一个用户有一个身份证号,一个户籍地址,多个手机号,多张银行卡,那么与用户粒度相同的粒度属性有身份证粒度,户籍地址粒度,比用户粒度更细的粒度有手机号粒度,银行卡粒度,存在一对一的关系就是相同粒度。
为什么要提相同粒度呢,因为维度建模中要求我们,在同一事实表中,必须具有相同的粒度,同一事实表中不要混用多种不同的粒度,不同的粒度数据建立不同的事实表。
并且从给定的业务过程获取数据时,强烈建议从关注原子粒度开始设计,也就是从最细粒度开始,因为原子粒度能够承受无法预期的用户查询。
但是上卷汇总粒度对查询性能的提升很重要的,所以对于有明确需求的数据,我们建立针对需求的上卷汇总粒度,对需求不明朗的数据我们建立原子粒度。
3、确认维度维度表是作为业务分析的入口和描述性标识,所以也被称为数据仓库的“灵魂”。
在一堆的数据中怎么确认哪些是维度属性呢,如果该列是对具体值的描述,是一个文本或常量,某一约束和行标识的参与者,此时该属性往往是维度属性,数仓工具箱中告诉我们牢牢掌握事实表的粒度,就能将所有可能存在的维度区分开,并且要确保维度表中不能出现重复数据,应使维度主键唯一4、确认事实事实表是用来度量的,基本上都以数量值表示,事实表中的每行对应一个度量,每行中的数据是一个特定级别的细节数据,称为粒度。
维度建模的核心原则之一是同一事实表中的所有度量必须具有相同的粒度。
这样能确保不会出现重复计算度量的问题。
有时候往往不能确定该列数据是事实属性还是维度属性。
记住最实用的事实就是数值类型和可加类事实。
所以可以通过分析该列是否是一种包含多个值并作为计算的参与者的度量,这种情况下该列往往是事实。
六、实际业务中数仓分层数仓分层要结合公司业务进行,并且需要清晰明确各层职责,要保证数据层的稳定又要屏蔽对下游影响,一般采用如下分层结构:数据层具体实现•数据源层ODS数据源层主要将各个业务数据导入到大数据平台,作为业务数据的快照存储。
•数据明细层DW事实表中的每行对应一个度量,每行中的数据是一个特定级别的细节数据,称为粒度。
维度建模的核心原则之一是同一事实表中的所有度量必须具有相同的粒度。
这样能确保不会出现重复计算度量的问题。
维度表一般都是单一主键,少数是联合主键,注意维度表不要出现重复数据,否则和事实表关联会出现数据发散问题。
有时候往往不能确定该列数据是事实属性还是维度属性。
记住最实用的事实就是数值类型和可加类事实。
所以可以通过分析该列是否是一种包含多个值并作为计算的参与者的度量,这种情况下该列往往是事实;如果该列是对具体值的描述,是一个文本或常量,某一约束和行标识的参与者,此时该属性往往是维度属性。
但是还是要结合业务进行最终判断是维度还是事实。
•数据轻度汇总层DM此层命名为轻汇总层,就代表这一层已经开始对数据进行汇总,但是不是完全汇总,只是对相同粒度的数据进行关联汇总,不同粒度但是有关系的数据也可进行汇总,此时需要将粒度通过聚合等操作进行统一。
•数据应用层APP数据应用层的表就是提供给用户使用的,数仓建设到此就接近尾声了,接下来就根据不同的需求进行不同的取数,如直接进行报表展示,或提供给数据分析的同事所需的数据,或其他的业务支撑。
最后:总结一张数仓数据流向图。