数据仓库理论

数据仓库理论知识 通常数据仓库的数据来自各个业务应用系统。业务系统中的数据形式多种多样,可能是 Oracle、MySQL、SQL Server 等关系数据库里的结构化数据,可能是文本、CSV 等平面文件或 Word、Excel 文档中的数据,还可能是 HTML、XML 等自描 述的半结构化数据。这些业务数据经过一系列的数据抽取、转换、清洗,最终以一种统一的格式装载进数据仓库。数据仓库里的数据作为分析用的数据源,提供给后面的即席查询、 分析系统、数据集市、报表系统、数据挖掘系统等。这时我们就想了,为什么不能把业务系统的数据直接 阅读详情

数据仓库设计涉及四个关键步骤:数据分层、数据建模、表设计、数据治理。

数据分层:将数据仓库系统划分为多个层级,常见的分层包括原始数据层(ODS),数据仓库层(DW),数据应用层(ADS)等。分层的目的是将数据处理和集成任务划分为不同阶段,提高数据管理和维护效率。
数据建模:将业务需求转化为可操作的数据模型。常见的建模方法有范式建模和维度建模。范式建模消除冗余和重复数据,以多个表组织数据;维度建模以事实表和维度表为核心,定义维度和度量,支持灵活查询和分析。
表设计:根据需求和数据量选择全量表、增量表、流水表、拉链表等类型,考虑存储和查询效率、灵活性和可扩展性。
数据治理:数据治理也是数据仓库设计中的一个关键方面,它涉及规定和管理数据的标准、血缘关系和规则,以确保数据的质量、一致性和可靠性。数据治理还包括数据安全和合规性,以确保数据在存储和处理过程中得到保护。
这四个步骤相互依赖,通过分层划分任务;数据建模定义数据结构和语义;表设计实现具体表结构;数据治理确保数据的质量、安全性和合规性;综合执行这些步骤,可以建立一个高效、可靠且适合业务需求的数据仓库。

二、数据仓库分层理论
2.1、数据仓库分层介绍
数据仓库之所以要进行分层,是为了提高数据管理和处理的效率,以及支持灵活的数据分析和查询。以下是分层的主要目的和好处:

数据管理和维护:分层可以将数据仓库系统划分为多个层级,每个层级负责不同的任务和数据处理过程。这样可以简化数据管理和维护的复杂性,使数据流程更加清晰和可控,每个层级可以专注于特定的数据处理操作。
数据质量控制:通过分层,可以在每个阶段对数据质量进行验证和控制,错误或低质量的数据可以在早期被发现和处理,避免对后续分析和决策的影响。
灵活的数据分析:通过分层,数据仓库可以支持不同层级和粒度的数据分析。较低层级的数据可以用于更细粒度的操作和分析,较高层级的数据可以用于更高层次的汇总和报表。分层的设计使得数据仓库具有灵活性和可扩展性,能够满足不同层次和角度的数据需求。
2.2、分层设计架构


2.3、各层功能介绍
ODS(操作数据存储层):ODS层是数据仓库中的第一层,用于存储操作系统的源数据或事务级数据。它主要用于数据抽取、存储和数据质量验证,保留了数据的原始形态。ODS层中的数据通常以近实时或实时的方式进行抽取,并进行简单的数据清洗和转换,以便后续处理使用。
DWD(数据明细化层-事实 ):DWD层是数据仓库中的核心层,用于存储经过清洗、整合和转换后的明细数据。在DWD层中,数据被重新结构化,使其适合进行复杂的分析和查询操作。DWD层通常包含多个事实明细表,每个表代表一个业务事实,例如订单、用户、产品等。它是数据仓库的基础,支持各种维度的分析和报表需求。
DIM(维度层):DIM层是数据仓库中的维度数据存储层,用于存储描述业务对象的维度表。维度表包含与业务相关的属性和维度信息,如时间、地区、产品、用户等。维度表的作用是提供多维度的分析能力,将事实数据与维度数据进行关联和筛选,支持多角度的数据分析和查询操作。
DWS(汇总数据层):DWS层是数据仓库中的汇总层,用于存储经过聚合和汇总后的数据。在DWS层中,数据被按照不同的维度进行汇总和聚合,以提供更高层次的数据分析和报表需求。DWS层的设计可以根据业务需求进行灵活的聚合和汇总策略,以提高查询性能和响应速度。
ADS(数据应用层):ADS层是数据仓库中的应用数据存储层,用于存储针对特定应用需求的数据。在ADS层中,数据被进一步加工和优化,以适应特定的应用场景,如数据挖掘、机器学习、报表生成等。ADS层的设计可以根据具体应用需求进行灵活的数据模型设计和数据处理操作。
三、数据建模理论(DWD、DIM)
2.1、数据建模介绍
数据建模是指在设计和构建数据仓库或数据库系统时,对数据进行结构化和组织的过程。它是将现实世界中的业务需求和数据之间建立关联的方法和技术; 数据建模的目标是创建一个合理的数据模型,以便能够有效地存储、管理和使用数据。通过数据建模,可以定义数据的结构、关系和约束,从而使数据能够按照特定的业务需求进行查询、分析和操作。

