
大家好!我们是三倍镜团队,感谢持续关注!《数仓深度探索系列》今日更新啦,带你深入了解数据仓库架构。
在《数据仓库深度探索系列》的前两篇文章中,我们深入讨论了数据仓库的重要性和架构选择。现在,让我们言简意赅地聚焦数据仓库建设的全流程。

数据仓库建设是一个从需求分析到架构设计的全面过程。它始于业务、数据和需求的调研,确保我们准确把握企业的目标和数据现状。随后,通过精心设计的ETL流程、数据建模和架构搭建,我们将这些需求转化为一个高效、可扩展的数据仓库系统。

基于流程图所揭示的数据仓库建设全流程,我们将开展一系列深度探索,精细解读每个关键步骤的实施策略。我们将逐一深入剖析,从最初的业务调研到最终的数据资产管理,确保您不仅理解每个环节,而且能够将这些知识转化为切实可行的操作。

此外,鉴于本文提到的每个步骤都较为复杂,作为我们数仓深度探索系列文章的一部分,我们后续会针对本篇文章提到的每个步骤进行专题探索分析,以确保您能够深入理解并有效实施。我们的目标是协助您将数据仓库的构建蓝图转化为现实,确保数据仓库的高效运行和持续优化。
前期调研
在进行数据仓库建设时,前期调研是至关重要的第一步,它为整个数据仓库建设项目打下坚实的基础。前期调研主要包括三个核心活动:需求调研、业务调研和数据调研。这些活动帮助我们明确数据仓库建设的目标和需求,为后续的数据域划分和架构设计提供必要的信息和指导,确保数据仓库建设能够稳固推进。
接下来,让我们深入了解这些核心活动的详细步骤和方法,这将帮助我们更具体地了解如何执行前期调研,以及如何将这些调研成果转化为数据仓库建设的实际行动。

调研目标
- 奠定数据仓库建设基础: 通过全面的调研,梳理出清晰的数据仓库建设方向,确保后续建设工作有章可循。
- 确保需求与业务对齐: 深入理解业务需求,使数据仓库建设紧密贴合业务发展,避免出现"闭门造车"的情况,切实为业务赋能。
关键原则
需求双确认: 数据仓库建设需求必须经过业务部门与技术部门的双重确认。业务部门确保需求符合业务发展需求;技术部门确保需求能够落地实施,从而保障数据仓库建设的可落地性。

核心活动及输出
需求调研
目的: 精准锚定建设目标,明确数据仓库建设的具体需求,包括数据的类型、格式、使用场景和访问权限。
关键输出: 需求文档(含验证记录)、需求优先级矩阵
详细步骤:
- 与业务部门和IT部门共同讨论,明确数据需求。
- 编写需求文档,详细描述数据需求。
- 与业务部门再次确认需求文档的准确性和完整性。
- 根据业务重要性和紧急程度对需求进行排序。
- 在项目实施过程中,管理需求的变更,确保需求的稳定性。
业务调研
目的: 洞察业务脉络,了解企业的业务流程、组织架构、业务目标和痛点。
关键输出: 业务流程图、组织架构图、目标清单
详细步骤:
- 明确调研目标,设计调研计划,准备调研工具。
- 选择访谈对象,进行面对面访谈,记录访谈内容。
- 设计问卷,发放并回收问卷,整理分析数据。
- 整理访谈和问卷数据,分析业务需求,识别痛点和问题。
- 编写调研报告,进行报告评审和优化。
- 将调研结果应用于方案设计和项目实施。
数据调研
目的: 评估现有的数据资源、数据质量和数据管理流程,摸清数据家底。
关键输出: 数据资源目录、质量评估报告、安全合规清单
详细步骤:
- 将数据按系统和模块进行分类,便于管理和查找。
- 确保所有表和字段都有完整的中文备注,便于理解。
- 统计各数据源的数据量和容量,评估存储需求。
- 初步探索数据内容,了解数据的基本特征。
- 编制数据资源目录,系统化管理数据资源。
- 确认数据资产的范围,明确哪些数据将被纳入数仓。
- 评估数据的准确性、完整性、一致性和时效性。
- 分析现有的数据存储系统和数据处理流程,找出瓶颈与不足。
- 检查数据的安全性和合规性,确保符合相关法规。
- 审视现有数据模型是否合理,架构是否支持高效查询和扩展,为后续优化提供依据。
通过这些调研活动,我们可以确保数据仓库建设项目的目标和需求被准确理解和定义,为后续的项目实施提供坚实的基础。整合这些调研结果,我们可以设计出一个既满足业务需求又考虑数据现状的数据仓库解决方案。
数据域划分
数据域划分是搭建数据仓库时的关键一步。它要求我们对数据进行抽象分类,以满足当前业务需求并适应未来扩展,同时保持数据结构的稳定性。确定数据仓库目标和需求后,我们按业务需求将数据划分为不同域,这决定了数据的组织方式,对数据管理和分析效率至关重要。以下是通俗易懂的划分数据域的方法:

划分时机与原则
数据域划分应在业务调研之后进行,需遵循以下原则:
保持业务含义一致性: 每个主题域所包含的业务含义应该是一致的,不能出现业务含义混淆的情况。
层级明晰: 主题域的划分应遵循自上而下的原则,层级关系应清晰明了,方便后续的数据分析和挖掘。
避免数据冗余: 在主题域划分过程中,应尽可能避免数据冗余的情况,确保每个主题域内的数据具有相对独立性。
可扩展性: 主题域的划分应考虑到未来的业务发展,确保主题域的可扩展性。这样可以方便后续对数仓进行升级和改造。
不交叉、不重复、不遗漏: 业务主题域的细分应本着不交叉、不重复、不遗漏的原则进行,每个细分类应独立而避免相互依存,且同一层次保持逻辑结构一致

划分方式
可采用以下方式,也可组合使用:
按业务过程划分: 将一个业务过程抽象出一个主题域。例如,在电商领域中,可以将商品、交易、物流等业务过程抽象为主题域,这是通用且推荐的方式。
按业务系统划分: 将一个业务系统抽象出一个主题域。例如,ERP系统、CRM系统等可以各自成为一个主题域,适用于初期集成和数据治理场景。
按需求方划分: 根据需求方的不同,设定对应的主题域。比如需求方为人力资源部,就可以设定对应的人力主题域,其中可能包含离职率分析、员工满意度分析等主题,适用于定制化数据分析需求。
按部门划分: 将一个业务部门抽象出一个主题域。例如,中台部门、业务运营部门、供应链部门等可以各自成为一个主题域,适用于大型企业或集团。
按功能或应用划分: 软件的不同功能模块也可以归纳为不同的主题域。例如社交软件中的聊天、朋友圈、群聊、发送文件等功能模块,可以分别划分为主题域,适用于功能模块较多的应用。
按行业经验划分: 参考行业内已有的成熟模型和经验进行划分。比如在金融行业,可以参考IBM公司的BDWM九大金融主题模型、Teradata公司的FS-LDM十大金融主题模型等,适用于特定行业。

划分的步骤
梳理业务流程
方法: 和业务部门沟通,了解企业的主要业务流程,比如采购、生产、销售、客户服务等。
举例: 一家电商公司,主要业务流程包括商品采购、订单处理、物流配送、客户服务等。
确定核心业务领域
方法: 根据业务流程,找出最重要的业务领域,这些就是主题域的初步划分。
举例:
销售:涉及订单、客户、销售额等。
客户:涉及客户信息、客户行为、客户满意度等。
财务:涉及收入、支出、利润等。
供应链:涉及库存、采购、物流等。
细化主题域内容
方法: 在每个核心业务领域中,进一步细分数据内容,明确每个主题域包含的具体数据。
举例:
销售主题域:订单数据(订单号、订单日期、金额)、客户数据(客户ID、姓名、联系方式)、销售数据(销售额、销售量)。
客户主题域:客户基本信息(姓名、地址、联系方式)、客户行为数据(购买历史、浏览记录)、客户反馈(满意度调查结果)。
避免重复和遗漏
方法: 检查主题域之间的数据是否重复,确保每个数据项只属于一个主题域;同时检查是否有遗漏的数据,确保所有重要数据都被涵盖。
举例: 客户的基本信息和购买行为数据都属于"客户"主题域,而不是分散到其他主题域。

