首页 / 新闻

12.

15

2015

【重磅】现代数据仓库的技术演变和关键特性(附完整版PPT)

公司新闻

谢谢赵老师,今天非常高兴来到讲台上面。首先,一句话介绍一下星环科技。星环科技是一家专门做Hadoop发行版和基础软件的一家公司。目前在Hadoop之上的SQL引擎以及流处理引擎在技术上面已经远远领先于国外的同行,同时我们覆盖的行业也是最多。

 

 

下面我来介绍一下数据仓库的演变。十年前,MPP数据库诞生,它的目标是替换和革原来数据仓库技术的命,然而却一直未能成功,国外的MPP数据库厂商也已基本被收购。四年前,迈克·奥森宣布利用Hadoop进攻数据仓库市场,四年间虽在数据揭示上小有成就,但在整个数据仓库市场上并没有得到广泛应用。随着SQL-on-Hadoop技术的成熟,Hadoop技术已逐渐进入到数据仓库的领域。所以我们现在来具体看下什么是数据仓库。数据仓库有各式各样的表现形态,有的是一个数据库(或数据库管理系统),有的是一体机,如Teradata一体机,然而这只是它们的表象,实质上可能并不一定是一个数据库的形态。如左图,有人认为它是一个酒杯,有人认为它是两个人脸的侧面像,同理,只从表面看,很多人可能会以为数据仓库就是一个数据库,但是它本质上是一个集中化的数据平台,把所有数据都集中在一个平台上面,进行数据的加工、处理和挖掘。这使得现在Gartner把数据仓库慢慢改变名称,以前是数据仓库数据库管理系统魔力象限, 从2015年开始改成数据仓库和数据管理系统魔力象限,不再局限于数据库,这也意味着在数据仓库当中要引入一些新的技术,特别是像Hadoop技术来作为数据仓库。引入它的重要原因就在于传统的数据仓库已碰到些许瓶颈。

 

 

接着我们来看一下传统数据仓库的构成。企业客户会把数据分成内部数据和外部数据,内部数据通常分为两类,OLTP交易系统以及OLAP分析系统数据,他们会把这些数据全部集中起来,经过转换放到数据库当中,这些数据库通常是Teradata、Oracle、DB2数据库等。然后在这上面进行数据的加工,分三种角度,客户、利润以及内部风控,建立各种主题模型,再提供报表做进一步的数据挖掘,这就是传统的数据架构,但随着演变也渐渐发生了一些限制。

 

第一点,数据量的增加非常迅速,使得原来数据仓库或者数据系统的技术不能够有效的处理复杂的数据。比如有的客户数据量大概在十几TB左右,这就需要很长的时间才能完成,它需要一个更强大的技术来替代原来的数据仓库,来进行高效的数据处理,扩展原有的数据系统建立新的数据仓库,这是目前较为迫切的需求。

 

第二点,它的数据源非常多,过去建数据仓库是想要把所有的数据都统一到一个数据平台上面,但现在发现并不现实。通常一个稍微大型的企业内部会有几百个数据库,几乎无法统一。这种情况下就需要一个数据库的虚拟化,把所有的数据都统一到一个思路上进行分析,但在过去就没有这样的技术,同时把数据分析与批处理能力结合起来,这是第二个原因。

 

第三点,问题在于一直在增加的数据类型,不仅是结构化数据,也有非结构化数据,对于非结构化数据的处理、存储和分析是传统数据库所不具备的,所以企业要寻求新的方法来建造数据仓库。

 

第四点,过去的数据库技术并没有为搜索,为分析,为数据挖掘来设计更多能力。这方面现在刚开始出现这种趋势,特别是一些金融机构要做非常复杂的风控,过去都是使用规则引擎,现在他们更多的希望用新的方法来进行风险控制,这就需要全新的技术手段来解决这些问题。

 

 

正是上述四大问题使得传统数据架构发现巨大变化,这也是Gartner在几年前提出的逻辑数据仓库的概念。逻辑数据仓库大概包含六个部分。

 

第一部分,它需要有一个集中的存储,这个存储当中不仅是要有结构化数据,也要有非结构化数据。其中,大概20%为结构化数据,80%为非结构化数据,但在价值上,20%的结构化数据却拥有80%的价值,80%的非结构化数据拥有20%的价值。我们需要建造系统把所有数据都集中起来,能够进行分析,这就需要一个仓库把它存起来。

 

第二部分,它需要数据联邦或数据库虚拟化技术去便利访问现有的数据库。很难有一个数据库技术能够把所有的数据都集中起来,因为它不是技术原因,而是管理或者系统的问题导致的。很多系统虽然有大量的交易信息系统,在数据分析的过程中临时需要数据时,比如CRM系统数据,有能力直接访问原来的数据库系统,这是它的第二个特点。

 

第三部分,它需要采用分布式计算方法。由于目前数据量增加是逐级的,过去单机扩容的方法已无法完成,它的性能很难再扩展,所以需要全新的技术来进行高度的横向扩展,解决数据量大带来的问题。同时,他们注重数据的格式,很多文本数据可能在读的时候才能抓到它的情况,所以需要一种更加灵活的数据模型来定义。

 