数据仓库的建模方法有很多种,每一种建模方法代表一个观点,代表了一种归纳、概括世界的一种方法。常见的有:范式建模法、维度建模法、实体建模法等,每种方法从本质上将是从不同的角度看待业务中的问题。

数据建模理论主要针对数据仓库中的DWD、DIM层

2.2、范式建模(关系型数据库)
范式建模法是一种常用的数据建模方法,旨在通过规范化数据结构,减少数据冗余和数据异常,提高数据的一致性和灵活性。它基于关系数据库理论和范式概念,通过将数据分解为多个表并建立关系来达到优化数据存储和操作的目的。

范式建模法主要包括以下几个范式:

第一范式(1NF):确保每个数据字段的原子性,即每个字段都不可再分。在1NF中,每个表的每个列都包含原子值,不允许多值属性或重复的属性。
第二范式(2NF):在1NF的基础上,消除非主属性对候选键的部分函数依赖。简单来说,2NF要求将非主键属性与主键完全依赖,不能依赖于部分主键。
第三范式(3NF):在2NF的基础上,消除非主属性对候选键的传递依赖。3NF要求非主键属性之间不存在传递依赖关系,即一个非主键属性不能依赖于另一个非主键属性。
如下图:

在关系型数据库的模型设计中,一般采用第三范式

2.3、维度建模法(数据仓库)
维度建模法是一种常用的数据建模方法,特别适用于数据仓库和商业智能领域。它通过将数据组织成维度表和事实表的结构,以实现对业务过程的分析和报告。维度建模法注重对业务过程的理解和建模,以及对数据的分层和聚焦,使得数据仓库更易于使用和理解。

在维度建模法中,有两个核心概念:维度和事实。

维度(Dimensions):维度是描述业务过程的特征或属性的数据元素。它们提供了用于分析和过滤数据的上下文信息。常见的维度包括时间、地理位置、产品、客户、销售渠道等。维度通常作为维度表的基础,每个维度表对应一个特定的业务维度。
事实(Facts):事实是与业务过程相关的可度量的数据,即衡量业务过程中发生事件的数量或金额。事实表是存储事实数据的主要表,每个事实表通常包含多个度量(Measure)列,用于记录具体的业务指标,如销售额、销售数量、利润等。事实表通常与多个维度表进行关联,形成维度模型。
维度建模法的特点和优势包括:

简单直观:维度建模法以业务过程为中心,使数据模型更加直观和易于理解,便于业务用户参与数据分析和报表设计。
灵活可扩展:维度建模法支持灵活的数据分析和报表需求,可以方便地添加新的维度或度量,适应业务的变化和扩展。
查询性能优化:维度建模法通过合理的表设计和关联关系,优化了查询性能,使得数据检索和报表生成更高效。
可重用性和共享性:维度建模法中的维度表和事实表是可重用和共享的,可以为不同的报表和分析需求提供数据支持,避免了重复开发和数据冗余。
如下图:

在数据仓库的模型设计中,一般采用维度建模

三、维度建模三种模式
3.1、星型模式(常用)
星型模型是一种常用的维度建模方法,用于设计数据仓库和商业智能系统中的数据模型。它得名于其图形表示形式,其中一个中心事实表与多个维度表以星状结构连接在一起;在星型模型中,中心事实表包含与业务过程相关的度量数据,如销售额、销售数量、利润等。维度表则包含与业务过程相关的描述性属性,如时间、地理位置、产品、客户等。

星型模型的主要特点和组成部分包括:

中心事实表(Fact Table):中心事实表是星型模型的核心,存储与业务过程相关的度量数据。它通常包含一个或多个度量列,用于记录业务指标的数值。每一行表示一个业务事件或事实,例如一次销售交易。
维度表(Dimension Tables):维度表是星型模型的周围,存储与业务过程相关的描述性属性。每个维度表对应一个特定的业务维度,如时间维度、产品维度、客户维度等。维度表包含多个属性列,用于描述维度的不同特征。
主键-外键关联:在星型模型中,维度表与中心事实表之间建立主键-外键关联关系。维度表的主键列作为外键出现在中心事实表中,用于连接维度和事实数据。这种关联关系使得可以通过维度属性进行数据的聚合和筛选。
星型模型的优点包括:

简单直观:星型模型的结构清晰,易于理解和使用,使得数据模型更加直观和易于维护。
灵活可扩展:星型模型支持灵活的数据分析和报表需求,可以方便地添加新的维度或度量,适应业务的变化和扩展。
查询性能优化:通过合理的表设计和关联关系,星型模型优化了查询性能,使得数据检索和报表生成更高效。
易于数据共享:星型模型中的维度表是可重用和共享的,可以为不同的报表和分析需求提供数据支持,避免了重复开发和数据冗余。
如下图:

星型模型是一种常用的维度建模方法,通过中心事实表和维度表的组合,实现对业务过程的数据分析和报表展示。它具有简单、灵活和高性能的特点,适用于大多数数据仓库和商业智能项目。

3.2、雪花模式(较少)
雪花模型是一种在维度建模中常用的数据模型,它是在星型模型基础上的一种扩展和改进。与星型模型类似,雪花模型也由中心事实表和多个维度表组成,但在维度表的组织方式上有所不同;在雪花模型中,维度表被进一步规范化,即将维度表中的某些属性细分为更小的维度表,形成多层维度表的结构。这样的规范化使得模型呈现出类似雪花的形状,因而得名为雪花模型。