划分注意事项
以业务为导向: 主题域的划分要紧密结合企业的实际业务需求,而不是单纯从技术角度出发。
保持灵活性: 随着业务的发展,主题域可能需要调整,因此要保持一定的灵活性。
简洁明了: 主题域划分不宜过于复杂,每个主题域的内容要清晰、易于理解。
数据一致性: 同一个主题域内的数据应该在定义、格式和统计口径上保持一致。
主题域的划分是一个需要不断迭代的过程,不能期望一次完成所有主题域的划分,可根据企业当前的业务需求先划分出明确定义的主题域,后续随着业务的发展逐步扩展和细化。
数据域设计参考
数据域的设计是一个至关重要的环节,它直接影响到数据模型的构建和数据资产的管理为了帮助您更好地理解和应用这些模型,我们整理了一份行业主题域划分的参考。在接下来的数仓深度探索系列文章中,我们将详细介绍每个模型的特点、适用场景以及如何根据您的业务需求进行定制和优化。通过这些专题分析,我们希望为您提供深入的见解和实用的指导,助力您在数据域设计上做出更明智的决策。

构建 指标 体系
构建数据仓库中的指标体系是一个将业务目标转化为可量化、可分析、可监控的数据度量 的核心过程。它是数据仓库价值落地的关键环节,支撑决策、驱动优化、评估绩效。成功的指标体系能够将数据转化为洞察力,驱动业务增长和效率提升。持续的沟通、严格的定义、一致性的维护、质量的保障和灵活的迭代是构建有效指标体系的关键。
以下是构建数据仓库指标体系的详细步骤和关键考虑因素:

核心目标与原则
业务驱动: 指标必须紧密围绕业务目标(如提升收入、降低成本、改善用户体验、提高运营效率等)。脱离业务的指标毫无意义。
可衡量性: 指标必须是可量化的、客观的。避免模糊的描述。
清晰定义: 每个指标必须有精确、无歧义的定义,包括:
- 指标名称: 业务和技术名称。
- 业务含义:它代表什么业务价值?解决什么问题?
- 计算公式:明确的数学计算逻辑(分子/分母是什么?)。
- 数据来源:来自哪个业务系统、哪个表、哪个字段?位于数据仓库的哪一层(ODS, DWD, DWS, ADS)?
- 统计口径:
- 时间范围:日、周、月、年?滚动周期?
- 统计粒度:按什么维度统计(用户、商品、区域、渠道等)?
- 去重规则:是否需要去重?按什么字段去重?
- 过滤条件:是否排除某些特定情况(如测试数据、无效订单)?
- 计量单位:元、个、次、% 等。
一致性: 相同的指标在不同报表、不同业务线中的定义和计算逻辑必须一致,确保"单一事实来源"。
可分解性: 关键指标应能分解成更细粒度的子指标或从不同维度(如时间、区域、产品线)进行分析。
可行动性: 指标应能指导业务决策。看到指标变化后,应能知道采取什么行动。
可管理性: 指标体系需要维护、更新和监控,避免指标泛滥和混乱。

