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

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

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

二:纬度表如何进行整合

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

  • 命名规范统一
    表名和字段名的命名应该要统一,一般情况下表的命名需要看到是什么纬度表,是主表还是从表,字段的命名应该要见名知意,描述相同业务含义的字段在不同表,不允许命名不同。
  • 字段类型要统一
    实践发现,如果字段类型不统一,后续对数据进行加工,导入导出就会产生不必要的麻烦,更加致命的可能会造成精度丢失。
  • 公共代码及代码值统一
    公共代码及标志性字段的数据类型、 命名方式等统一。
  • 业务含义相似的表统一
    如果两个纬度表描述的业务场景比较类似,但是也有差异的部分,这种情况下,一般有如下处理方式:
    1.主从表设计
    将共有的公共核心属性进行下沉,抽象出主纬度表,每个纬度表差异的部分抽象成从纬度表。这样做的好处是,保证了主表的稳定,不会因从表的变更影响到主表,并且更加有利于扩展,遵循了类似于软件设计的思想,高内聚,低耦合。但是缺点是使用起来会有不便,可能会多join一张表。
    2.直接合并
    另外一种就是直接合并,这个方式的好处是将多个描述相似业务场景的纬度表进行垂直整合,使得这张表的纬度属性很丰富,符合我们纬度表设计的原则,并且查询起来也很方便。但是也会出现一个问题,就是这张表会存在很有空值,表很稀疏。
    3.不合并
    如果两张纬度表描述的业务场景差异较大,那么可以选择不合并,分开维护也是可以的,这样可以凸显出每张纬度表的核心主题,不易混淆。
  • 表级别的整合问题
    在上述业务含义相似的表统一里面也提到表的整合,这里来详细讨论一下表级别的整合问题。
    1.垂直整合
    如果不同的来源表有相似的业务含义,只是存储的数据集不一样,比如会员基础信息表,会员扩展信息表,其实都是存的会员信息,只是字段表述不一样,那么这样的话就可以垂直整合到一张会员表里面去,这样就可以使纬度属性尽可能的丰富起来。
    2.水平整合
    如果不同的来源表,表结构都类似,而且描述的也是相似业务场景下的环境,那么可以进行水平整合,比如说淘宝会员,1688会员等。由于是水平整合,需要考虑到唯一主键的问题。如果整合完以后不同子集各自的主键不冲突,那么可以不用做处理,如果存在冲突就需要设置超自然键,保证唯一性。
    有合并就会有拆分,思路是一样的,只不过拆分是逆思维,这里就不做详述了。不管是整合还是拆分一般要遵循一下几点:
    扩展性:当源系统、业务逻辑变化时,能通过较少的成本快速扩展模型,保持核心模型的相对稳定性。软件工程中的高内聚、低耦合的思想是重要的指导方针之一。
    效能:在性能和成本方面取得平衡。通过牺牲一定的存储成本, 达到性能和逻辑的优化。
    易用性:模型可理解性高、访问复杂度低。用户能够方便地从模型中找到对应的数据表,并能够方便地查询和分析。

三:历史归档问题

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,108评论 0 9
  • 一:什么是纬度 在数据仓库当中,纬度表和事实表是最常见的名词,事实表将度量值描述为事实,将纬度描述为度量值的环境,...
    愤怒的谜团阅读 1,661评论 0 2
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,722评论 0 30
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,081评论 1 32
  • 一、总述 1.1 对大数据的理解 大、快、多样性只是表象,大数据的真正价值在于生命性和生态性。阿里巴巴称之为“活数...
    脐橙CC阅读 8,900评论 0 7