雪花模型的主要特点和组成部分包括:

中心事实表(Fact Table):中心事实表是雪花模型的核心,存储与业务过程相关的度量数据。它与星型模型中的中心事实表类似,记录业务指标的数值。
规范化的维度表(Dimension Tables):在雪花模型中,维度表被规范化为多个层级的维度表。每个维度表代表一个特定的业务维度,如时间维度、产品维度、客户维度等。规范化的维度表通过主键-外键关系连接起来,形成多层级的维度结构。
层级维度表(Hierarchical Dimension Tables):在雪花模型中,规范化的维度表可以进一步划分为多个层级维度表。每个层级维度表代表维度的不同层级,例如时间维度可以包括日期维度、月份维度、年份维度等。这样的层级结构可以更好地支持多层级的数据分析和报表需求。
主键-外键关联:与星型模型类似,雪花模型中的维度表之间通过主键-外键关联建立关系。维度表的规范化和层级化使得关联关系更加复杂,需要在查询时进行多次表连接。
雪花模型的优点包括:

更高的数据规范性:通过规范化和层级化的维度表,雪花模型提供了更高的数据规范性,使数据模型更加精细和准确。
支持多层级分析:由于层级维度表的存在,雪花模型可以更好地支持多层级的数据分析和报表需求,如从日期到月份再到年份的数据分析。
更好的数据冗余控制:通过规范化维度表,雪花模型可以减少数据冗余,提高数据存储效率和一致性。
然而,雪花模型也存在一些缺点,包括:

查询性能较低:由于需要进行多次表连接操作,查询性能相对较低,特别是在多层级的数据分析中。
复杂的模型设计和维护:雪花模型的规范化和层级化增加了模型的复杂性,对模型的设计和维护要求更高。
如下图:

雪花模型是一种相对于星型模型更规范化和层级化的数据模型,在某些场景下能提供更准确和详细的数据分析和报表需求支持,但需要权衡查询性能和模型的复杂性。在实际应用中,选择适合业务需求和数据特点的模型是很重要的。

3.3、星座模型(常用)
"星座模型"通常是指多个星型模型之间的关联和集成,以构建更复杂的数据仓库结构。星座模型是一种用于解决大规模数据仓库中数据集成和查询性能问题的方法。

在星座模型中,多个星型模型通过共享维度表进行关联。这些维度表包含了共同的维度属性,例如时间、地点、产品等。通过在不同的星型模型之间共享维度表,可以实现跨模型的数据集成和查询。

星座模型的主要目的是提高数据仓库的灵活性和性能。通过将数据仓库划分为多个独立的星型模型,并通过共享维度表进行关联,可以减少数据冗余并提高查询性能。此外,星座模型还提供了更高级别的数据聚合和分析功能。

五、建模及汇总层设计步骤(重要)
5.1、基本流程


5.2、数据调研
数据调研是指对源系统和相关数据进行深入调查和分析,以了解数据的结构、内容、质量等方面的情况。这包括与业务用户、数据所有者和数据负责人的沟通,收集数据需求和了解数据源系统的运作方式。数据调研的目的是为了获取对数据的全面了解,为后续的数据建模和设计提供基础。

数据调研的主要步骤包括:

了解业务需求:与业务用户和利益相关者沟通,了解他们的需求、业务流程和分析目标。这有助于明确数据仓库的目标和重点,以及需要收集的数据内容。
收集源数据:与源系统的数据所有者或相关人员合作,收集源数据的相关文档、数据库模式、数据字典等信息。这些信息可以帮助了解源数据的结构、字段含义、数据类型和数据质量等方面的情况。
理解业务含义:通过与业务用户和数据所有者的交流,深入了解数据的业务含义、数据流程和数据关系。这有助于理解数据的上下文和业务规则,从而更好地设计数据模型和定义维度和度量。
制定数据转换和清洗策略:根据数据调研的结果,制定数据转换、清洗和集成的策略。这包括确定数据转换规则、处理缺失值、处理数据不一致性等方面的措施,以确保数据仓库中的数据质量和一致性。
5.3、明确数据域
在数据仓库设计中,"数据域"指的是在业务领域或组织内特定的数据集合或数据范围。它代表了数据仓库所关注的业务或功能范围;数据域可以是一个业务过程、一个功能模块、一个部门或一个特定的业务领域。

假设我们正在设计一个零售业务的数据仓库。我们首先进行数据调研来了解业务需求和数据来源。在这个过程中,我们可能会与销售团队、采购团队、库存管理团队以及财务团队等业务部门进行会议和访谈,了解他们的数据需求和业务流程。

在分析业务流程后,我们可能识别出以下几个重要的数据主题或数据域:

销售数据域:包括销售订单、销售额、销售渠道等与销售业务相关的数据。
采购数据域:包括采购订单、供应商信息、采购成本等与采购业务相关的数据。
库存数据域:包括库存数量、库存变动、库存预警等与库存管理业务相关的数据。
客户数据域:包括客户信息、客户分类、客户行为等与客户管理业务相关的数据。
财务数据域:包括收入、支出、利润、成本等与财务管理业务相关的数据。
5.4、构建业务总线矩阵(重要)
5.4.1、业务总线矩阵介绍
这一步尤为重要,业务总线矩阵中包含维度模型所需的所有事实(业务过程)以及维度,以及各业务过程与各维度的关系。矩阵的行是一个个业务过程,矩阵的列是一个个的维度,行列的交点表示业务过程与维度的关系。