指标体系 构建流程
构建数据指标体系是业务与技术深度结合的关键任务。它始于对业务目标的洞察,接着梳理业务流程,定义原子指标、派生指标及复合指标,明确维度和粒度,再通过文章后续提到的数据建模、ETL开发和元数据管理等环节,最终落地为可信、可用的数据产品,为决策提供有力支持。
理解业务战略与目标:
- 与业务部门(市场、销售、产品、运营、财务、管理层等)深入沟通。
- 明确公司级、部门级、团队级的关键目标(OKRs, KPIs)。
- 识别核心业务领域(如用户增长、用户活跃、交易转化、客户服务、供应链效率等)。
识别关键业务问题与决策需求:
- 业务部门通常关心什么问题?(例如:为什么这个月用户流失率升高了?哪个渠道的获客成本最低效果最好?)
- 他们需要哪些信息来做决策?
梳理业务过程:
- 围绕核心业务领域,梳理关键的业务流程(如用户注册、浏览商品、下单、支付、发货、评价、客服咨询)。
- 识别每个业务过程中的关键实体(用户、商品、订单、支付单、物流单、客服工单)和关键事件(注册、点击、加购、下单、付款、发货、签收、评价)。
定义原子指标: 基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名称,如用户数(注册用户数、活跃用户数)、订单数、合同金额、材料单价等,它们是派生指标的基石。
定义派生指标: 派生指标是基于原子指标(按照业务统计范围圈定的基础指标)通过加、减、乘、除等运算生成的指标,能够更精准地反映业务效果或效率。派生指标分为两类:事务型指标和存量型指标。
- 事务型指标:对业务过程进行衡量的指标。如企业总产值、营业收入、管理费用等。
- 存量型指标:基于业务实体某些状态统计的指标。如员工总数、开累产值等。对应的时间周期一般为"历史截止当前某个时间"。
定义复合指标: 是在事务型指标 和存量型指标 的基础上,通过进一步计算形成的指标,主要包括比率型 (如转化率、收益率)、比例型 (如市场份额、客户满意度)和统计均值型 (如平均响应时间、平均销售额)等,用于更全面地衡量业务表现。
定义维度 : 是确定分析指标的角度和切面,作为描述性属性用于分组、切片和分析。关键设计包括:
- 一致性维度:确保同一维度(如"日期""地区""产品")在不同业务过程或数据集市中的定义和值完全一致,这是Kimball维度建模的核心原则之一。
- 层次结构:维度通常有自然层次,例如日期(年->季度->月->日)、地区(国家->省/州->城市)。
- 缓慢变化维度策略:处理维度属性随时间变化的策略,如类型1覆盖、类型2新增行、类型3新增列。
常见维度包括时间 (年、季、月、周、日、小时)、地理 (国家、省、市、区县)、产品 (品类、品牌、SPU、SKU)、用户 (新老用户、会员等级、注册渠道、用户标签)、渠道 (自然流量、付费搜索、社交媒体、直接访问、应用市场)、设备 (PC、手机、平板;iOS、Android;品牌、型号)等。
确定指标粒度 : 是定义指标数据行的最小描述级别,由维度的组合决定。例如:
- 按"天"和"商品SKU"粒度的"销售数量",即每天每个SKU的销售件数。
- 按"月"和"用户省份"粒度的"新增用户数",即每月每个省的新增用户数量。
粒度的选择直接影响数据量、查询性能和灵活性。通常建议在DWD/DWS层存储最细粒度(原子粒度)数据,在ADS层按需进行汇总。
关键挑战与最佳实践

挑战1:指标爆炸式增长与管理混乱
实践: 严格控制指标入口,建立指标评审委员会;优先保证核心指标的质量;建立完善的下线和归档机制;利用元数据管理工具。
挑战2:指标口径不一致
实践: 强调"单一事实来源";严格定义并文档化;使用一致性维度;在数据仓库底层(DWD/DWS)进行统一计算,避免在BI层或报表层各自为战。
挑战3:性能问题(复杂计算、大表关联)
实践: 合理分层(DWD存明细,DWS/ADS做汇总);利用物化视图/聚合表;优化SQL;选择合适的计算引擎(如MPP数据库,Spark);考虑预计算常用派生指标。

挑战4:业务需求理解偏差
实践: 数据团队必须深入业务;建立数据产品经理角色;采用原型法快速验证指标需求。
挑战5:数据质量问题影响指标可信度
实践: 在ETL中加强数据清洗和验证;建立端到端的数据质量监控体系;透明化数据问题并及时沟通。
最佳实践: 自顶向下(业务目标驱动)与自底向上(数据基础支撑)相结合。
数据指标模型参考
基于上述数据指标构建方法,我们整理出了统一的数据指标模型,并对每个指标进行了规范化定义(后续将在"指标体系深度探索"专题中详细介绍)。模型如下图所示,供各位学习参考。

