加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

苏宁数据仓库应对数据爆发式增长的技术演进

发布时间:2018-11-08 04:43:10 所属栏目:教程 来源:彭虎
导读:【51CTO.com原创稿件】为什么需要数据仓库 随着公司业务不断发展,数据种类和存储呈现爆发式增长,繁多的业务数据如何被各业务中心分析和使用,如何有效组织和管理大量业务数据,减少大数据平台相近逻辑重复计算、相近数据重复存储,都将面临巨大挑战。 数
副标题[/!--empirenews.page--]

【51CTO.com原创稿件】为什么需要数据仓库

随着公司业务不断发展,数据种类和存储呈现爆发式增长,繁多的业务数据如何被各业务中心分析和使用,如何有效组织和管理大量业务数据,减少大数据平台相近逻辑重复计算、相近数据重复存储,都将面临巨大挑战。

数据仓库层次架构

数据仓库层次整体划分为三层:近源数据层、整合数据层和应用数据层,如下图:

苏宁数据仓库建设技术演进

近源数据层

近源层是数据仓库拷贝源数据提供整合的数据存储区域,粒度、结构和源系统保持相同

  • 缓冲区:保存源系统每天的增量数据,可根据应用需要保留适当历史周期的数据,不长期保存数据
  • 操作区:存储数据仓库最细节数据,按照业务源系统分类划分;对数据做结构化处理,完整保留所有细节数据。

近源层是整个数据仓库中数据量最大的部分。

整合数据层

  • 明细区:采用维度建模方法,整合近源层数据,进行适度的反范式设计明细事实数据表。
  • 汇总区:根据应用层和其他下游系统取数需要,对明细事实数据进行适度汇总,提升取数性能。
  • 维度区:数仓统一维度数据模型。

应用数据层

应用数据层为个性化汇总层,针对不是很通用统计维度、指标存放在此层中,本层计算通常只有自身业务关注的维度和指标,和其他业务线一般无交集 。

数据建模

数据建模是数据仓库中的核心工作,苏宁数据建模主要采用的kimball维度建模方法,建模主要分两块,维度表设计和事实表设计。

维度表设计

维度是数据仓库的核心,他提供了数据分析的视角和标准,大部分的维度表数据量都相对较小,但是他是整个数据仓库的核心,整个的数据建模都是围绕着维度来建设。

维度表主键

维度表在数据仓库中有不可替代的重要地位,因此维度表主键的确认也尤其重要,维度表的主键用于和事实表做关联使用,所以维度表主键也为事实表的外键,维表主键可由有业务含义的自然键组成;也可由无意义的代理建组成,比如使用流水号、自然键+日期等方式。

维表相对静态、不随时间变化直接使用自然键作为主键,比如:业务状态码、性别、城市省份等不会随着时间改变而改变主键对应业务含义,一般直接使用业务自然键作为主键;维表随着时间的变化而产生变化需要考虑使用代理键作为主键。苏宁门店代码,会因为组织法人等信息变更,生门店代码会发生变化,对应主键的业务含义会随着时间的变化而改变,使用一个代理键和业务门店代码映射,可以识别历史和当前不通的门店代码为一个门店。

实际使用过程中,由于在大数据平台中生成稳定代理键和自然键关系比较复杂,一般使用流水号代理键使用非常少。

维度反规范化处理

在OLTP系统中,一般表设计都遵循3NF等规范化要求要求建立数据模型,这个可以有效避免数据冗余以及数据不一致性,如下图:

苏宁数据仓库建设技术演进

然而在OLAP系统中,使用规范化,会导致数据表关联操作多、性能差,在OLAP系统中,数据是相对稳定的,此时往往会采用反规范化处理,根据分析需要建立对应维度宽表,降低模型查询复杂度,提升批处理查询性能。如下图:

苏宁数据仓库建设技术演进

维度的合并和拆分

合并:

  • 相同范围数据,对应多张表存储属性不同,根据维度分析需要整合至一张维度表中,整合后减少事实表和维度表关联次数,方便数据分析和加快数据统计计算。
  • 不同数据范围,对应多张表存储信息,根据维度分析需要将相同属性整合到一张表中,不同表中差异化的数据整合到各自数据表中。

拆分:

  • 根据属性的使用频率、属性变化程度、属性数据计算产生时间等角度分析多维度属性做适当拆分,常用的信息在一张表中,对异变、冷门属性拆分到另外一张表中,对出数比较晚的数据也做单独拆分,可以尽可能保障主数据模型出数稳定和提前出数时间。如下图:
  • 苏宁数据仓库建设技术演进

  • 根据业务细分或者业务数据使用热度进行拆分,例如苏宁商品目前已经到十亿+级别数据量,其中很大一部分商品已经不在售卖,不会产生流量和交易,可以将近N月产生流量或交易数据分别建立维度表,减少事实表和维度表关联系统消耗。如下图:

苏宁数据仓库建设技术演进

需要结合业务数据情况和数据分析要求,合理使用合并和拆分方法。

缓慢变化维

缓慢变化主要是解决记录数据仓库中数据历史变化,实际根据业务需要我们会有多种处理方式。

以会员会员张三举例,9月1日前公司地址为南京市玄武区苏宁大道一号总部一期;9月2日由原公司地址总部一期变更为总部二期,对应多种处理方式包含覆盖方式、新增列方式和新增行方式,下面对每种方式处理方法单独介绍。

  • 覆盖方式:维度属性的变化,维度旧的属性总是被新值所覆盖,不保留历史状态数据,当数据不需要保留历史记录,不需要执行以前的报表,可以采取此方式。如下图:
  • 苏宁数据仓库建设技术演进

  • 新增列方式:新增数据列记录对应列数据变化前数据,可以记录指定列数据变化情况。如下图:
  • 苏宁数据仓库建设技术演进

  • 新增行方式:当维度数据发生变更,维度表新增一条维度记录,并且分配新的代理主键,通常配合有效开始时间、有效结束时间、有效标识使用。如下图:
  • 苏宁数据仓库建设技术演进

快照维度表

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读