5.4.2、构建业务总线矩阵步骤
5.4.3、步骤介绍
选择业务过程:根据数据域确定数据模型的焦点范围,选择具体的业务过程。例如在交易域中可以确定:订单过程、支付过程、退款过程。
声明粒度:确定数据模型中的粒度,即确定数据模型中每个事实记录所代表的业务事件的级别和详细程度,注意在同一事实表中,必须具有相同的粒度,同一事实表中不要混用多种不同的粒度,不同的粒度数据要建立不同的事实表。
确认维度:确定数据模型中的维度,即描述业务过程的属性或特征。维度通常是描述业务上下文的属性,例如时间、地点、产品、客户等。维度为事实提供了上下文和分析维度。在确认维度时,需要考虑维度的层次结构和关系。
确认事实度量值:确定数据模型中的事实,即业务过程中可以量化和衡量的指标或度量。事实通常是与业务过程相关的数值数据,例如销售额、数量、成本、利润等。事实是数据模型中的关键指标,用于支持业务分析和决策。
5.5、维度模型设计(DWD、DIM)
上一步业务总线构建成功后,一个业务过程即对应一张事实表,一个维度即对应一张维度表。

5.6、明确统计指标(为DWS层做准备)
5.6.1、统计指标介绍

上述维度设计完毕后,开始考虑明确统计指标;明确统计指标是指对于业务需求和分析目的,明确定义需要进行统计和度量的指标或度量值。这些统计指标用于衡量和量化业务活动、绩效、趋势等关键方面,以支持数据分析和决策。

5.6.2、统计指标分类

原子指标:原子指标基于某一业务过程的度量值,是业务定义中不可再拆解的指标,原子指标的核心功能就是对指标的聚合逻辑进行了定义,例如订单总额就是一个典型的原子指标,其中的业务过程为用户下单、度量值为订单金额,聚合逻辑为sum()求和。需要注意的是原子指标只是用来辅助定义指标一个概念,通常不会对应有实际统计需求与之对应。
派生指标:派生指标基于原子指标,其与原子指标的关系如下图所示:


衍生指标: 衍生指标是在一个或多个派生指标的基础上,通过各种逻辑运算复合而成的。例如比率、比例等类型的指标。衍生指标也会对应实际的统计需求


5.7、汇总模型设计(DWS[重要])

六、数据仓库表设计理论

核心思想与目标

‌以用户为中心:‌ 设计应便于业务用户理解和查询,使用业务术语。

‌优化查询性能:‌ 针对典型的分析查询(大量数据扫描、聚合、多表连接)进行优化。

‌数据一致性:‌ 确保跨不同数据集市/事实表的关键业务定义(如客户、产品、时间)是一致的。

‌可扩展性:‌ 设计应能适应业务变化(新增维度、指标、历史数据)。

‌历史追踪:‌ 能够记录和分析历史状态的变化(特别是维度)。

‌加载性能:‌ ETL过程应高效且可控

核心概念:维度建模

维度建模是数据仓库设计的主流方法,由 Ralph Kimball 推广。其核心是构建两类表:

  1. ‌事实表‌

    • ‌作用:‌ 存储‌可度量‌的业务过程‌定量数据‌(如销售额、订单量、点击次数)。
    • ‌结构:‌
      • ‌事实:‌ 数值型的衡量指标(通常是数值型,可加、半可加或不可加)。
      • ‌外键:‌ 连接到多个维度表的键。这是事实表的主体部分。
      • ‌退化维度:‌ 原本属于维度属性,但因唯一性(如订单号、发票号)或低基数属性直接存储在事实表中,简化模型并避免不必要的维度表连接。
      • ‌可选时间戳:‌ 有时会存储精确的时间戳(除日期键外)。
    • ‌特点:‌
      • 记录非常‌多‌(大表)。
      • 结构相对‌简单‌(主要是键和数字)。
      • 通常是‌事务粒度‌或‌周期快照粒度‌。
    • ‌粒度:‌ 定义事实表中每一行代表什么业务事件(核心设计决策!)。
      • 事务粒度: 每个事件一行(如每笔销售交易一行)。
      • 周期快照粒度: 在固定时间间隔(如每天、每月)对状态进行快照(如每日库存余额)。
      • 累积快照粒度: 记录具有多个里程碑的过程(如订单处理流程:下单、发货、收货),一行代表一个业务实体(如一个订单)的生命周期,包含多个时间点。
  2. ‌维度表‌

    • ‌作用:‌ 存储描述‌业务过程上下文‌的‌定性数据‌。代表事实发生的“谁、什么、何时、何地、为何、如何”。
    • ‌结构:‌
      • ‌主键:‌ 通常是代理键,与事实表的外键对应。
      • ‌属性:‌ 描述性的文本或离散数值字段(如产品名称、客户名称、城市、月份、状态标志)。属性是用户查询的约束条件(WHERE 子句)和分组依据(GROUP BY 子句)。
    • ‌特点:‌
      • 记录相对‌少‌(小表,但可能包含宽字段)。
      • 包含丰富的‌文本描述‌属性。
      • 结构相对‌宽‌(包含很多列)。
    • ‌关键特性:‌
      • ‌缓慢变化维度:‌ 维度属性会随时间变化。
        • ‌类型1:‌ 覆盖 - 只保留当前最新值(丢失历史)。
        • ‌类型2:‌ 添加新行 - 为发生变化创建新行,通过代理键、生效/失效时间戳/标志位(最常用,保留完整历史)。
        • ‌类型3:‌ 添加新列 - 保留有限的旧值(如“当前地区”和“上一地区”)。
        • ‌类型4/6:‌ 迷你维度/混合策略 - 处理变化频率极高的大型维度。
      • ‌一致性维度:‌ 在不同事实表或数据集市中具有相同含义和属性的维度(如使用同一个“日期维度表”)。是实现企业级数据仓库集成和跨主题分析的关键。
      • ‌角色扮演维度:‌ 一个物理维度表通过视图或别名在模型中扮演多个角色(如“日期维度”可以同时作为“订单日期”、“发货日期”、“付款日期”)。
      • ‌雪花架构 vs 星型架构:‌
        • 星型架构: 维度表是扁平的,不进一步规范化(常用,查询简单)。
        • 雪花架构: 维度表被规范化成多层(减少冗余,增加复杂性,查询需更多连接)。