模型名词解释
业务部门: 指标所属的业务归口部门。业务部门可按层级展开,但层级不宜过多,建议不超过3层,以确保清晰度。
业务主题: 指标所属的业务分类或服务的业务岗位职能。
修饰词: 用于限定统计维度以外的指标业务场景,是对指标的进一步抽象。例如,产值指标可能有"对内""对外"等不同口径,这种分类超出原始业务数据定义范围,因此通过修饰词补充说明。
修饰类型: 对修饰词进行的抽象分类。
业务过程: 指业务活动事件,如人力资源中的招聘、入职、离职等。业务过程是原子级的,不可再拆分。
维度: 维度是度量的环境,用于反映业务的一类属性。这类属性的集合构成一个维度,也可称为实体对象。常见的维度包括地理维度、时间维度等。
维度属性: 属于某一维度的具体属性。例如,年、季度、月等都属于时间维度的属性。
原子指标: 与度量含义相同,是基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标。
为了让大家更好地理解指标模型的使用情况,以下以人力资源指标需求中的"员工总量"和"员工增长率"为例,对模型进行说明

根据上述模型,我们提炼出以下指标定义公式:
原子指标:基于业务过程的客观事实数据。
派生指标:时间周期 + 修饰词(1个或多个)+ 原子指标。
复合指标:时间周期 + 多个派生指标。
构建总线矩阵
数据仓库中的数据总线(Data Bus Architecture)是维度建模之父Ralph Kimball提出的核心架构理念,旨在解决企业级数据仓库(EDW)中数据集成、一致性和可扩展性的关键问题。它不是指物理上的数据传输通道,而是一种逻辑架构设计原则和标准化框架。

数据总线架构 核心思想
数据总线架构的核心思想是:通过一组共享的、统一的、一致的维度(称为"一致性维度")来集成来自不同业务过程或数据源的事实数据。 这就像计算机主板上的总线(Bus)连接CPU、内存、硬盘等不同部件一样,数据总线用"一致性维度"连接了分散的业务过程数据。
核心组件:一致性维度(Conformed Dimensions)
一致性维度是指在整个企业数据仓库中,具有完全相同含义、结构和内容的维度表。无论用于哪个业务过程,其定义(包括属性、值域、键值)都保持一致。一致性维度通过统一主键(代理键)、统一属性定义、统一粒度和统一历史处理策略(SCD策略),确保数据的一致性和准确性。常见的一致性维度包括日期/时间、客户、产品、地理位置、员工和渠道等维度。其重要性在于支持跨主题分析、保证单一事实来源、简化ETL和模型维护,并提高查询性能。
核心设计工具:总线矩阵(Bus Matrix)
总线矩阵是设计和沟通数据总线架构的核心工具,以二维表格形式呈现,用于梳理数据仓库中各主题域间的关系及关键数据,确保数据一致性和完整性,便于后续整合与分析。其中,行代表企业核心业务过程,如订单处理、支付处理、库存管理等;列代表公共一致性维度,如日期、客户、产品等;单元格通过"X"标记表示业务过程与维度的相关性,总线矩阵示例片段如图。

总线矩阵的作用

通过总线矩阵,企业可以高效地规划和管理数据仓库的架构,确保数据的一致性和完整性,同时提升团队协作效率,总线矩阵的作用主要体现在以下几个方面:
识别一致性维度: 明确哪些维度需要在全企业范围内保持一致(即跨越多个业务过程的列)。
指导增量开发: 数据仓库可以按业务过程一行一行地构建(一个数据集市对应矩阵中的一行)。只要每个数据集市都严格使用定义好的一致性维度,最终就能无缝集成成企业级数据仓库,有效解决"自底向上"建设EDW的集成难题。
促进沟通: 作为业务人员和技术人员讨论数据范围和集成需求的通用语言。业务人员能理解业务过程,技术人员能理解维度的技术含义。
避免冗余和冲突: 清晰展示哪些维度是共享的,避免不同团队重复建设或建设不一致的维度。

