e-works数字化企业网  »  文章频道  »  基础信息化  »  大数据

大数据环境下该如何优雅地设计数据分层

2017/7/28    来源:PHPChina开发者社区    作者:佚名      
关键字:大数据  数据分层  
发个牢骚,搞大数据的也得建设数据仓库吧。而且不管是传统行业还是现在的互联网公司,都需要对数据仓库有一定的重视,而不是谈一句自己是搞大数据的就很厉害了。
    发个牢骚,搞大数据的也得建设数据仓库吧。而且不管是传统行业还是现在的互联网公司,都需要对数据仓库有一定的重视,而不是谈一句自己是搞大数据的就很厉害了。数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了etl、调度、建模在内的完整的理论体系。现在所谓的大数据更多的是一种数据量级的增大和工具的上的更新。 两者并无冲突,相反,而是一种更好的结合。
 
    话说,单纯用用Hadoop、Spark、Flume处理处理数据,其实只是学会几种新的工具,这是搞工具的,只是在数据仓库中etl中的一部分。
 
    当然,技术的更新往往能领到一个时代的变革,比如Hadoop的诞生,光是深入研究一个大数据组件就要花很大的时间和精力。但是在热潮冷却之后,我们更应该考虑地是如何更好地管理和使用自己的数据。
 
    对于数据的从业者来讲,要始终重视紧跟技术的变革,但是切记数据为王,在追求技术的极致的时候,不要忘了我们是搞数据的。
 
    文章主题
 
    吐槽完毕,本文主要讲解数据仓库的一个重要环节:如何设计数据分层!其它关于数据仓库的内容可参考其它的文章数据仓库。
 
    本文对数据分层的讨论适合下面一些场景,超过该范围场景 or 数据仓库经验丰富的大神就不必浪费时间看了。
 
  • 数据建设刚起步,大部分的数据经过粗暴的数据接入后就直接对接业务。

  • 数据建设发展到一定阶段,发现数据的使用杂乱无章,各种业务都是从原始数据直接计算而得。

  • 各种重复计算,严重浪费了计算资源,需要优化性能。
 
    文章结构
 
    最初在做数据仓库的时候遇到了很多坑,由于自身资源有限,接触数据仓库的时候,感觉在互联网行业里面的数据仓库成功经验很少,网上很难找到比较实践性强的资料。而那几本经典书籍里面又过于理论,折腾起来真是生不如死。还好现在过去了那个坎,因此多花一些时间整理自己的思路,帮助其他的小伙伴少踩一些坑。
 
    1.为什么要分层?这个问题被好几个同学质疑过。因此分层的价值还是要说清楚的。
 
    2.分享一下经典的数据分层模型,以及每一层的数据的作用和如何加工得来。
 
    3.分享两个数据分层的设计,通过这两个实际的例子来说明每一层该怎么存数据。
 
    4.给出一些建议,不是最好的,但是可以做参考。
 
    为什么要分层
 
    我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌控,详细来讲,主要有下面几个原因:
 
    1.清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
 
    2.数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
 
    3.减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
 
    4.把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
 
    5.屏蔽原始数据的异常。
 
    3.屏蔽业务的影响,不必改一次业务就需要重新接入数据。
 
    数据体系中的各个表的依赖就像是电线的流向一样,我们都希望它是很规整,便于管理的。但是,最终的结果大多是第一幅图,而非第二幅图。
 
    图一
 
    图二
 
    怎样分层
 
    理论
 
    我们从理论上来做一个抽象,可以把数据仓库分为下面三个层,即:数据运营层、数据仓库层和数据产品层。
 
  • ODS全称是Operational Data Store,操作数据存储

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