设计流程

  1. ‌选择业务过程:‌ 确定要建模的核心业务活动(如销售、库存、客户服务)。
  2. ‌声明粒度:‌ ‌最重要的一步!‌ 明确事实表中每行代表什么(单个事务?每日快照?)。粒度决定了事实表的详细程度。
  3. ‌确定维度:‌ 围绕业务过程,确定描述事实发生背景的所有维度(如时间、产品、商店、客户、促销)。粒度声明有助于识别维度。
  4. ‌确定事实:‌ 识别与业务过程相关的可度量指标(如销售金额、销售数量、折扣额)。
  5. ‌填充维度表:‌
    • 确定维度属性(丰富、描述性)。
    • 为每个维度定义主键(通常使用无意义的代理键)。
    • 定义维度缓慢变化策略(主要是类型2)。
  6. ‌构建事实表:‌
    • 包含所有确定的事实。
    • 包含连接到所有维度表的外键(代理键)。
    • 识别并处理退化维度。
    • 明确事实表的粒度(确保每行对应声明的粒度)。

关键原则与最佳实践

  1. ‌始终关注粒度:‌ 时刻明确事实表的粒度,它是设计的基石。
  2. ‌代理键优先:‌ 在事实表和维度表之间使用无业务意义的代理键连接(整数自增)。优点:
    • 隔离业务系统变化。
    • 处理缓慢变化维度更简单(特别是类型2)。
    • 提高连接性能(整数键小且快)。
    • 整合多源系统数据更容易。
  3. ‌一致性维度:‌ 这是构建集成化企业数据仓库的核心。确保核心维度(如日期、客户、产品、地理位置)的定义和内容在不同的数据集市或事实表中保持一致。
  4. ‌丰富维度属性:‌ 维度表中的属性是约束和分组的源头。属性越丰富,用户能做的分析就越灵活。避免将维度属性放入事实表(除非是退化维度)。
  5. ‌处理缓慢变化维度:‌ 根据业务需求和历史追踪要求选择合适的策略,类型2是最常用也最强大的。
  6. ‌避免过度规范化(雪花化):‌ 虽然雪花架构在理论上更规范、存储更少冗余,但在数据仓库环境中,星型架构因其简单性和查询性能通常是首选。适度的冗余(维度表内)是可接受的。复杂的层次关系有时可以用桥接表处理。
  7. ‌事实表设计:‌
    • 确保事实是可加的或理解其不可加性(如比率)。
    • 避免在事实表中存储文本描述(放入维度表或作为退化维度)。
    • 为外键列建立索引(通常由数据库自动完成)。
  8. ‌命名规范:‌ 使用清晰、一致、符合业务术语的命名规则(表名、列名)。
  9. ‌文档化:‌ 清晰地记录模型设计、粒度定义、缓慢变化策略、ETL规则等。

现代演进

  • ‌大数据与列式存储:‌ Snowflake, Redshift, BigQuery 等现代数仓平台采用列式存储,压缩比高,对宽表(尤其是星型架构)更友好。
  • ‌数据湖与湖仓一体:‌ 维度建模思想在湖仓一体架构中仍然适用,用于构建数据集市层或服务层,源数据则存储在更灵活的湖中。
  • ‌Data Vault:‌ 作为另一种方法论,更关注数据集成、可审计性和历史追踪,其核心是Hub、Link、Satellite表结构。适用于非常复杂、多源集成的场景,查询通常需要在其基础上构建下游的维度模型。
  • ‌宽表:‌ 在某些特定场景下(如基于大宽表的BI引擎),可能将所有维度属性“退化”到事实表中,形成单一的宽表。这牺牲了存储和维度灵活性,但简化了查询(无需连接)。需权衡利弊。

总结

