1700432650
5.2 什么是分析数据集
1700432651
1700432652
分析数据集(Analytic Data Set,ADS)是为了支持某个分析或模型而汇集在一起的数据,且它的数据格式满足特定分析的要求。ADS可以通过数据的转换、聚合、合并等过程生成。它通常会按照一个逆规范化或者扁平文件的结构来设计。这种结构下,每一行数据都描述了一个分析实体,如客户、地域或产品。分析数据集有益于缓解数据的高效存储和方便使用间的矛盾。
1700432653
1700432654
关系型数据库的大部分数据都使用“第三范式”的模式进行存储。这种模式避免了数据冗余,同时使得数据查询更复杂。第三范式的表结构非常适合保存或恢复数据,但是这些表通常很难直接用于高级分析。对第三范式的深入解读不在本书范围中。重点是,分析工具通常要求数据是简单的、非规格化的、扁平文件的格式。高级分析的复杂精细体现在分析中数据所用的算法和方法上,而不是数据结构本身。这些数据集可以有多种形式,我们随后会进行讨论。
1700432655
1700432657
5.2.1 两种分析数据集
1700432658
1700432659
目前主要有两种分析数据集,如图5-5所示。
1700432660
1700432661
1700432662
1700432663
1700432664
图5-5 开发分析数据集与生产分析数据集
1700432665
1700432666
开发分析数据集是支持分析任务的ADS。它拥有解决问题可能需要的全部变量,所以它会非常宽。开发分析数据集可能会拥有几百个甚至上千个的变量和指标。不过开发分析数据集通常比较浅,数据行不多,因为大部分的分析都会使用抽样数据,而不是全量数据。这使得开发分析数据集很宽,但不会很深。
1700432667
1700432668
生产分析数据集刚好相反。它通常用于各种评分与模型部署。它只包含最终解决方案必需的特定数据。通常,大部分解决方案只会使用开发分析数据集中的部分变量。最大的区别在于,评分过程一定是针对所有实体进行的,而不会只针对样本数据。每一个客户、每一个地域、每一个产品都必须得到评分。所以生产数据集不宽,但一定会很深。
1700432669
1700432670
例如,在开发一个客户模型时,分析专家可能要研究500个不同的属性,分析的是从整体客户中抽取的10万个客户。因此,开发分析数据集很宽但比较浅。在生产过程中对客户应用评分模型时,可能只需要使用其中12个属性,但需要对全部3000万个客户进行计算。所以,生产分析数据集很窄但比较深。
1700432671
1700432673
5.2.2 传统的分析数据集
1700432674
1700432675
在一个传统环境下,所有的分析数据都在数据库外部创建,如图5-6所示。每一个分析专家都会独立地创建自己的分析数据集。更糟糕的是,这些工作是由每一个分析专家独立完成的,这意味着可能会有几百个人同时在创建不同的企业数据视图。更糟糕的事情是,一个ADS通常只服务于一个项目,每个分析专家都拥有一份生产数据的独立副本。更严重的问题是,分析专家还会创建新的数据集,导致每个项目最终都会产生大量的数据。
1700432676
1700432677
1700432678
1700432679
1700432680
图5-6 传统的分析数据集流程
1700432681
1700432682
之前我们提到过,某些企业分析环境内的数据是其企业数据规模的10倍或20倍。如果企业决定升级为一个更先进、更大可扩展性的分析流程时,肯定不希望保留这些服务于不同用户和模型的数据副本。这时需要一个变通的方法,我们随后会谈到这一点。
1700432683
1700432684
传统的分析数据集有一个人们不太了解的严重问题,那就是数据的不一致。也许,某个分析专家把销售收入定义为销售毛收入减去折扣与返点。同一时间,另外一个项目中的分析专家可能把销售收入定义为销售毛收入减去折扣,没有减去返点。两位分析专家的定义有一些差别,但你很难说谁的定义是错的。如果他们俩都为同一个业务部门服务,问题就出现了,在他们提供给业务部门的分析报告中,数据是不一致的!
1700432685
1700432686
传统分析数据集带来的另外一个大问题是重复性工作。如果分析专家不断地创建相似又略有差别的数据集,这不仅会占用数据存储空间和系统资源,还会耗费分析专家的时间。他们不得不创建一个ADS开发流程,执行并监控这些任务,以确保任务顺利完成。这不仅耗费了大量的时间,也增加了所有项目的成本。
1700432687
1700432688
数据不一致比数据冗余的危害更大!
1700432689
1700432690
传统分析数据集的工作方式确实会产生大量的数据冗余,但这还不是最严重的问题。人们很容易忽略的一个事实是,分析专家们经常开发略有差异的关键指标定义。这会带来数据的不一致。这个现象常被忽视,甚至没人知道。
1700432691
1700432692
还有一个地方会浪费资源与精力。当为某项目开发的ADS流程完成了,工作才刚刚开始。为了让ADS流程在生产环境中执行,分析专家需要对它进行反向工程,并备份到生产环境中。生产环境和开发环境总是有一些差别的,把开发环境下的程序迁移到生产环境下,常常意味着重新开发整个处理流程。例如,也许你需要把分析工具生成的代码转化成SQL或自定义函数(UDF),这通常成本很高,还极易出错。有些企业在部署分析方面耗费的时间和资金比前期开发阶段还要多。
1700432693
1700432695
5.3 企业分析数据集
1700432696
1700432697
我们将讨论如何通过企业分析数据集(EADS)来优化分析数据集的创建过程。EADS是可共享的、可复用的、集中化的、标准化的、用于分析的数据集。
1700432698
1700432699
EADS做的事情是把成百上千个变量汇总到某些数据表和视图内。这些数据表和视图可供分析专家、不同应用、不同用户来共同使用。EADS的结构可以是一张大宽表,也可以是关联在一起的多张表。
[
上一页 ]
[ :1.70043265e+09 ]
[
下一页 ]