另外,它需要三种特性。首先,需要SLA的管控,一个成功或大型的数据仓库通常有几千个应用,意味着每种应用需要一个成熟的管控方法来支持这一需求,同时也需要在每个业务部门合适的分配资源,这是它需要具备的特性。再者,它需要一个数据质量管理、元素管理的机制,也需要一个数据定义的机制,这组成了逻辑数据仓的三个主要非功能特性。预计在未来三年,即2018年时,企业的绝大部分数据仓库会转变成逻辑数据仓,到2018年以后传统数据仓库几乎消失。

 

 

目前看来,Hadoop技术成熟的速度是非常迅速的,我们已经在帮企业客户建造完全基于Hadoop的数据仓库,我们把它分成三层。首先要建立一个集中的数据存储,这中间有结构化数据,分成贴源区、主题区和元数据区,也有另外的集群来专门存放非结构化数据。为了满足这种多方面的需求,我们通常会建立一个统一的资源调度层,由这一层保证每一个客户得到特定资源配额,使资源得到有效分配和保障。

 

再往上,有四个不同的应用的场景,它们并不是物理集群,而是逻辑的方式。Gartner认为在数据仓库中有几种应用场景,第一种是称为传统数据仓库,主要是做批处理,做离线加工,加工成基础数据,然后此基础上做各种主题模型,通常是固定报表的方式。这类应用我们可以在资源管理层上动态分配逻辑集群,来做批处理业务。第二类是Operational data warehouse,即一个实时处理的仓库,它会进行实时的采集,统计分析,我们可以通过流技术来构造实时处理仓库。第三种是Context Independent warehouse,是一个上下文无关联的数据仓库,它在即使不知道schema的情况下也可以通过数据挖掘的方式发现数据之间的关联关系,隐藏的联系和模式,这里就可以通过建立一个逻辑的R语言集群帮用户进行分布式计算。第四,同时也演变出一种新的模式就是交互式数据分析,它通常是一个集市,可以把数据装载到内存当中或者SSD当中做高速的数据分析,同时外面也对接着报表工具。Gartner认为这四种运用场景成为了现代数据仓库演变的方向,随着Hadoop技术的广泛应用,这四种应用模式中,传统的数据仓库应用最为广泛,其次是做交互数据分析的,在数据挖掘和数据探索这一方面开始有客户尝试用新的技术来进行构建应用场景。

 

在全新的数据仓库当中,需要四个特性,这对逻辑数据仓库来说是至关重要的。

 

 

第一点,必须要采用分布式计算。在数据库领域,计算模式已发生多次演变,从最早的单机版的计算,到并行计算,再到计算均分布化,但存储并没有分布,到最后计算和存储全部被分布,就如Hadoop这种全分布式的计算方式。这种方式主要有两方面的好处,首先扩展性比较好,实现完全横向扩展;其次Hadoop的容错性更高,可以重试失败的任务,这也是它扩展性好的一个原因所在。目前基本都是采用数据加计算全分布式的方式。同时我们可以看到右图,是我们最新的报告,报告指出大型企业的数据仓库通常是在100T左右,中型企业通常在30T或以下,小型企业一般不会超过10T,更多的是5或6T。100T的TPC-DS是一个非常有技术挑战性的工作,而我们星环的SQL引擎完全能够轻松的处理100T的TPC-DS。再者,随着Hadoop技术的应用,客户的数量越来越大,有些客户单个的数量已经达到20PB,通过SQL引擎完全有能力来处理这么大的数据,这也证明了分布式计算已经可以取代原有的数据仓库,来做复杂的,大容量的数据分析。

 

 

第二点,就是我们刚刚提到的数据联邦技术,通过一个SQL引擎访问多种数据源。正如我们看到的这个产品架构图,SQL引擎下有个新的抽象层Stargate,它可以穿透到各个数据源,并且我们会给每一个数据源驱动,主要目的是为了把数据从数据源中拉到计算机当中,来进行分布式计算,同时也是为了把常见的数据源所具备的特性推到数据源中,减少数据的传输量。一推一拉,使得其性能表现的十分显著,对多重数据源进行交叉分析。在这一领域有两个流派,传统的数据厂商希望用自己的SQL引擎来覆盖Hadoop,把Hadoop隐藏在他们的引擎下面,这种方式没有把计算完全分布出来。而我们的策略是与传统数据厂商是完全相反的,我们利用Hadoop原生的SQL引擎来覆盖原来的关联数据,使原来的关联数据库能够与Hadoop作为同一种数据源来进行完全分布式的计算。这种方式会更符合未来的技术趋势,分布式计算,扩展性增强,未来逐渐使关联数据库被取代,成为Hadoop的方式。

 

 