数据仓库表设计的核心在于维度建模理论:围绕业务过程构建‌事实表‌(存储度量值)和‌维度表‌(存储上下文描述)。成功的关键在于‌精确地声明粒度‌,使用‌代理键‌和‌一致性维度‌,妥善处理‌缓慢变化维度‌,并遵循星型架构为主的设计原则,最终目标是服务于高效、灵活、一致的业务分析。设计过程需要深入理解业务需求,并在理论指导下做出合理的工程权衡。

七、数据治理理论

数据治理是确保组织数据资产得到有效管理、可靠利用和安全保障的系统性工程。在数据仓库环境中,数据治理尤为关键,因为数仓是企业核心数据的集中地,也是决策支持的基础。以下是数据治理的核心理论框架和关键要素:


‌一、数据治理的定义与目标‌

  1. ‌定义‌
    通过制定政策、流程、标准和工具,对数据的‌可用性、完整性、安全性、一致性‌进行持续管理,确保数据成为可信赖的战略资产。

  2. ‌核心目标‌

    • ‌可信性‌:数据准确、一致、可追溯(如:不同报表的销售额结果一致)
    • ‌安全性‌:防止敏感数据泄露(如:客户信息脱敏)
    • ‌合规性‌:满足 GDPR、CCPA、《数据安全法》等法规要求
    • ‌价值挖掘‌:提升数据利用率,支持决策效率(如:分析师快速获取所需数据)

‌二、数据治理的核心支柱‌

1. ‌数据质量(Data Quality)‌
  • ‌关键维度‌:
    • 准确性(Accuracy):数据反映真实情况(如:用户年龄值在1-120之间)
    • 完整性(Completeness):关键字段无缺失(如:订单表的客户ID非空)
    • 一致性(Consistency):跨系统或表的数据逻辑一致(如:销售总额=各商品销售额之和)
  • ‌实施方法‌:
    • 定义数据质量规则(如:数值范围、格式校验)
    • 自动化监控与告警(如:用 Great Expectations 实时检测异常)
    • 闭环修复流程(识别→分配→修复→验证)
2. ‌元数据管理(Metadata Management)‌
  • ‌核心内容‌:
    • ‌技术元数据‌:表结构、ETL脚本、血缘关系(如:BI报表字段来源的表和计算逻辑)
    • ‌业务元数据‌:指标定义(如:“活跃用户”=当日登录次数≥1)、业务术语表
  • ‌工具示例‌:
    • Apache Atlas、Collibra、Alation
    • ‌血缘价值‌:快速定位上游故障影响范围(如:源系统字段变更导致下游10张报表异常)
3. ‌数据安全与隐私(Data Security & Privacy)‌
  • ‌关键实践‌:
    • ‌分级分类‌:识别敏感数据(PII、PHI)并标注(如:身份证号=敏感级别L3)
    • ‌访问控制‌:基于角色的权限(RBAC)或属性(ABAC)(如:客服只能看到本区域的客户电话)
    • ‌脱敏加密‌:生产环境用动态脱敏(如:138‌****‌1234),测试环境用假数据生成
  • ‌合规要求‌:
    • 审计日志记录所有数据访问行为
    • 数据保留策略(如:订单数据保留7年)
4. ‌主数据管理(Master Data Management, MDM)‌
  • ‌解决痛点‌:消除“客户”在CRM、ERP、数仓中的不同定义(如:同一客户在不同系统ID不同)
  • ‌实施步骤‌:
    1. 识别核心实体(客户、产品、供应商)
    2. 制定统一模型与编码规则
    3. 建立黄金数据源(System of Record)
5. ‌数据生命周期管理‌
  • ‌阶段控制‌:
    阶段行动示例
    采集校验数据格式合法性
    存储冷热分层(热数据SSD,冷数据OSS)
    归档5年前数据压缩转存至低成本存储
    销毁过保留期数据安全擦除

‌三、数据治理的落地框架‌

1. ‌组织保障‌
  • ‌三层治理架构‌:
    • ‌决策层(Steering Committee)‌:高管制定战略(如:数据隐私合规预算审批)
    • ‌执行层(Data Governance Council)‌:跨部门协调(IT+法务+业务)
    • ‌操作层(Data Stewards)‌:领域专家负责具体数据质量(如:财务专员审核成本数据)
2. ‌流程设计‌
  • ‌关键流程‌:
    • ‌变更管理‌:数仓表结构修改需评审(影响分析+回归测试)
    • ‌问题管理‌:数据质量问题的跟踪闭环(Jira集成)
    • ‌合规审计‌:定期检查数据访问日志与权限设置
3. ‌技术工具栈‌
功能代表工具
元数据管理Apache Atlas, Informatica EDC
数据质量Talend DQ, Great Expectations
数据目录Alation, Collibra
数据安全Immuta, Privacera
4. ‌度量和持续改进‌
  • ‌核心指标‌:
    • 数据质量达标率(如:98%的字段通过校验)
    • 元数据覆盖率(关键表100%有业务描述)
    • 数据事故响应时间(从发现到修复≤4小时)
  • ‌PDCA循环‌:计划→实施→检查→改进(例:季度复盘治理效果)

