大数据 爬虫Python AI Sql玩转大数据大数据

漫谈纬度表如何设计(二)

2019-08-27  本文已影响0人  愤怒的谜团

一:纬度设计时遇到的复杂背景

数据仓库的重要数据来源是大量的、分散的面向应用的操作型环境。不同的应用在设计过程中,可以自由决策,主要满足本应用的需求, 很少会考虑和其他系统进行数据集成。应用之间的差异具体表现在如下几个方面:
•应用在编码、命名习惯、度量单位等方面会存在很大的差异。比如不同应用对于用户的性别编码不同,有o和1、F和M等;不同应用的用户ID含义相同,但字段名称不同,有user、user_id 等,不同应用对于金额的度量单位不同,有元、分等。
•应用出于性能和扩展性的考虑,或者随技术架构的演变,以及业务的发展,采用不同的物理实现。拆分至不同类型数据库中,部分数据釆用关系型数据库存储(如Oracle、MySQL等),部分数据采用NoSQL数据库存储(如HBase、Tair等)。拆分成同一类型数据库中的多个物理表,比如对于淘宝商品,有商品主表和商品扩展表,商品主表存储商品基本信息,商品扩展表存储商品特殊信息,如不同产品线的定制化信息等;对于淘宝会员,有会员主表和会员扩展表,会员主表存储用户基本信息,会员扩展表存储用户扩展信息,如用户的各种标签信息等。
-- 引用《大数据之路》

二:纬度表如何进行整合

面对如何复杂的业务,复杂的数据来源,如何设计出统一,规范,高效,质量的纬度表是一个难点,一般需要遵循以下规范:

三:历史归档问题

随着业务的发展和时间的推移,纬度表当中的纬度属性也会发生变化(针对这种变化的具体处理非本文重点),假设纬度表处理部分纬度属性变化是采用增量插入的方式,那么数据量就会增长的很快,并且不是最新的数据是没有实际业务意义的,针对这种情况,我们为了有效数据的查询时效,应该要做好历史归档的问题。
一般目前归档数据的方式有如下几种:
1.根据业务系统那边的归档策略来,比如说业务系统那边以怎样的策略让这个商品处于失效状态,那么在数据仓库也是采用同样的策略,但是业务系统那边发生更新,数据仓库也会跟着变化。
2.对接binlog,解析数据,如果有解析到类似于delete,同业务系统那边失效的标志字段,那么就做归档操作。
3:数据仓库这边自定义归档策略,根据业务特点,自定义一套归档策略,单独维护。

上一篇 下一篇

猜你喜欢

热点阅读