确保数据一致性: 通过矩阵,可以清晰地看到每个数据实体在不同主题域中的使用情况。
支持数据整合: 明确数据实体之间的关系,便于后续的数据整合和分析。
简化数据管理: 帮助数据仓库团队更好地管理和维护数据模型。
数据总线架构的优势
企业级集成: 从根本上解决了"数据孤岛"问题,实现跨部门、跨业务的数据整合分析。
一致性保障: "单一事实来源"的基石,确保分析结果可信。
可扩展性: 支持敏捷迭代,可以按业务过程逐个构建数据集市,最终自然形成EDW。
降低复杂度: 清晰的架构蓝图(总线矩阵)指导开发,降低整体项目风险。
提高重用性: 一致性维度被多个事实表重用,减少重复开发和存储。
改善查询性能: 优化器更容易处理基于一致性维度的星型连接。
构建总线 架构 的步骤

数据总线架构的工作原理可以简单概括为以下几步,
定义一致性维度: 通过总线矩阵分析,确定全企业范围内需保持一致的核心维度,明确其定义、属性和SCD策略。
构建一致性维度表: 集中管理维度数据,从源系统抽取、清洗、整合数据,生成统一维度记录并分配代理键,处理数据变化。
按业务过程构建事实表: 每个业务过程独立构建事实表,记录关键度量值,并确保事实表外键引用一致性维度表的代理键。
集成与查询: 通过共享的一致性维度代理键,BI工具或SQL查询可以跨业务过程进行高效分析,比如按产品、日期、渠道等维度关联不同事实表。
挑战与注意事项

维度管理复杂度: 集中管理和维护企业级一致性维度(尤其处理SCD)需要专门的流程和工具,挑战较大。
跨部门协调: 定义和维护一致性维度需要不同业务部门的高度协作和妥协,可能涉及政治因素。
初始投入: 建立维度管理基础设施和流程需要前期投入。

"最低公共标准"风险: 为了达成一致,有时维度属性可能被简化到只能满足最基本的需求,无法满足某些部门的特殊深度分析需求(可能需要部门特定的"私有"属性扩展,需谨慎设计)。
实时性挑战: 严格的一致性维度管理可能对近实时/实时数仓场景带来延迟挑战。
数据仓库中的数据总线架构是Kimball维度建模方法论的核心集成框架。它通过强制使用全企业范围内严格定义和管理的一致性维度,将独立开发的、面向业务过程的星型模式(数据集市)无缝集成成一个真正的、一致的企业级数据仓库(EDW)。总线矩阵是设计和沟通这一架构的关键工具。
虽然实施一致性维度管理存在挑战,但其带来的数据一致性、集成性、可扩展性和长期可维护性的巨大优势,使其成为构建可持续、可信赖的企业级分析平台不可或缺的架构原则。它是解决"烟囱式"数据仓库建设弊端的有效方案。
数据模型设计
数据仓库架构设计包含三部分内容:逻辑架构设计、技术组件选型以及数据模型设计。关于逻辑架构设计和技术组件选型,大家可以参考我们之前的文章《数据仓库深度探索系列:架构选择与体系构建》。今天,我们重点聚焦数据模型设计,并将在后续文章中进行深度探索。
数据模型 的战略 重要性

数据资产化的基石
- 可复用性: 良好的数据模型能够显著提高数据的可复用性,减少数据准备的时间和成本,从而降低分析成本(80%分析成本在于数据准备)。
- 价值密度: 规范化的数据模型能够提升数据的可信度和质量,增加数据资产的价值密度。
系统效能的决定性因素

一个设计良好的数据模型是提高数据处理和查询性能的关键,对系统的整体效能有着决定性的影响。
业务灵活性的关键支撑
- 好模型支持新业务上线提速3倍。
- 坏模型导致需求变更成本增加5倍。
合规审计的核心保障
- 法规遵从 :数据模型必须能够满足如GDPR、CCPA等数据保护法规的要求,确保数据的合规性。
- 历史追溯: 特别是在金融行业,数据模型需要支持长期的历史数据追溯,以满足监管和审计的需求。