‌四、数据仓库场景下的治理重点‌

  1. ‌ETL流程治理‌

    • 日志记录每一步数据处理耗时与记录数
    • 血缘追踪确保上游异常可快速定位下游影响(如:订单表延迟导致日报失败)
  2. ‌模型设计规范‌

    • 命名一致性(表名dim_user vs dwd_orders)
    • 缓慢变化维(SCD)策略统一(类型2历史追踪)
  3. ‌指标一致性管理‌

    • 建立指标中心(Metric Store)统一定义(如:“GMV”=已支付订单金额总和)
    • 避免同一指标在不同报表中计算逻辑冲突

‌五、常见挑战与应对策略‌

挑战解决方案
‌业务部门参与度低‌优先治理高价值场景(如:财报数据)证明收益
‌技术债积累导致治理困难‌分阶段重构(先新增模块合规,再改造旧模块)
‌工具平台分散‌构建一体化数据治理平台(如:DataHub)
‌合规要求动态变化‌建立法规解读小组,自动化策略更新

‌六、未来趋势‌

  • ‌自动化治理(AutoGov)‌:AI自动识别敏感数据、推荐质量规则(如:AWS Glue DataBrew)
  • ‌隐私增强技术(PETs)‌:差分隐私、联邦学习在数仓中的应用
  • ‌Data Mesh架构的影响‌:去中心化治理(领域自治+全局标准)

数据治理不是一次性项目,而是‌持续优化‌的过程。成功的核心在于将治理要求‌嵌入日常工作流‌(如:在ETL开发时强制填写元数据),而非事后补救。最终目标是通过可信数据加速企业决策,让数据从成本中心转化为价值引擎。

感谢阅读!!!

DB理论--数据存储方式 从本篇开始呢,我来详细的整理一下mysql。mysql其实还是有点难度的,这里我会认真的,详细的整理到MySQL的各个细节。OK,现在我来开始。 首先呢,这里先开始整理数据库理论,为了方便我统一来使用DB表示数据库。 比如说什么是DB?为什么要使用DB?什么是数据库泛型?什么是sql?如何访问DB?常用的DB有哪些等等,之后呢关于高级的一点的sql优化等等最后在整理。 阅读详情

相关推荐

电商数据仓库理论

电商数据仓库理论数据仓库分层为什么要分层数据集市与数据仓库概念数仓命名规范表命名脚本命名规范表字段类型数仓理论范式理论范式概念函数依赖三范式区分关系建模和维度建模关系建模维度建模维度表和事实表数据仓库建模数仓建模数仓建模 数据仓库分层 为什么要分层 ODS(Operation Data Store) 原始数据层。存放原始数据,直接加载原始日志、数据,数据保持原貌不作处理 DWD(Data Warehouse Detail) 明细数据层。对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)、

Intelia的博客 873

推荐文章:深入浅出了解 db-papers - 数据库理论研究的宝库

推荐文章:深入浅出了解 db-papers - 数据库理论研究的宝库 db-papers:项目的核心功能/场景 db-papers 是一个全面的数据库理论论文列表,涵盖了构建数据库系统的各个方面,包括基本理论背景、经典系统设计以及数据库内的多个模块。 项目介绍 在当今信息爆炸的时代,数据库作为存储、管理和检索数据的核心技术,其重要性不言而喻。为了深入理解和构建更为高效的数据库系统,db-paper...

gitblog_00910的博客 855

数据仓库详解及分层理论

目录数据仓库定义数据仓库的特点数据仓库的作用数据仓库与传统数据库的区别数据仓库的架构数据仓库的要求什么是数据仓库分层数据仓库分层的原因数据仓库具体的分层说明 数据仓库定义 数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用使用。 数据仓库的特点 面向主题的:数据仓库都是基于某个明确的主题,仅需要与该主题相关的数据,其他的无关细节将会被去掉。 ​ 集成的

有所谓的博客 1982

数据仓库基本理论

1、关系模式范式 1.1 范式理论概述 关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。 范式的标准定义是:符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。通俗地讲,范式可以理解为一张数据表的...

Moody的博客 5306

数据仓库分层理论

数据仓库的分层理论是数据仓库建设和设计的基础之一,目的是将不同类型、不同处理阶段的数据分层存放和管理,以提高数据处理的效率和灵活性,同时增强数据的可维护性和可扩展性。在数据仓库中,分层帮助我们理清从原始数据到最终业务数据的整个处理流程。

HandsomeBoy 1587

数据仓库设计理论

数据仓库是一个用于集成、存储和分析大量结构化和非结构化数据的中心化数据存储系统。它旨在支持企业的决策制定和业务分析活动。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 5138

数据仓库建设:从理论到实践的完整指南

本文全面剖析数据仓库建设,从理论层面阐释其定义、核心特性及与数据库的差异,再深入实践环节,涵盖需求分析、模型设计、数据抽取转化加载、技术选型等步骤,还探讨实践中的挑战与应对策略,最后总结数据仓库的价值与未来发展趋势,为相关从业者提供从理论到实践的完整指引。例如,电商平台的订单数据库实时处理用户下单、支付等操作,而数据仓库则整合订单、用户、商品等数据,分析销售趋势、用户偏好等。同时,要考虑未来业务的扩展,确保需求的前瞻性。数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用于支持管理决策。

2503_92849134的博客 796

数据仓库理论与实战

