数据集市:数据集市的概念详解

1. 数据集市概念

  • 数据集市(Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。

  • 数据集市主要面向部门级业务,并且只面向某个特定的主题,存储为特定用户预先计算好的数据,从而满足用户对性能的需求。主要特征是规模小、面向部门,由业务部门定义、设计和开发,业务部门管理和维护,能快速实现需求。

  • 数据集市本质上是一个数据交易市场,既然是市场就存在供需,需求即终端用户对数据的直接需求,供应即满足用户需求特点的数据立方体。集市数据来源是全企业范围的数据库、数据仓库中抽取出来的体系化数据。

  • 数据集市低延时和高并发查询的情况下具备足够的支撑能力,可以7×24对外提供数据服务,且不影响原有数据仓库统计分析应用的正常运行。大量生产数据的预处理在数仓进行,数据集市接收数仓预处理后的数据。

  • 数据集市是对数仓的补充,灵活、快速响应业务,支持用户部门自行定制数据进行统计分析,支持高并发、性价比较高。

2. 数据集市的价值

2.1. 为什么要建立数据集市

  • 因为我们需要创建一个静态副本(副本中含有几个事实表及必要的维度),不像仓库那样每天都在变化,方便于分析。集市中会有很多副本只是暂时性应用的。用户在一个持续时间不长的项目中观测集市中的数据,比如几天到几个星期。之后,在项目结束后,集市中的数据就可以被删除。
  • 因为需要一个集市进行数据挖掘。在数仓中处理数据挖掘模型(训练、预测分析)会产生很繁重的处理压力,我们不希望这类工作影响到中央/核心仓库的性能。
  • 减轻数仓的查询工作量。假设有50%的数据报告都需要查询某个特定的事实表(以及它常用的必要维度)。为了减轻仓库的负担,我们可以针对这个事实表及使用维度创建一份副本,将副本指向某些数据报表。并且保持这个集市数据每天定时更新,达到减轻数仓的即席查询压力的目的。
  • 有些业务想改变一部分数据来模拟一些业务场景。这个时候他们不能改变核心数据仓库中的底层原始数据(这样会影响到所有人),所以我们可以为他们提供一个数据集市,满足这类人群的的特殊需求,去帮助他们应用他们的分析场景。
  • 提高报表的查询性能,集市中的数据相比于数仓的结构不同,索引不同。集市中会有许多额外生成的表(汇总表、高粒度聚合表)。集市的数据通常是只读的,每天定时刷新。
  • 因为数仓是有一定规范化的格式的,所以我们需要为分析或OLAP构建一个维度集市来获取数据。数据仓库中同一个表能够创建多个数据集市——同一个实体可以为不同的分析生成不同的维度。

2.2. 数据集市的优势和好处

高效访问—数据集市是一种节省时间的解决方案,用于访问特定的数据集以实现商业智能(关于商业智能,我们后续再讲)。

廉价的数据仓库替代品—数据集市可以是开发企业数据仓库的廉价替代品,在这种情况下,所需的数据集较小。一个独立的数据集市可以在一周或更短的时间内启动并运行。

提高数据仓库的性能—依赖性和混合数据集市可以通过承担数据仓库的处理负担来提高数据仓库的性能,以满足分析员的需求。当依赖数据集市被放置在单独的处理设施中时,它们也显著降低了分析处理成本

数据维护-不同的部门可以拥有和控制他们的数据。

简单的设置-简单的设计需要较少的技术技能来设置。

分析-关键绩效指标(KPI)可以很容易地跟踪。

容易进入-数据集市可以成为未来企业数据仓库项目的构建块。

3. 数据集市的特征

  • 数据集市的特征主要有:
    • 面向主题 / 面向部门;
    • 有特定的应用主题;
    • 由业务部门定义、设计和开发;
    • 业务部门管理和维护;
    • 规模小
      • 数据仓库是面向企业的,数据集市是面向部门或者特定业务的;
    • 直接面向用户
    • 个性化高

4. 数据集市的服务方式

  • 数据集市的服务方式主要有3种:
    • 基础数据及数据产品交易,如数据堂、数多多等;
    • 满足在线数据调用需求的 API 云服务,如千数堂、聚合数据等;
    • 大数据分析结果的交易,如贵阳大数据交易所等。

5. 数据集市的组成部分

  • 数据集市的数据,包括基础数据和衍生数据

6. 数据治理 & 数据集市

  • 在数据治理方面,公司主要以数据标准、数据质量、数据安全、元数据、主数据以及生命周期的管理作为重点领域,通过有效的数据资源控制手段,在保证数据安全的情况下,对数据进行有效的管理和控制,以提升数据质量进而提升数据变现的能力,为公司的业务和管理提供多样化、统一的数据服务调用,在公司数字化转型的过程中扮演极其重要的角色。

  • 数据集市以数据治理为基础,利用数据治理工具治理过的企业数据,按照公司各种业务需求主体,建设单独的应用数据集市,确保满足数据的完整性、及时性、准确性和一致性要求,同时为各类系统提供数据服务。经过治理的数据能提高数据集市建设进度,降低数据集市建设难度,统一不同集市的数据标准,提高数据集市的数据质量。

7. 数仓 VS 数据集市

  • 数据仓库中数据结构采用的规范化模式(关系数据库设计理论),数据集市的数据结构采用的星型模式(多维数据库设计理论)。
  • 数据仓库中数据的粒度比数据集市的细。数据集市的数据来源于数据仓库,主要是经过重新组织的汇总数据。
  • 因此,多个数据集市不能构成一个企业级的数据仓库,就好比不可能把大海里的小鱼堆在一起构成一头大鲸鱼。这也说明了数据仓库和数据集市有本质的不同。

  • 数仓和数据集市的关系类似于工厂和门店的关系。存在三大差异:
    • 定位差异
      • 数据仓库在底层,涵盖企业范围内的各类领域数据,能为整个企业各个部门的运行提供决策支持手段,是数据统一整洁仓管;
      • 而数据集市在服务层,它要与用户需求进行直接交互聚焦于、各类主题服务区域,服务于特定的数据需求。
    • 服务差异
      • 数据集市可以在一定程度上缓解访问数据仓库的瓶颈、面向客制化的数据服务应用,因此是广义数仓中被抽离出的一部分,面向实时的、高并发分析;数仓则重点解决海量数据统计分析、低用户并发、大量计算。
      • 数据集市聚焦具体领域,要满足低延时、高并发的数据查询要求,可以7×24 对外提供数据服务,且不影响原有数据仓库统计分析应用的正常运行。大量生产数据的预处理在数仓进行,数据集市接收数仓预处理后的数据。
      • 数据集市是对数仓的补充,灵活、快速响应业务,支持用户部门自行定制数据进行统计分析,支持高并发、性价比较高。
    • 建模差异
      • 数据仓库的建模
        • 确保提供的数据简单性以及历史数据的集成和联合性是数仓建模应具备的关键原则。要由企业IT部门或者DT部门的数据专家进行统一组织设计。
      • 数据集市的数据建模

        • 数据集市的建模是由业务需求驱动的。数据集市模型对于捕获业务需求十分有用,数集提供的数据服务必须是有业务价值的,否则不应该存在。

        • 数据集市的建模是终端用户发起的。终端用户必须参与数据集市的建模过程,他们是数据集市的需求发起方,也即是否有价值的关键评判者,而不是IT或DT部门自己。

        • 数据集市的建模不是数据技术专家依据相关数据标准收集的,它受行业业务经验以及数据分析技术的影响。数据分析技术可以影响所选择的数据模型的类型及其内容。目前,有几种常用的数据分析技术:查询和报表制作、多维分析以及数据挖掘。

8. 数据集市建设关键点

  • 集市与其它系统的边界及关系:
    • 需要明确集市与基础数据平台的边界及定位,同时要梳理清楚与各应用系统在数据上的关系。
  • 支持数据不定期重跑:
    • 数据保存完整,合理利用业务特征和日期属性建立分区表,批量采用流程式配置,做到支持快速重跑。
  • 批处理性能:
    • 批处理时间直接影响业务对数据的应用,需要从业务以及技术层面进行梳理,提高整体运行效率。
  • 历史数据存储方式:
    • 明细区数据采用拉链形式,汇总区则保留一段时间的切片数据,指标区数据则根据实际需要存储。
  • 指标体系建设:
    • 为了最大限度复用与灵活管理集市数据,以指标方式提供数据服务可大大减少建设与运维成本。

9. ETL & 数据集市

在决策引擎的输入/输出时,结果由于数据量较大,一般都是存储为横表(一笔合同多行),而很多指标是风控数据分析人员比较关注的(如:外部数据源返回的结果),为了便于分析需要将横表转竖表(一笔合同一行)。