介然(李金波),阿里云高级技术专家,现任阿里云大数据数仓解决方案总架构师。8年以上互联网数据仓库经历,对系统架构、数据架构拥有丰富的实战经验,曾经数据魔方、淘宝指数的数据架构设计专家。

优秀数仓的三要素:清晰、保障和扩展性好

介然认为,优秀的数据仓库应该包含以下要素:

1.结构、分层清晰

不一定需要多少个分层和主题,但是一定要清晰。用数据的人能够很快找到需要数据的位置。

2.数据质量和产出时间有保障;

3.扩展性好

不会因为业务的些许变化造成模型的大面积重构。

而从系统架构、数据架构两个纬度来看,要想设计好大数据应用下的数据仓库,还应做到以下两点:

1.系统架构上

足够的容错性,减少不必要的系统间的强耦合。因为你会碰到各种问题,不要因为一个不必要的依赖造成数据无法产出

2.数据架构上

简单、清晰、强质量控制。数据架构上扁平化的数据处理流程会对数据质量的控制和数据产出的稳定性提供非常好的基础。

互联网人转型做大数据数仓需要注意哪几个点?

对于之前做互联网数据仓库,现在想转型做大数据仓库的人,介然也提了一些建议,主要是四点:

1.不必再苛刻的精打细算

基于传统平台构建数仓时,为了照顾平台的处理能力,我们经常会构建多层数据结构,预先对不同粒度的数据做预先汇总,以方便使用者在使用数据时能够已最小的计算代价获得计算结果。这也造成了整个数据处理流程较长,步骤很多,问题追溯困难。 新的大数据仓库基于分布式计算平台,平台的计算能力通常都比传统的平台强大很多。 所以有时候需要时再计算数据,或者基于明细进行各粒度的数据汇总已经能够满足需求,并能够大大减少整体数据处理流程步骤,用计算的代价减少人工的成本,更划算,数据体系也更健壮。

2.不是模型层次越多越好

在传统的数仓架构中,大家都喜欢多数据模型进行分层设计,不同的模型层次拥有不同的数据域和作用域。这样设计固然看起来更清晰,但实际情况时多层之间可能存在重复数据,或者数据使用者在上层找不到完全切合的数据时,更愿意从底层的明细数据上自己去加工。一方面造成了数据使用上的混乱,一方面也会让数据整个处理流程长度增加,对于数据的运维带来较大的成本消耗。合理的层次设计,及在计算成本和人力成本间的平衡,是一个好的数仓架构的表现

3.质量是生命线

不再是你拿到的数据都是正确的,新的环境下的数据什么情况都会发生,而好的数仓架构需要有足够的容错性和质量保障。不要因为一条日志的乱码造成整个数据流程无法走通,也不要说一份日志50%的乱码你的程序还发现不了。在数据质量上投入再多的资源都不是浪费。

4.数据变成生产资料

传统的数据应用绝大部分都是以报表和BI分析的形式支持业务。也许你的报表晚出来会被老板骂一通,但是对业务的影响并不大。 但是在新的数据应用场景下,数据已经变成生产资料,数据会服务化直接应用到业务系统中,也许一份数据的质量出现问题或者产出延迟,都可能对你的业务系统产生致命的影响。所以数仓开始承担新的使命