数据建模方法对比
数据建模是数据仓库建设中的关键步骤,它定义了数据的结构和组织方式,直接影响数据的存储效率和分析性能。不同的建模方法适用于不同的业务需求和技术场景,选择合适的方法对于实现高效的数据管理和分析至关重要。
为了更直观地理解这些建模方法的特点和差异,我们准备了一张对比图,详细列出了每种建模方法的核心思想、优势、适用场景、典型应用领域以及潜在的缺点。

通过这张对比图,我们能够迅速捕捉到各种数据建模方法的核心优势及其适用的业务场景,为数据仓库的设计和实施工作提供明确指导。

建模方法选型建议
为了帮助您根据业务需求和技术条件选择最合适的数据建模方法,我们整理了一个数据模型选择框架。该框架通过分析业务目标、是否需要高扩展性、高性能查询以及精细历史追踪等关键因素,为您推荐Data Vault、范式模型、维度模型、宽表模型或Anchor模型等不同的建模策略。希望这个框架能为您提供有价值的指导。

Inmon范式建模: 注重数据的一致性和规范性,非常适合需要处理大量复杂数据集成的企业级数据仓库,追求企业级集成和高度一致性,愿意长期投入 ,范式建模 是经典方法。
Kimball维度建模: 以其卓越的查询性能和对业务的友好性而著称,是业务分析和构建敏捷型数据仓库的理想选择,需要快速交付用户友好的分析 ,维度建模通常是首选 。
DataVault建模: 以其灵活性和对数据历史的良好支持而突出,适合需要快速整合多源数据的复杂业务环境,构建企业级集成中心,源系统复杂多变,需要强审计 , Data Vault 是强有力的竞争者 。
Anchor建模: 提供极高的灵活性和高效的数据历史存储能力,是应对超高变化率的超大规模系统的不二之选,业务规则极端复杂多变,模型稳定性压倒一切,不惜代价 , 考虑 Anchor,但需谨慎评估成本和复杂性。
实际项目中,也常看到混合方法,例如:
- 使用Data Vault构建核心集成层,在其上构建Kimball数据集市作为信息交付层。
- 在Kimball总线架构中,某些复杂维度采用雪花模式或微型维度。
理解每种数据建模方法的核心理念、优势与局限以及它们适用的场景对于选择最适合项目需求的模型至关重要。同时,建模方法与数据仓库架构的选择密切相关,它们需要相互配合以实现最佳的数据处理和分析效果。

数据模型构建步骤
下图汇总了四种关键的数据建模方法及其步骤:维度建模侧重于业务流程选择与粒度声明,以构建事实和维度表;第三范式(3NF)建模遵循需求分析至物理模型设计的流程,注重数据规范化;锚建模通过识别业务实体与关系来创建规范化模型;而Data Vault建模则从定义核心实体(Hubs)出发,逐步构建出强调灵活性和历史追踪能力的物理模型。

数据治理
数据治理是贯穿数据仓库整个生命周期的核心环节,它关乎数据资产能否得到高效管理和价值最大化。这个过程覆盖了从数据收集、存储到管理,再到如何利用数据来驱动业务决策,我们将分三个部分来介绍数据治理的基本概念。

理论框架:DAMA治理之轮
DAMA车轮图是国际数据管理协会(DAMA International)提出的数据管理知识体系(DMBOK)的图形化表示,它以车轮(同心圆)的形式展示了数据管理的核心领域及其相互关系。以下是对DAMA车轮图的解释:

