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

为什么需要数据仓库

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

数据仓库层次架构

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

近源数据层

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

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

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

整合数据层

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

应用数据层

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

数据建模

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

维度表设计

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

维度表主键

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

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

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

维度反规范化处理

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trq28945513

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值