首页 > 编程知识 正文

数据仓库建设的几个阶段,数据仓库设计步骤概述

时间:2023-05-05 23:05:26 阅读:17410 作者:568

大数据数仓概念学术上:数据仓库,英文名简称Data Warehouse、DW或jkdjc,是为企业所有层次决策过程提供所有类型数据支持的战略集合。 指导需要业务智能的企业改进、监控时间、成本、质量和控制业务流程。

数据仓库(数据仓库)是面向主题(面向主题)、集成(Integrate )、相对稳定(Non-Volatile )、历史变化(Time Variant )

技术上,不可更新的、反映历史变化的、面向主题的、大容量的数据’仓库’。

数仓基础概念描述业务板块:一种维度高于数据域的业务划分方法,特别适用于庞大的业务系统。

维:维建模是由Ralph Kimball提出的。 维度模型主张从分析决策需求出发构建模型,为分析需求服务。 维度是测量的环境,是观察业务的观点,用于反映业务的属性。 属性集合构成维度,也称为实体对象。 例如,分析交易过程时,可以在买方、卖方、商品、时间等维度描述交易发生的环境。

属性(维属性) :维包含表示维的行,称为维属性。 维属性是查询约束、分组和报表标签生成的基本来源,是数据易用性的关键。

度量:在维建模中,度量称为事实,并将环境描述为维。 维度是分析事实所需的多种环境。 度量通常是数值类型的数据,作为数值逻辑表中的数值。

指标:指标分为原子指标和衍生指标。 原子指标是基于某一业务事件行为的度量,是业务定义中不可分割的指标,是具有明确业务意义的名词,体现明确的业务统计口径和计算逻辑,如支付金额。

原子=业务流程度量

派生指标=时间周期修饰语原子指标,派生指标可以理解为原子指标业务统计范围的圈定。

业务限定:统计业务范围,筛选符合业务规则的记录

统计周期:统计的时间范围。 例如,最近一天、最近的30天等

统计粒度:统计分析的对象或观点。 定义数据需要聚合的程度,可以理解为聚合运算时的分组条件(SQL中的group by等对象)。 粒度是指示统计范围的维组合。 例如,如果某个指标是某个卖方在某个省的交易额,那么粒度就是卖方、地区这两个维度的组合。 如果需要汇总所有表的数据,则粒度为所有表。 指定粒度时,必须充分考虑业务和维之间的关系。 统计粒度常用词作为派生指标的修饰语存在。

数仓设计流程的初步模型设计1 .系统边界关系模型设计

系统边界关系模型设计的成果是在现有数据库的基础上建立了比较牢固的概念模型由于数据仓库是对现有数据库系统中的数据进行集成和重组的数据集合,所以数据仓库的概念模型设计首先要分析和理解现有的数据库系统,分析现有的数据库系统中“有什么”、“如何另一方面,通过现有数据库的设计文档和数据字典中的数据库关系模型,可以全面、清晰地了解企业现有数据库的内容。 另一方面,数据仓库概念模型是为企业全局构建的,为整合来自每个面向APP应用程序的数据库的数据提供了统一的概念视图。

数据仓库是一个用于决策分析的数据库,从数据仓库设计之初就无法获得详细而明确的需求,但一些基本的方向需求摆在设计者面前。

要做出的决策类型是什么? 决策者感兴趣的是什么? 这些问题需要什么样的信息? 为了获得这些信息,需要包含现有数据库系统的哪些部分的数据? 这样,我们就可以划定目前的大致系统边界,集中精力开发最需要的部分。 因此,在某种意义上,定义系统边界的工作可以看作是对数据仓库系统设计的需求分析,因为它以系统边界的定义形式反映了决策者的数据分析需求。

2 .事件流生成业务模型设计

根据事件收集,对事件发生业务进行初步业务分析,满足需求者决定提交数据的数量。

例如,数据分析师需要知道a公司电子商务中烹饪器具类的成交金额。 知道了这个需求后,就需要分析根据什么(维度)总结什么、总结什么)进行测量,以及总结的范围是多少(粒度)。 例如,类别为维,金额为度量,范围为所有表。 另外,还需要考虑明细数据和汇总数据应该如何设计、是否是公共层的报告、是否需要在明细表中沉淀数据等要素。

业务流程可以是单个业务事件,例如交易支付、退款等; 也可以是某个事件的状态,例如当前的账户馀额等; 也是由一系列相关业务事件组成的业务流程。 具体取决于您是在分析特定事件的过去发生情况、当前状态还是事件的流效率。

