申请演示
了解详情
400-600-9585
在线咨询 联系我们
官方微信扫一扫

小白入仓——数仓建设内容解析

2022/10/16

  数据已成为重要的生产要素,大数据产业作为以数据生成、采集、存储、加工、分析、服务为主的战略性新兴产业,是激活数据要素潜能的关键

  数据已成为重要的生产要素,大数据产业作为以数据生成、采集、存储、加工、分析、服务为主的战略性新兴产业,是激活数据要素潜能的关键支撑,是加快经济社会发展质量变革、效率变革、动力变革的重要引擎。世界各国纷纷出台大数据战略,开启大数据产业创新发展新赛道,聚力数据要素多重价值挖掘,抢占大数据产业发展制高点。本篇就大家关心的数仓建设内容进行介绍。

  一、企业数字化数据仓库建设

  1.数据仓库定义

  面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策的过程:

  ·面向主题:是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。

  ·集成的:是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致性全局信息。

  ·反映历史变化:数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

  2.数据仓库层次建设

  理论上,基于大数据的数据仓库建设有多种分层方法:有的体系中没有专门的数据湖,而把ODS归为数据仓库的一部分,有的体系中把数据集市也归为数据仓库的一部分,还有的体系中把维度数据单独算作一层。虽然分层方法不一,但是一般的数据仓库建设过程和思路在原理上都是类似的。在这里,我们将数据仓库分为数据引入层(ODS)、数据公共层(CDM)、数据应用层(ADS),其中数据公共层可以分为公共维度层(DIM)、明细粒度事实层(DWD)、公共汇总粒度事实层(DWS):

百胜

  3.数仓分层定义

  下面介绍一下数据仓库里各个层次的主要功能:

百胜

  4.数仓层级建设设计

  数据仓库分层建设,构建清晰的数据结构,每一层数据有它的作用域和职责,构建从源端到应用层的统一数据流,构建统一的数据口径,为数据血缘提供可追踪的元数据管理,数据仓层级建设图如下:

百胜

  二、数据建模

  1.维度模型

  维度模型是数据仓库领域 Ralph Kimball 大师倡导的,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。其中典型的代表就是使用星型模型,以及在一些特殊场景下使用的雪花模型。

百胜

其设计主要分为以下几个步骤:

  ·选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前账户的余额;还有就是一系列相关业务事件组成的业务流程,具体需要我们分析的是某些事件发生的情况,还是当前状态,或是事件流转效率。

  ·选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。

  ·识别维表。选择好粒度之后,就需要基于这个粒度来设计维表,包括维度属性,用于分析时进行分组和筛选。

  ·选择事实。确定分析需要衡量的指标。

  2.组织类型

  接下来就是针对维度建模按照数据的组织类型,可以划分为星型模型、雪花模型、星座模型。

  ·星型模型:星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布:

百胜

  ·雪花模型:在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面会差一些:

百胜

  ·星座模型:是对星型模型的扩展延伸,多张事实表共享维度表。实际上在数仓模型建设后期,大部分维度建模都是星座模型:

百胜

  3. 简单总结如下:

  ·星型模型和雪花模型主要区别就是对维度表的拆分。

  ·对于雪花模型,维度表的设计更加规范,一般符合3NF,有效降低数据冗余,维度表之间不会相互关联。

  ·星型模型,一般采用降维的操作,反规范化,不符合3NF,通过利用冗余来避免模型过于复杂,提高易用性和分析效率,效率相对较高。维度建模是面向分析场景而生,针对分析场景构建数仓模型;重点关注快速、灵活地解决分析需求,同时能够提供大规模数据的快速响应性能。针对性强,主要应用于数据仓库构建和OLAP引擎低层数据模型。

  ·主题域

百胜

  4.数仓主题

  主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象,每一个主题对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。

  面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。

  数仓主题域,主题域通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。主题域的确定必须由最终用户和数据仓库的设计人员共同完成。关于数仓主题域、主题、实体间关系,主题设计是对主题域进一步分解,细化的过程;主题域下面可以有多个主题,主题还可以划分成更多的子主题,而实体则是不可划分的最小单位。

  关于主题域的划分切入点:

  ·按照业务或业务过程划分:比如一个靠销售广告位置的门户网站主题域可能会有广告域、客户域等,而广告域可能就会有广告的库存、销售分析、内部投放分析等主题;

  ·根据需求方划分:比如需求方为财务部,就可以设定对应的财务主题域,而财务主题域里面可能就会有员工工资分析,投资回报比分析等主题;

  ·按照功能或应用划分:比如微信中的朋友圈数据域、群聊数据域等,而朋友圈数据域可能就会有用户动态信息主题、广告主题等;

  ·按照部门划分:比如可能会有运营域、技术域等,运营域中可能会有工资支出分析、活动宣传效果分析等主题。

  三、数据抽取ETL

  基于DolphinScheduler的分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系,并且能直观监控任务健康状态等问题。工作流建设,DolphinScheduler构建涵盖数据采集、同步、处理和治理为一体的数据集成平台。在实际生产中,当前该平台每天处理超过上千任务实例,调度系统承载业务量大,作业定义与调度策略复杂度高。在如此庞杂的任务调度中,DolphinScheduler 发挥了重要的作用,向上支撑应用侧的任务下发和管理,向下承接大数据底座的任务编排和调度。某客户的ETL数据抽取流图如下:

百胜

百胜

  四、 OLAP数据库

  基于Clickhouse数仓建设,具有ROLAP在线实时查询,完整的DBMS功能支持、列式存储、不需要任何数据预处理、支持批量更新、拥有非常完善的SQL支持和函数、支持高可用、不依赖Hadoop复杂生态、开箱即用等许多特点,适用业务场景,海量数据集中的低延迟高性能的单表聚合查询分析场景:

百胜

  五、结论

  成熟的数仓构成=合理的数据分层+正确的数据建模方法+稳定的调度系统+高效的OLAP分析引擎。

  数仓分层设计的优势:

  ·数据结构清晰

  ·数据有血缘关系

  ·减少重复开发

  ·把复杂数据计算拆解

  ·易于屏蔽上游数据影响

  ·提高查询效率

  纬度建模优势:

  通过建模的方法,更好地组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点,一般我们会从以下面四点考虑:

  ·性能:能够快速查询所需的数据,减少数据I/O的吞吐。

  ·成本:减少不必要的数据冗余,实现计算结果的复用,降低大数据系统中的存储成本和计算成本。

  ·效率:改善用使用数据的体验,提高使用效率。

  ·质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量的、一致的数据访问平台。