第三点,它是一种支持混合工作负载的管理方式,能够对多个租户进行资源的配额,不能使用超过他所分配到的资源。同时也能实现资源共享,闲置资源分给其他客户。并且也能支持抢占,如果信率非常高的客户有很紧急的任务,就可以直接把低任务级的任务抢占,把资源分配到高一级的任务上,这需要调度器来实现,但条件尚不成熟。其次,它还能支持资源和数据的隔离性,使多个租户之间互不干扰。再者,它能把批处理任务和实时任务分开处理,对一些实时任务和短任务进行优化,具备支持多个用户多个部门多种混合复杂的应用场景。比如,有的客户建立的数据仓库有35个分行在使用它的平台,只能采用行政手段来惩罚相应的工作人员来加强管理,在新的技术手段下,我们可以为每一个客户创建逻辑集群,通过配额使他们的资源无法超过配额,从而不影响其他人。在这个领域同时也有几个流派,在去年的BDTC大会上,我们做出的预测认为有两种技术方向,一种是做资源管理,利用Docker实现它的隔离性,但并不具备通用性,预计在未来不会很受看好。另一种是Mesosphere创业公司开发的一种框架,在这个框架下可以运营Docker的应用,未来也可能支持Google的应用。这两种方向在去年并不确定,但我们也预计在未来会成为主流,很可能在明年这两种技术方向就会出现全方位的竞争PK,下面我们来分析一下他们的走向。

 

  

Mesosphere的技术路线采用Mesosphere资源框架,Hadoop的应用可以在上面运行,也希望在未来能够支持Docker。它的理念是把Mesosphere这个资源调度框架作为最底层,再在上面构造平台层。我认为,这种方式存在一些致命的弱点。第一个弱点,它不具备通用性,所有的大数据和数据库的框架都需要定制,需要改造,不够标准化。如果一项技术或者产品不具备通用化或者标准化,它的传播时速就会受到限制。第二个弱点在于隔离性太弱。它的大数据和数据库并没有用Docker来隔离,仍然是一种禁止的方式,所以资源的隔离性会非常差。这是它的两个致命弱点。

 

  

另外,利用Docker来做资源隔离,在平台上运行多种应用,我们星环科技在这方面也是做出巨大的投入,花费一年时间努力的开发该技术。这种技术对数据仓库的开发,甚至整个软件开发的模式发生重要的变化,目前,我们在做应用开发时,就已经不再采用以前的模式,我们把整个应用系统包括它的前端、中间件、数据库都完全变成微服务。应用系统都是有微服务的模块组建的,依靠依赖性让系统自动把应用打包集装,这种方式对现有的应用开发方式有非常重要的作用,极大地促进了应用迁移的便捷性。就如现在所看到的,我们星环所开发的技术,可以一键启动所有平台层的服务,包括数据库层,Hadoop等的服务,也包括应用层在内,都可以直接一键式上传进行部署,把一个服务在很短的时间内扩展到上万个服务。有了这样一个系统之后,我们可以轻易的建造有几万个容器组成的应用系统,在上面可以运行几千个应用,它的扩展性可以在几分钟之内扩展到上千容器的规模。同时,它的资源隔离性也很好,满足对多租户的要求,进行资源的隔离、共享、抢占。

 

 

第四点,它具备预测性分析的能力。在过去,特别是在大数据领域,很多人能够做出预测,但预测的准确率却都保持在低水平。这由两大方面原因造成,一方面是因为过去分析的数据都是采样数据,没有大规模的软件系统来存放数据,也无法对大的数据进行分析。另一方面是计算的模型过于简单,计算能力远远不够,无法进行复杂大规模的计算分析,这使得过去的预测都相当不准确。除此以外,做预测性分析还应具备三方面特征,要具有完成的工具。第一个工具就是要有完整的特征抽取的方式,从大量的数据当中找出特征。即使在今天拥有工具的条件下,也仍然需要人来识别这些特征,做特征的抽取。第二个是要有分布式机器学习的算法。目前,这种算法的数量仍然不够全面,我们需要有更完整的机器学习算法的列表。第三点是我们要有应用的工具来帮我们建造一个完整的机器学习算法的pipeline,从而更方便的做出分析。对我们而言,这个领域目前仍在初步的探索当中,国内外其他成功的案例也较少。现在,我们所尝试的方式是把R语言作为主打的机器学习、数据统计的语言,把R语言的算法自动变换,即所有的数据分析家不需要去学习一种新的语言,只需要用语言上的R就可以把新语言自动变换成执行计划。同样,我们还利用R语言连接SQL引擎,能够连接分布式机器学习算法,进行统一的数据分析。同时我们也提供简单的工具做数据的抽取,建造Pipeline,它是大数据要想成功的一个关键特性,也是数据仓库想要利用大数据作分析挖掘的所必不可少的。但这些仍然只是一个尝试,尚未得到大规模的应用。

 

今天我介绍了数据仓库的四大特性,也看到了数据仓库技术高速的演变,看到未来三年当中数据库以及数据仓库技术会发生的巨大变化。正如Gartner所预计的,我们的大部分企业客户会把数据仓库从以前的传统数据仓库转移到逻辑数据仓库中,Hadoop在其中会扮演非常重要的角色,很多客户也已经开始把Hadoop作为数据仓库的重要组成部分,甚至是最基础的数据平台,完全不用其他数据库。

 

 

我的演讲就到这里,谢谢大家。