一种数据平台的数据库构架的制作方法

文档序号:13207820阅读:745来源:国知局
一种数据平台的数据库构架的制作方法

本发明涉及数据库,具体涉及一种数据平台的数据库构架。



背景技术:

传统的数据库设计遵守严格的三大范式(1nf,2nf,3nf),旨在降低数据库的冗余和保证数据一致性。但是如果数据量比较大,数据的维度分散不同的数据模型中,要获取这些维度的指标信息,会变得十分困难。比如我们要获取一个电商网站不同地区的交易总量趋势变化图,这时要访问用户表和订单表,我们设计一个表模型包含:date、province、order_cnt三个字段。首先必须关联用户表和订单表,一个十分受欢迎的电商网站的用户量大于100万,订单表数据量是用户表的100倍以上,此时,数据库要做的操作是100万行记录与1亿(100*100万)行记录做关联,在按照地区和日期分组汇总,这个计算时长将非常长,而且对数据库性能影响非常大。

另一方面,数据的上层存在多种不同的应用,而应用的需求又是多种多样的,比如,需要分析不同地区不同年龄段的订单交易变化,找出有其中有价值的信息。这时我们又得设计一个表模型:age,province,order_cnt,又要完成几乎重复的订单和用户表关联汇总计算。

如果数据量小一些,这种存储和计算模式看似能够满足这个需求,但是还有一个非常大的问题就是,面向应用的模型和源数据模型耦合性太高,几乎在每个应用层的模型计算里面都用到了贴源的用户表,如果有一天生产的用户系统升级,用户表模型变更,接入到数据平台的用户表模型也会相应变更,那么所有数据平台中直接使用到用户表做计算的程序都要被迫变更。



技术实现要素:

本发明所要解决的技术问题是:提出一种数据平台的数据库构架,解决传统技术中数据库设计因面向应用的模型和源数据模型耦合性太高,如果用户表模型变更,造成所有数据平台中直接使用到用户表做计算的程序都要被迫变更,产生巨量运算的问题。

本发明解决其技术问题所采用的技术方案是:

一种数据平台的数据库构架,包括:数据缓冲层、数据整合层和数据应用层;

所述数据缓冲层,作为原始数据的临时存储层,负责接入贴源的数据,不对数据做任何处理;

所述数据整合层,用于提供标准稳定的数据模型、提供标准化数据以及汇总数据;

所述数据应用层,为面向应用的数据处理和存储层,并且可以按需定制。

作为进一步优化,所述数据缓冲层的表结构与源系统表结构保持一致,在源系统表结构发生变化时,数据缓冲层的表结构也相发生变化。

作为进一步优化,所述数据整合层把各个系统中各个模型相关联的属性整合到一个模型中,标准化数据,并且进行维度从细粒度到粗粒度的汇总。

作为进一步优化,所述应用层针对不通的应用,从整合层抽取相应的数据到应用层,并存储应用访问和使用的直接结果集。

作为进一步优化,所述数据整合层中的数据模型涵盖数据缓冲层所有业务数据。

本发明的有益效果是:

采用数据缓冲层、数据整合层、数据应用层三层结构设计的数据平台,能够利用较少的存储带来较方便快捷数据体验,节约了存储成本,提高了数据利用率,提高了生产率。

附图说明

图1为本发明中的数据平台的数据库构架图;

图2为数据缓冲层与源系统表结构关系的一种实例示意图;

图3为数据整合层与数据缓冲层及源系统表结构关系的一种实例示意图;

图4为数据整合层对数据缓冲层的数据进行标准化映射的一种实例示意图;

图5为数据整合层对数据汇总的一种实例示意图;

图6为数据应用层从数据整合层抽取数据的一种实例示意图;

图7为本发明实施例中为建设电商网站数据平台所设计的数据库构架图。

具体实施方式

本发明旨在提出一种数据平台的数据库构架,解决传统技术中数据库设计因面向应用的模型和源数据模型耦合性太高,如果用户表模型变更,造成所有数据平台中直接使用到用户表做计算的程序都要被迫变更,产生巨量运算的问题。

如图1所示,在本发明中,提出的数据库构架包括数据缓冲层、数据整合层、数据应用层三层结构;

1、数据缓冲层:为原始数据的接入层,存放各个系统的原始数据,表结构与源系统表结构保持一致,数据不做任何处理,是临时数据存储层。

该层主要为整合层数据处理做准备。因为生产线上的系统可能使用多种存储系统,而数据平台作为统一的数据处理存储中心,必须要把各个生产系统的数据抽取到平台统一存储和计算系统中,这样才能有效地做关联汇总处理。

该层表结构与源系统表结构保持一致,如果源系统表结构变化,那么缓冲层表结构相应的变化。如图2所示,生产系统有名为“address”的表,etl开发人员首先在数据平台的缓冲层创建一个与“address”一样的表“t_address”,然后通过数据交换工具,把“address”表的数据抽取到“t_address”中,“t_address”表除了表名不同外,表结构、表字段名称、字段类型、数据等都与生产系统的“address”表一致。