以hadoop 作为基础生态,从0到进行数仓建设,主要分为基础篇和实战篇两部分,基础篇主要是各种组件的学习和案例,实战篇主要是三家企业的数仓设计案例,最后是扩展篇主要是实时数仓。

2401_84052244的博客 5992

数据仓库理论与实践

数据仓库理论与实践 文章目录数据仓库理论与实践一、数仓理论1.1 数据库和数据仓库的区别 Java、大数据开发学习要点(持续更新中…) 一、数仓理论 1.1 数据库和数据仓库的区别 数据库和数据库软件: 数据库软件是一种物理概念,用于实现数据库。数据库是一种逻辑概念,用于存放数据,数据库由各种表组成,表则能表达数据的二维关系,而数据库的表能用二维表现多维关系。 数据仓库: 数据仓库从逻辑上讲与数据库没有什么差别,功能都是用于存放数据。但从数据用途和数据量上来讲,数据仓库区别于数据库是面向数据分析和数

weixin_38836273的博客 1393

Plot3d 网格数据格式

PLOT3D是一个计算机图形程序,旨在可视化计算流体力学的网格和解决方案。PLOT3D文件可以是ASCII, 也可是Fortran unformatted 或 C binary形式。PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件)。网格文件中可加入所谓的IBlank参数。

weixin_62592231的博客 3720

Ubuntu 解决WPS缺少宋体,微软雅黑等中文字体

这篇博客解决Ubuntu 18.04 无法使用中文字体的问题 问题描述

分享日常的学习,开展的项目,编写的软件,解决的问题等~ 1万+

数据仓库建模理论

数据仓库建模理论 1、关系模式范式 只列前三种 1.1、第一范式(1NF) 域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项 1.2、第二范式(2NF) 在1NF的基础上,实体的属性完全依赖于主关键字,不能存在仅依赖主关键字一部分的属性 1.3、第三范式(3NF) 在2NF的基础上,任何非主属性不依赖于其它非主属性 2、数据仓库建模基本理论 2.1、ER实体模型 在信息系统中,将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述;实体:Entity,关系:Relationship,

qq_27960935的博客 938

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 228

数据仓库的分层理论

数据仓库的分层理论是为了更好地组织和管理数据,支持复杂的数据分析和决策支持。在这一理论中,数据仓库被分为多个层次,每个层次都有其特定的作用和设计原则。以下是每一层的详细介绍,以及以销售人员为例的Doris建表实例。

大模型大数据攻城狮的专栏 955

MCNP 减方差技巧(最全)

MCNP的减方差技巧,核心在于不显著增加计算时间的前提下,通过修改模拟过程来降低结果的统计误差。尤其适用于,这类问题中粒子很难到达探测器区域,直接模拟效率极低栅元重要性是常用的减方差技巧,该方法主要对计算模型的不同区域定义不同的重要性数值。当粒子从重要性低的区域废物重要性高的区域,产生更多粒子,增大统计量;当从重要性高的区域进入重要性低的区域,会进行,增快计算效率。n= 中子,N;光子,P;电子 Exi= 栅元i的重要性I=栅元总数项目IMP卡是必须的,除非使用了WWN卡如果粒子进入0。

chencheng1127的博客 925

关于笔记本测试的面试准备 2021-10-11

** 关于笔记本测试的面试准备 ** 一、根据JD分析,工作内容以软测为主,硬件知识需要了解一点。 以下几个问题为主要: 1.了解VGA、audio、wlan、bt、TP 、camera等driver,BIOS和image测试。 2.了解性能测试工具?压力测试相关设置? 3.了解preload流程? 二、解决 VGA: video graphics array ——笔记本上外接显示器的接口。 【VGA接口兼容性更强,但是不支持高分辨率。 支持高分辨率:HDMI、DIV、TP】 bt【Bluetooth

xw_009的博客 1865

数据仓库基础理论

​ 前端时间,使用阿里云MaxCompute做数据仓库,处理大数据的分析处理,整理一下数据仓库的基础理论。 BI(Business Intelligence 商业智能)的作用 ​ 操作性数据特点:细节化,分散化; ​ 决策性数据:综合化,集成化; ​ 企业对应用继承的需求:1,实时监控;2,决策支持;3,预测; ​ 现有应用系统无法达到企业的要求:1,数据分散;2,数据不兼容;3,系统应用孤立; ​ BI: ​ 1,通过集成实时与历史数据,将分析转换为执行力; ​ 2,洞察力:获得对业务绩效、

空心菜的专栏 1253

【第13话:感知算法】库位与可行驶区域检测:自主泊车场景中的检测及语义分割方法

本文提出了一种自动泊车系统中的泊车库位线检测方法,通过逆透视映射(IPM)将车辆摄像头图像转换为鸟瞰视图,消除透视变形。该方法结合目标检测和语义分割模型,先定位库位线候选区域,再生成像素级精确掩码。后处理步骤将掩码转换为结构化输出,包括停车位边界多边形和可行驶区域掩码。整个流程采用深度学习模型和计算机视觉技术,可实现高精度的泊车环境感知,为自动泊车系统提供可靠支持。

一碗白开水一 1160
上一篇: 大数据计算引擎(二)——Flink
下一篇: 大数据计算引擎(三)——Elasticsearch入门
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值