利用数据仓库优化数据分析该怎么做?

Posted 大数据观察

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用数据仓库优化数据分析该怎么做?相关的知识,希望对你有一定的参考价值。



0 1



在整个数据分析流程中,数据处理的时间往往要占据70%以上!这个数字有没有让你震惊呢?为了提高分析效率和质量,借用数据仓库进行数据分析是一个很好的选择,详细的工作方法本文都有所介绍。

  首先,我们来了解一下数据仓库吧!数据仓库是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合。那数据分析又是干什么的呢?笔者凭借个人的经验认为,基于业务需求,结合历史数据,利用相关统计学方法和某些数据挖掘工具对数据进行整合、分析,并形成一套最终解决某个业务场景的方案就是数据分析的过程。




0 2


  数据分析大致包括以下流程:

  业务理解–数据理解–数据准备–建模–评估–部署

  由于数据分析对数据质量、格式的要求天然就比较高,对数据的理解也必须非常深刻,使得数据契合业务需求也要一定的过程,这样,根据我们的经验,在整个数据分析流程中,用于数据处理的时间往往要占据70%以上。

  因此,如何高效、快速地进行数据理解和处理,往往决定了数据分析项目的进度和质量。而数据仓库具有集成、稳定、高质量等特点,基于数据仓库为数据分析提供数据,往往能够更加保证数据质量和数据完整性。

在事务处理系统中的数据,主要用于记录和查询业务情况。随着数据仓库(DW)技术的不断成熟,企业的数据逐渐变成了决策的主要依据。数据仓库是一种面向决策主题、由多数据源集成、拥有当前及历史总结数据、以读为主的数据库系统,其目的是支持决策。数据仓库要根据决策的需要收集来自企业内外的有关数据,并加以适当的组织处理,使其能有效地为决策过程提供信息。数据仓库中的数据是从许多业务处理系统中抽取、转换而来,对于这样一个复杂的企业数据环境,如何以安全、高效的方式来对它们进行管理和访问就变得尤为重要



0 3


  利用数据仓库进行数据分析无疑能够给我们的工作带来很大便利,那么,究竟要如何操作呢?我们首先需要了解数据仓库的优势,数据仓库至少可以从如下三个方面提升数据分析效率:

  1. 数据理解

  数据仓库是面向主题的,所以其自身与业务结合就相对紧密和完善,更方便数据分析师基于数据理解业务。下图是Teradata关于金融行业的成熟模型:


利用数据仓库优化数据分析该怎么做?

 我们可以看到,整个数据仓库被分为十大主题,而金融行业所有的数据、业务都会被这十大主题涵盖。当我们需要找某个信用卡账户信息时,我们就去协议(AGREEMENT)主题,需要某次存款交易信息时就去探寻事件(EVENT)主题,需要某个理财产品相关信息就挖掘产品(PRODUCT)主题,如此类推,我们就会发现十大主题将整个金融行业的数据划分得非常清晰,我们需要做的就是拿到业务需求,理解数据仓库的模型,数据理解也就水到渠成了。

  2. 数据质量

  数据分析要求数据是干净、完整的,而数据仓库最核心的一项工作就是ETL过程,流程如下:


利用数据仓库优化数据分析该怎么做?

 而数据仓库已经对源系统的数据进行了业务契合的转换,以及脏数据的清洗,这就为数据分析的数据质量做了较好的保障。

  3. 数据跨系统关联



上图是数据仓库的一个简单架构,可以看到,各业务源系统的数据经过ETL过程后流入数据仓库,当不同系统数据整合到数据仓库之后,至少解决了数据分析中的两个问题:

  第一,跨系统数据收集问题,同一个客户的储蓄交易和理财交易我们在同一张事件表就可以找到;

  第二,跨系统关联问题,同一个客户可能在不同系统中记录了不同的客户号,甚至存在不同的账号,进行数据整合时,总是需要找到共同的“纽带”来关联来自不同系统的信息,而数据仓库在ETL过程中就会整合相关客户信息,完美解决跨系统关联问题。

  可见,数据仓库是整合的、面向主题的、数据质量高的、跨系统的优质数据源,那么,我们该如何充分利用这些优势呢?



0 4

    由于业务的特殊性,会对某种类型的数据加工操作需求非常多。比如计算交易中,TOP N的商家、TOP N 的品牌、TOPN的商品,商家中TOP N的商品、品牌中TOP N的商家等等。这类代码都是非常类似的,如果每个计算都有独立任务,会造成计算资源的大量浪费。“我们通过特殊的代码框架,让一份基础数据中多种TOP N的数据可以在一次计算过程中产出,大大减少资源消耗,保障数据产出稳定。”


        介然认为,优秀的数据仓库应该包含以下要素,清晰、保障、扩展性好,


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


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


  3. 扩展性好:不会因为业务的些许变化造成模型的大面积重构。


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


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


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


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


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


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


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


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



文章与部分图片来源于网络,如有疑问,请联系删除




以上是关于利用数据仓库优化数据分析该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

大数据挖掘如何利用数据仓库优化数据分析?

从12306的崩溃,说说我们怎么去做性能优化?

PHP-大数据量怎么处理优化

聊一聊数据仓库的 KPI 怎么定

数据仓库开发人员怎么避免成为取数机器?

Elasticsearch:从写入原理谈写入优化