如果生产系统模型变更,比如:“address”表的“province、city”字段被合并为“addr”字段,缓冲层表“t_address”做相应的变更:删除并重建“t_address”表。与生产系统的“address”表保持一致。

假设没有缓冲层,数据平台将直接在生产线上做实时汇总处理,可能存在以下问题:

1)对生产系统的性能造成巨大影响。

2)因为生产系统数据实时变化,如果数据平台数据处理错误,无法回算之前的数据。

3)多个数据来源系统,多种数据存储格式,让数据平台直接使用生产数据很困难。

相比之下,在设置数据缓冲层后,具有以下优势:

1)数据首先接入缓冲层,只是一个数据导出的过程,减少了连接生产系统的时间,并且不用在线上做一些消耗资源的计算操作。

2)若数据平台数据处理错误,数据被清除之前可以先保存成文本文件,以应对数据重跑。

3)源数据首先被接入缓冲层,然后可以使用一些etl数据处理手段,使数据标准化。

2、整合层用于提供标准稳定的数据模型、提供标准化数据以及汇总数据;

在整合层中,模型是标准的,如图3所示,整合层的“i_customer”表模型,应该包含用户所有的维度信息:用户号、年龄、性别、所在省、所在市等,所有整合层或应用层数据处理过程中的用户信息都应该从这个表中取到。在整合层中,模型是稳定的,不随源系统表结构变化而变化,比如,上面提到的生产系统“address”表变化,整合层的表模型并不会变化,只是数据加载程序中字段的映射规则发生变化。在图3中,缓冲层模型“t_address”随着源系统“address”表字段的变化而变化,但是整合层的“i_customer”表模型则不需要变化,只需要调整整合层的“i_customer”的数据处理加载程序:在数据处理加载程序中把缓冲层的“t_address”的“addr字段”拆分,映射为“province”和“city”,可以用sql语句简单表述。

在整合层中,数据是标准的。原始数据总是有一些质量问题,比如地址不是标准的,如图4,原始数据中cust_id=13的用户收货地址为新疆省乌鲁木齐市,在整合层中应该把“新疆省”映射为标准三级行政区划中的“新疆维吾尔自治区”。

在整合层中,数据是有一些初级维度汇总的。在整合层中,除了有详细数据外,还有一定的维度汇总,这样对上层应用使用时,不用再从详细数据汇总,可以直接从汇总表中抽取数据,或者在汇总表的基础上再次汇总,提高了效率。如图5,整合层表“i_cust_trade_sum_m”通过“i_trade”、“i_goods”表关联汇总,存储了用户月交易汇总情况。如果上层应用需要分析不同地区的月交易情况,可以直接从整合层表“i_cust_trade_sum_m”中抽取数据,然后汇总,相比直接从交易明细表中抽取汇总数据要更容易,效率更高。

3、应用层:是面向应用的数据处理和存储层,并且可以按需定制。针对不通的应用,从整合层抽取相应的数据到应用层,应用层存储应用访问和使用的直接结果集。

该层直接面向应用需求,定制数据模型,整合层数据进行抽取、处理、存储,方便应用快速使用所需数据。如图6,数据分析系统需要分析每个月不同地区的交易情况,首先建立模型“rpt_trade_regon_m”,有id、date、province、city、trans_amt字段。在整合层已经有汇总模型:“i_cust_trade_sum_m”-用户交易月汇总表,应用层可以快速抽取“i_cust_trade_sum_m”表中的date、province、city、trans_amt的数据,然后根据province、city分组汇总,最后得到“rpt_trade_regon_m”的数据。相比从每天交易量几百万的交易明细表中抽取数据再汇总要更方便快捷。

实施例:

以建设电商网站数据平台为例,如图7所示,

首先建立缓冲层模型:t_customer(用户表)、t_address(地址表)、t_goods(商品表)、t_trade(交易表),把收集到的原始数据存储到缓冲层,数据不做任何处理。

然后在整合层中建立模型:i_customer(用户表)、i_goods(商品表)、i_trade(交易表)、i_cust_trade_sum_d(用户交易日汇总表)、i_cust_trade_sum_m(用户交易月汇总表),并从缓冲层抽取数据到整合层,整合层模型设计要涵盖缓冲层所有业务数据,并对缓冲层数据做etl处理,存储到缓冲层的基础数据表:i_customer、i_goods、i_trade,在基础数据表的基础上,做一些初级汇总加工,存储到初级汇总表中:i_cust_trade_sum_d、i_cust_trade_sum_m

最后根据用户需求在应用层中设计模型,并从整合层抽取并加工数据。如图7中报表系统需要查看不同地区的交易情况表,用户行为分析系统需要分析不同省的购买力。在应用层中设计:rpt_trade_regon_m、ana_trade_regon_m表,并从整合层的i_cust_trade_sum_m表中抽取并汇总数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1