大数据数仓建设流程方案,数仓设计流程,适用于实际工作场景

大数据数仓概念

学术上:数据仓库,英文名称为Data Warehouse,可简写为DW或DWH,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的( Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理、运营决策。
技术上:不可更新的,反映历史变化的,面向主题的,大容量的数据’仓库’。

数仓基础概念讲解

  1. 业务板块:比数据域更高维度的业务划分方法,适用于特别庞大的业务系统。

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

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

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

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

    原子指标=业务过程+度量

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

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

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

  8. 统计粒度:统计分析的对象或视角,定义数据需要汇总的程度,可理解为聚合运算时的分组条件(类似于SQL中的group by的对象)。粒度是维度的一个组合,指明您的统计范围。例如某个指标是某个卖家在某个省份的成交额,则粒度就是卖家、地区这两个维度的组合。如果您需要统计全表的数据,则粒度为全表。在指定粒度时,您需要充分考虑到业务和维度的关系。统计粒度常用语作为派生指标的修饰词而存在。

数仓设计流程

初步模型设计

1.系统边界关系模型设计
系统边界关系模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合, 所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑 应当如何建立数据仓库系统的概念模型。一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整 而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。
数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前:

要做的决策类型有哪些?

决策者感兴趣的是什么问题?

这些问题需要什么样的信息?

要得到这些信息需要包含原有数据库系统的哪些部分的数据?

这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。

2.事件流产生业务模型设计
根据事件进行收集,对事件产生业务进行初步业务分析,满足需求者对数据提数进行决策。
举例:数据分析师需要了解A公司电商业务中厨具类目的成交金额。当获知这个需求后,您需要分析:根据什么(维度)汇总、汇总什么(度量)以及汇总的范围多大(粒度)。例如,类目是维度,金额是度量,范围是全表。此外,还需要思考明细数据和汇总数据应该如何设计、是否是公共层的报表、数据是否需要沉淀到汇总表中等因素。
业务过程可以是单个业务事件,例如交易的支付、退款等;也可以是某个事件的状态,例如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程。具体取决于您分析的是某些事件过去发生情况、当前状态,或是事件流转效率。
选择粒度:在业务过程事件分析中,您需要预判所有分析需要细分的程度和范围,从而决定选择的粒度。识别维表、选择好粒度之后,您需要基于此粒度设计维表,包括维度属性等,用于分析时进行分组和筛选。最后,您需要确定衡量的指标。
3. 划分数据域
数据仓库是面向主题(数据综合、归类并进行分析利用的抽象)的应用。数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。为保障整个体系的生命力,数据域需要抽象提炼,并长期维护更新。在划分数据域时,既能涵盖当前所有的业务需求,又能让新业务在进入时可以被包含进已有的数据域或扩展新的数据域。数据域的划分工作可以在业务调研之后进行,需要分析各个业务模块中有哪些业务活动。
明确每个数据域下有哪些业务过程后,即可构建总线矩阵。您需要明确业务过程与哪些维度相关,并定义每个数据域下的业务过程和维度。如下所示是某教育公司的总线矩阵。
在这里插入图片描述4. 明确统计指标
原子指标是明确的统计口径、计算逻辑:原子指标=业务过程+度量。
派生指标即常见的统计指标:派生指标=时间周期+修饰词+原子指标。
原子指标的创建需要在业务过程定义后方才可创建。派生指标的创建一般需要在了解具体报表需求之后展开,在新建派生指标前必须新建好原子指标。注意事项如下:

原子指标、修饰类型及修饰词,直接归属在业务过程下,其中修饰词继承修饰类型的数据域。

派生指标可以选择多个修饰词,由具体的派生指标语义决定。例如,支付金额为原子指标,则客单价(支付金额除以买家数)为派生指标。

派生指标唯一归属一个原子指标,继承原子指标的数据域,与修饰词的数据域无关。

数仓分层设计

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

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

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

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

逻辑模型设计

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

分析主题域,确定当前要装载的主题;

确定粒度层次划分;

确定数据分割策略;

关系模式定义;

记录系统定义

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

适当的粒度划分;

合理的数据分割策略;

适当的表划分;

定义合适的数据来源等。

分析主题域

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

粒度层次划分

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

确定数据分割策略

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

关系模式定义

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

物理模型设计

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

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

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

确定数据的存储结构

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

确定索引策略

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

确定数据存放位置

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

确定存储分配

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

数据仓库生成

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

确定数据装入的次序;

清除无效或错误数据;

数据“老化” ;

数据粒度管理;

数据刷新等。

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

数仓维护

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

老姜总结

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

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电商数仓的存储过程是指将数据从源系统提取、清洗、转换和加载到数仓中的一系列步骤和流程。下面是一个可能的电商数仓存储过程的示例: 1. 数据提取(Extract): - 确定需要收集的数据源,如交易系统、用户行为系统、CRM系统等。 - 设计数据提取方案,选择合适的提取工具或开发脚本。 - 从数据源中提取所需数据,可以使用增量提取或全量提取方式。 2. 数据清洗与转换(Transform): - 对提取的数据进行清洗,处理缺失值、异常值、重复值等。 - 进行数据转换,将数据转换成适合数仓存储和分析的格式。 - 可以进行数据标准化、格式化、合并等操作,以满足数仓的要求。 3. 数据加载(Load): - 设计数据加载方案,选择适合的加载工具或开发脚本。 - 创建数仓中的表结构和索引。 - 将清洗和转换后的数据加载到数仓中,可以使用批量加载或增量加载方式。 4. 数据校验与质量控制: - 进行数据校验,确保加载的数据准确性和完整性。 - 设计并执行数据质量控制规则,检查数据的一致性和合法性。 - 处理数据质量问题,如数据修正、重复数据处理等。 5. 数据更新与维护: - 根据业务需求,定期或实时更新数据至数仓。 - 管理数据的生命周期,包括数据清理、归档和删除等操作。 - 监控数据变化,及时更新数仓中的数据。 6. 安全性与权限管理: - 确保数仓中的数据安全,采取数据加密、权限控制等措施。 - 设计合适的用户权限管理策略,限制对敏感数据的访问权限。 上述存储过程仅为一个示例,实际的电商数仓存储过程可能因业务需求和技术环境的不同而有所差异。在开发过程中,需要根据具体情况进行调整和优化,并配合合适的工具和技术来实现存储过程的各个环节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值