选择粒度:业务流程的事件分析需要提前确定所有分析需要细分的程度和范围,以确定选择的粒度。 在标识维表并选择粒度后,必须根据该粒度设计维表(如维属性),并在分析时对其进行分组和过滤。 最后,需要确定要衡量的指标。

3 .划分数据域

数据仓库是面向主题(数据整合、分类、分析利用的抽象)的应用。 数据域是业务流程或维的抽象集合,用于业务分析。 为了保障整个体系的生命力,数据域需要抽象提取,长期保持更新。 通过划分数据域,您可以将新业务包含在现有数据域中,或扩展新数据域,同时覆盖当前的所有业务需求。 数据域的分割工作可以在业务调查后进行,是必要的

分析各个业务模块中有哪些业务活动。
明确每个数据域下有哪些业务过程后,即可构建总线矩阵。您需要明确业务过程与哪些维度相关,并定义每个数据域下的业务过程和维度。如下所示是某教育公司的总线矩阵。
4. 明确统计指标
原子指标是明确的统计口径、计算逻辑:原子指标=业务过程+度量。
派生指标即常见的统计指标:派生指标=时间周期+修饰词+原子指标。
原子指标的创建需要在业务过程定义后方才可创建。派生指标的创建一般需要在了解具体报表需求之后展开,在新建派生指标前必须新建好原子指标。注意事项如下:

原子指标、修饰类型及修饰词,直接归属在业务过程下,其中修饰词继承修饰类型的数据域。派生指标可以选择多个修饰词,由具体的派生指标语义决定。例如,支付金额为原子指标,则客单价(支付金额除以买家数)为派生指标。派生指标唯一归属一个原子指标,继承原子指标的数据域,与修饰词的数据域无关。 数仓分层设计

ODS层存放您从业务系统获取的最原始的数据,是其他上层数据的源数据。业务数据系统中的数据通常为非常细节的数据,经过长时间累积,且访问频率很高,是面向应用的数据。或者存放实时的内容。具体内容后续分析。

公共维度层(DIM)基于维度建模理念,建立整个企业的一致性维度。公共维度层主要由维度表(维表)构成。维度是逻辑概念,是衡量和观察业务的角度。维表是根据维度及其属性物理化在大数据平台上构建的表,采用宽表设计的原则。因此,构建公共维度层(DIM)首先需要定义维度。

公共汇总粒度事实层(DWS)和明细粒度事实层(DWD)的事实表作为数据仓库维度建模的核心,需紧绕业务过程来设计。通过获取描述业务过程的度量来表达业务过程,包括引用的维度和与业务过程有关的度量。度量通常为数值型数据,作为事实逻辑表的事实。事实属性则作为事实逻辑表的描述信息,关联维度则将事实属性中的外键字段关联对应维度。

报表层 或者再细粒度分层需要根据实际业务进行参考

逻辑模型设计

在这一步里进行的工作主要有:

分析主题域,确定当前要装载的主题;确定粒度层次划分;确定数据分割策略;关系模式定义;记录系统定义

逻辑模型设计的成果是,对每个当前要装载的主题的逻辑实现进行定义,并将相关内容记录在数据仓库的元数据中,包括:

适当的粒度划分;合理的数据分割策略;适当的表划分;定义合适的数据来源等。分析主题域

在初步模型设计中,我们确定了几个基本的主题域,但是,数据仓库的设计方法是一个逐步求精的过程,在进行设计时,一般是一次一个主题或一次若干个主题地逐 步完成的。所以,我们必须对概念模型设计步骤中确定的几个基本主题域进行分析,并选择首先要实施的主题域。选择第一个主题域所要考虑的是它要足够大,以便 使得该主题域能建设成为一个可应用的系统;它还要足够小,以便于开发和较快地实施。如果所选择的主题域很大并且很复杂,我们甚至可以针对它的一个有意义的 子集来进行开发。在每一次的反馈过程中,都要进行主题域的分析。

粒度层次划分

数据仓库逻辑设计中要解决的一个重要问题是决定数据仓库的粒度划分层次,粒度层次划分适当与否直接影响到数据仓库中的数据量和所适合的查询类型。确定数据 仓库的粒度划分,可以使用在粒度划分一节中介绍的方法,通过估算数据行数和所需的DASD数,来确定是采用单一粒度还是多重粒度,以及粒度划分的层次。

确定数据分割策略

