数据仓库的对策及阶段;(3)实现大数据内存数据仓库的几个阶段。现笔者将此演讲整理至此,以飨读者,希望给从事数据库领域的开发者有所启迪。本文是下篇,主要谈谈实现大数据内存数据仓库的几个阶段。
柏睿数据董事长兼CTO刘睿民曾分享过《海量并行(MPP)内存数据仓库技术发展趋势及实现探讨》的主题演讲,内容主要包括以下几点:(1)大数据的问题及解决方案;(2)大数据内存数据仓库的对策及阶段;(3)实现大数据内存数据仓库的几个阶段。现笔者将此演讲整理至此,以飨读者,希望给从事数据库领域的开发者有所启迪。本文是下篇,主要谈谈实现大数据内存数据仓库的几个阶段。
大数据迁移方案
这个其实可以从整个图来看。下层的原数据管理和前端大家看到的是使用报表的人,而当中会有物理的基于内存的数据网格去做数据分发,还有一些数据在内存里面的整理。还有现有集中式的数据仓库。这种结构没有办法横向扩展,就必须把当中提出的数据分割出来,把一些实时流数据分割出来。这是我们做的整体的试图,不是今天已经达到这个了目标。其中会有实时流数据、实时处理、还有实时非结构化的数据提示,还有包括批处理的应用。
实现的过程就是,分层和让数据流动起来。分层就是把数据分为冷数据,温数据,和热数据。热数据放在内存处理,数据库的维表和索引表也放在内存中。
温数据就是,在近期常用的数据。譬如,把整周的数据放在闪存盘内,内存可是随时调用。热数据基本就放当天的数据。我们有用户一周的增量是30TB,我们的建议就是20%放内存,其他放闪存盘备查。而大量Map-Reduce完后的原始数据就甩进HDFS去。
这样,这张图就是我们认为的比较完美的大数据处理系统的全貌。
大数据处理系统全貌
数据集市,bigSQL和MR批处理基本都可以在内存中跑,关键是看任务的轻重缓急虚拟化的Hadoop。
我们实现的手段是把Hadoop进行虚拟化。我们的基本目标就是及时快速部署Hadoop的数据集群,允许做混合负载,通过虚拟机去做隔离,然后提供多租户的特性。还有通过虚拟拓扑来优化数据处理性能,同时,通过Hadoop的冗余性的特性,虚拟拓扑也提高了平台的稳定性。
虚拟化的一个关键就是把不必要的部件卸掉,充分利用虚拟化可伸缩的扩展性能,依靠高可靠性来保护关键应用,比如说Hadoop的Name Node和Job Tracker是关键的两个服务。资源控制和共享中,比如在任务调度和内存的充分利用中,因为要把MPP架构中的内存变成一个统一应用的内存空间,每一个节点上的内存空间可能是128G,现在有一些用户在每一个节点上是512G的内存、32个节点,这样的话差不多用户有16T的内存可以用来操作数据库表。
对这个负载做优先级的控制,尤其是在混合环境中,既可以操纵数据的更新和增删改,同时又可以去做它的分析。
统一的分析云经过极大的简化,创建了单一硬件支撑的基础架构,快速简单的环境控制。一个优点就是优化了的共享环境和拥有了更高的利用率,可伸缩的资源能够快速的急需提供资源访问。
这当中提供就是通过虚拟化的方式由Hadoop在内存里形成基于统一的分析云。基于此硬件架构,当中虚拟出来的基本上有Hadoop集群、NoSQL集群,还有决策支持的集群。
我们从老的数据仓库----图中左边就是---传统的数据仓库的方式,下层是数据仓库,做数据抽取,到仓库里面,变成了新的数据仓库,从物理上不会再见到的被分割开的一个Data Mart,刚才提到的类似150个Data mart物理存在,这个Data Mart之间的数据不能混合用,数据不能流动起来。
第二,这之间的负载是不能够继续做资源调节。我们用到的几个关键技术,一个是海量并行的架构,还有一个是基于内存分区的数据提示技术,还有就是海量并行的内存计算---它既兼容了结构化的数据计算,也兼容了非结构化、半结构化的数据处理,通过虚拟化在内存里面做云,性能能够得到提高,能够急剧提高资源访问的速度。通过使用固态内存,在内存底下提供固态硬盘,使得内存和廉价的磁盘间有个过渡,大量温数据可以直接被用于决策。
这是个关于数据从内存,到固态硬盘,到磁盘的映射关系。
这是一个在气象里做的大数据应用场景案例。原来是用高性能计算机去做运算,我们现在把它完全转变成一个基于内存的数据仓库方式去做气象大数据的模拟。
之前的基于并行文件系统的计算被基于内存的Map-Reduce替代掉了,从而是速度成倍的提升上去。
主流大数据平台对比
这是一个现有大数据平台的比较。一些主流的大数据平台,包括一些比较好的开源平台。
后面简单讲一下基于分析的云,我们主要是以一体机的形式出现的。里面包含了:大容量索引、整合的文本分析;通过HDFS用户管理工具及查询工具来提高可用性;企业级功能我们会提供存储监控,任务调度和一些安全机制。文本存储是基于事务性存储的库里边,对用户来说不用考虑Schema。通过自己的优化,平时的经验去做性能的调优,我们更多是的通过类似于Schema-Free解决一些实际性能调优的问题。这是我们现在正在做的一些工作。
下一阶段我们要解决流的数据分析。我们认为以后的数据不应该落地,而是直接落在内存里面----数据从交换机下来以后应该直接落在内存里面。
但要保证内存足够大,原先的估计是现在10T,明年是20T;但现实当中今年已经见到20TB内存的需求了。针对实时进入内存的数据执行实时的流式分析查询,每秒以GB的流数据对其进行分析的性能,能提供毫秒级的反映---这是我们现在正在第二阶段计划要做的。
现在的规划是以SQLWindowing的方式,结合算法库的整合。使得在某个片段的数据用算法库进行匹配运算,或形成一定的规则。
这个类似大型机架构的结合的我们现有的MPP内存数据网格,MPP内存数据仓库,以及虚拟化隔离的构想是我们的目标。这其中混合负载会是一个难点。
我们的整体架构,体现出来就是这样一个产品:内存计算、MPP数据仓库、下层是固态硬盘。还有保证的每一个点到多点之间的数据传输必须是在规定的延时之内,数据必须到另外一个点,我们也花了很多工夫,抛弃了原来MPI的架构,重新基于内存全拷贝的方式做分表、做优化、消息的路由优化等等做这些工作。
目的是为了阶段III打下好的基础,因为节点数一旦超过300后,节点间的数据传输会成为一个巨大的问题,这样的问题相信很多做过高性能计算的人有体验。所以可保证的数据传输是将来大数据平台会面临的瓶颈。