中心位置: 数据治理(Data Governance)是DAMA车轮图的核心,贯穿所有领域。它定义了策略、标准、角色和职责,确保数据管理的规范性和合规性。
元数据管理(Metadata Management) 管理"关于数据的数据",描述数据的定义、来源、结构、用途等,支持数据发现、血缘分析和治理。
主数据管理(Master Data Management) 统一管理企业核心业务实体(如客户、产品、供应商),确保关键数据的一致性、唯一性和准确性。
数据存储与操作(Data Storage & Operations) 涵盖数据库设计、存储架构、数据操作(增删改查)及性能优化,确保数据的高效存取和可用性。
数据质量(Data Quality) 通过规则定义、清洗、监控等手段,提升数据的准确性、完整性、一致性和及时性。
数据仓库(Data Warehouse) 整合多源数据,构建面向分析的结构化存储(如星型/雪花模型),支持商业智能(BI)和决策。
数据优化(Data Optimization) 通过索引、分区、压缩等技术提升数据存储和查询效率,或通过生命周期管理优化资源分配。
数据安全(Data Security) 保护数据的机密性、完整性和可用性,包括权限控制、加密、脱敏、审计等。
数据集成(Data Integration) 整合异构数据源(ETL/ELT、API、消息队列),实现数据流动和共享,消除信息孤岛。
数据架构(Data Architecture) 设计企业级数据框架,定义数据流、模型、存储方案,支撑业务需求与技术实现。
数据建模(Data Modeling) 创建逻辑或物理数据模型(如ER图、维度模型),规范数据结构,衔接业务需求与数据库实现。
文件与内容管理(Document & Content Management) 管理非结构化数据(文档、图像、视频等),包括存储、检索、版本控制和权限管理。

实践路径:五步治理流水线
在实践中,数据治理可以归纳为五个核心步骤:

理: 整理业务和数据资源,建立数据资源目录。
采: 采集并清洗数据,确保数据质量。
存: 采用分层存储策略,优化数据仓库性能。
管: 实施持续的监控和管理,确保数据治理成效。
用: 将数据转化为服务,支持业务决策和创新。
数据治理类似于维护水库,包括清理水源(理/采)、妥善存储(存/管),以及确保数据能够为业务带来价值(用)。这要求组织不断评估和优化其数据管理措施,以确保数据资产的质量和价值,支持决策制定,提升运营效率,降低风险,并确保合规。数据治理不仅是技术活动,它还是组织文化的重要组成部分,需要全员的共同参与和承诺。

价值体现
短期: 减少因数据错误导致的决策失误,例如降低财报误差。
长期: 推动数据资产化,通过提升数据使用率来促进业务创新。
数据治理是一个长期且复杂的过程,我们会在后续的专题中进行更深入的探讨。
运维与优化
在数据仓库建设的全流程中,运维与优化是至关重要的一环。它涵盖了任务调度、性能监控、数据备份与恢复以及持续优化等方面。

任务调度: 通过合理安排ETL任务的执行时间,保证数据能够及时更新,以支持业务决策的时效性。

性能监控: 对数据仓库的性能进行持续监控,包括查询响应时间和数据加载速度等关键指标,确保及时发现并解决性能问题。

数据备份与恢复: 制定并执行数据备份策略,定期备份关键数据,确保在发生故障时能够迅速恢复,保障数据的安全性和业务的连续性。

持续优化: 随着业务的发展和数据量的增长,不断对数据仓库的架构、模型和性能进行评估和优化,以适应新的业务需求和技术挑战。
这一环节确保了数据仓库的稳定性、可靠性和高效性,是实现数据仓库长期价值的关键。
持续改进与创新

在数仓建设中,持续改进与创新至关重要。通过定期收集业务用户和 IT 人员的反馈,了解数据仓库的使用情况和问题,我们依据反馈和业务需求,持续优化功能与性能。
同时,还应关注行业最新技术趋势,引入新技术,提升数据仓库竞争力,助力企业高效发展。
数据仓库的建设是一项复杂且系统的工程,涵盖从前期调研到后期维护的多个环节。遵循大数据实施方法论,构建统一、规范、可共享的全域数据体系,企业能够打造完善的信息化解决方案,全面支撑业务发展,规范流程、提高效率、减少重复劳动,并保障数据准确性。这不仅提升项目实施效率,更为企业长期发展筑牢数据根基。鉴于数仓建设的复杂性,我们诚邀您加入,一起探索数据仓库系列,开启数据驱动的智慧之旅。