在这一步里,要选择适当的数据分割的标准,一般要考虑以下几方面因素:数据量(而非记录行数)、数据分析处理的实际情况、简单易行以及粒度划分策略等。数 据量的大小是决定是否进行数据分割和如何分割的主要因素;数据分析处理的要求是选择数据分割标准的一个主要依据,因为数据分割是跟数据分析处理的对象紧密 联系的;我们还要考虑到所选择的数据分割标准应是自然的、易于实施的:同时也要考虑数据分割的标准与粒度划分层次是适应的。

关系模式定义

数据仓库的每个主题都是由多个表来实现的,这些表之间依靠主题的公共码键联系在一起,形成一个完整的主题。在概念模型设计时,我们就确定了数据仓库的基本 主题,并对每个主题的公共码键、基本内容等做了描述在这一步里,我们将要对选定的当前实施的主题进行模式划分,形成多个表,并确定各个表的关系模式。

物理模型设计

这一步所做的工作是确定数据的存储结构,确定索引策略,确定数据存放位置,确定存储分配。
确定数据仓库实现的物理模型,要求设计人员必须做到以下几方面:

对于系统性数据要全面了解所选用的数据库管理系统,特别是存储结构和存取方法。了解数据环境、数据的使用频度、使用方式、数据规模以及响应时间要求等,这些是对时间和空间效率进行平衡和优化的重要依据。了解外部存储设备的特性,如分块原则,块大小的规定,设备的I/O特性等。

2.对于事实业务型要全面了解数据埋点、业务字段、来源粒度以及存储规则、块大小、设备IO特性等

确定数据的存储结构

一个数据库管理系统往往都提供多种存储结构供设计人员选用,不同的存储结构有不同的实现方式,各有各的适用范围和优缺点,设计人员在选择合适的存储结构时应该权衡三个方面的主要因素:存取时间、存储空间利用率和维护代价。

确定索引策略

数据仓库的数据量很大,因而需要对数据的存取路径进行仔细的设计和选择。由于数据仓库的数据都是不常更新的,因而可以设计多种多样的索引结构来提高数据存取效率。
在数据仓库中,设计人员可以考虑对各个数据存储建立专用的、复杂的索引,以获得最高的存取效率,因为在数据仓库中的数据是不常更新的,也就是说每个数据存储是稳定的,因而虽然建立专用的、复杂的索引有一定的代价,但一旦建立就几乎不需维护索引的代价。

确定数据存放位置

我们说过,同一个主题的数据并不要求存放在相同的介质上。在物理设计时,我们常常要按数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类 的数据分别存储在不同的存储设备中。重要程度高、经常存取并对响应时间要求高的数据就存放在高速存储设备上,如硬盘;存取频率低或对存取响应时间要求低的 数据则可以放在低速存储设备上,如磁盘或磁带。
数据存放位置的确定还要考虑到其它一些方法,如:决定是否进行合并表;是否对一些经常性的应用建立数据序列;对常用的、不常修改的表或属性是否冗余存储。如果采用了这些技术,就要记入元数据。

确定存储分配

许多数据库管理系统提供了一些存储分配的参数供设计者进行物理优化处理,如:块的尺寸、缓冲区的大小和个数等等,它们都要在物理设计时确定。这同创建数据库系统时的考虑是一样的。

数据仓库生成

在这个环节最重要是数据装载
在这一步里所进行的就是运行接口程序,将数据装入到数据仓库中。主要的工作是:

确定数据装入的次序;清除无效或错误数据;数据“老化” ;数据粒度管理;数据刷新等。

最初只使用一部分数据来生成第一个主题域,使得设计人员能够轻易且迅速地对已做工作进行调整,而且能够尽早地提交到下一步骤,即数据仓库的使用和维护。这 样既可以在经济上最快地得到回报,又能够通过最终用户的使用、尽早发现一些问题并提出新的需求,然后反馈给设计人员,设计人员继续对系统改进、扩展。

数仓维护

维护数据仓库的工作主要是管理日常数据装入的工作,包括刷新数据仓库的当前详细数据,将过时的数据转化成历史数据.清除不再使用的数据,管理元数据,等等;另外,如何利用接口定期从操作型环境向数据仓库追加数据,确定数据仓库的数据刷新频率等等。

老姜总结

数仓搭建流程基本分为以上几个过程,细节都是靠实战中不断完善与复盘,作为一名数仓工程师,你需要具备业务理解、良好沟通、项目管理、技术资源整合、文档编写多方位能力。加油!
相关一些讲解可以关注bili账号:老姜的数据江湖
公众微信号:老姜的数据江湖

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。