不同大数据分析的存储选择
目前市场上有两种类型的大数据分析方式——同步的和异步的,两种都有各自在存储容
量和特性上的要求。
近来大数据分析这个词正逐渐成为IT界流行的一个术语,以代指有关大数据本身的猜
想,通俗说来即成堆数据背后问题的答案。然而,如果我们能够从足够的数据点入手比对及
交叉分析,或许能帮助我们找到一些有用的数据,甚至可能帮助避免灾难。
问题是显而易见的,所有的分析都需要大量甚至海量的数据,这便给当今的IT管理人
员带来了更新的挑战,即如何捕获、存取、以及分析这些数据并将从中得到的分析用于后续
任务的执行?
大数据分析应用通常会使用例如网络流量、金融交易记录以及敏感数据来替代传统形式
的内容。数据本身的价值在于数据间的比对、关联或者引用。对大数据的分析通常会意味着
与大量的小数据对象打交道,而这些小数据对象往往对响应延时要求非常之高。
当前业界主要有两种大数据分析场景,而它们通常是根据数据处理的形式而区分:
在实时使用场景下,响应效率是最为关键的 ,因此大数据存储架构本身的设计需要满
足最小延时的功能。
同步,即实时的或者近乎于实时的;另外一种就是异步的方式,这种方式下,数据首先
会被获取,记录下来然后再用批处理进程进行分析。
同步分析
可以想到的近乎于实时的大数据分析的最早的例子就是超级市场里的工作人员是如何
统计消费者行为习惯以便于提供相应的优惠促销券的。事实上是,消费者购买行为计算很可
能在用户收银前就已经完成,但是概念本身是非常类似的。另外一个相关的例子是在线社交
网站可以通过访问用户的行为建立属于他们的行为数据库,这样就可以根据各自不同的消费
习惯提供不同的点对点广告植入。
在零售行业,一些大型商铺正开始在停车场对前来购物的消费者使用面部识别技术,这
样一旦他们路过或者经过对应的商铺与之相应的促销信息便随之而来。因此,在这样一类的
实时大数据分析场景中,速度是第一要素,故而大数据存储架构需要建设成为低延时的场景。
针对同步大数据分析的存储
实时分析应用通常会运行在例如NoSQL之类的数据库上,通常都能支持海量可扩展的
商用硬件上。Hadoop,从另一角度考虑,非常适合批量的数据处理,这种技术非常合适于
异步大数据分析。由于在很多场合下,存储本身会成为延时问题的瓶颈,那么固态存储设备
对于实时数据分析是很有帮助的。闪存存储可以以多种形式进行部署:作为传统存储磁盘阵
列的一层,以NAS系统的方式,再或者以应用服务器本身的方式都可以实现。
这种服务器端的闪存实施方式广受用户欢迎,之所以这样是由于它能够实现最低程度的
延时(因该方式下的存储最为接近CPU),并且提供了很灵活的容量选择,几百GB容量
就可以实现。SAS/SATA接口的固态硬盘本身就是个选择,但是近来我们看到PCIe板卡为
接口的固态设备逐渐成了性能应用(比如实时分析)的标准,因为相对于前者,其延时更低。
如今,业界有许多提供PCIe闪存存储的公司,包括Fusion-io、LSI、Micron Technology、
SanDisk、sTec(现在是HGST的一部分,作为Western Digital的一个部门)、Violin Memory
以及Virident (也被Western Digital收购)。其它所有主流服务器及存储厂商们也都提供PCIe
解决方案,大多数是与这些公司通过了OEM协议。
尽管PCIe卡最大容量已经近乎于10 TB,但仍无法满足用户的需求,因此一个共享的
存储资源池也是需要考虑的。一个解决方案是使用Virident的FlashMAX Connect software,
这种软件可以实现将PCIe卡的资源通过服务器上的InfiniBand,进行资源池化。
这对扩展闪存容量会非常有帮助,尤其是对于那些PCIe插槽不足的服务器或者需要使
用VMware vSphere的Storage vMotion功能的时候。通过在不同服务器之间实现闪存的池化,
这些解决方案可以提供冗余以及高可用性方面的支持。
另外一个选择是通过InfiniBand、光纤通道或者甚至PCIe的连接方式使用全闪存阵列。
全闪存阵列的容量从10 TB到100 TB之间,可以以模块的方式进行扩容。以全闪存阵列这
类的高端解决方案可以提供至少100万IOPS,相对应到百万微秒级别。大多数主流的存储
厂商都有相应的全闪存阵列类别,除了IBM对Texas Memory的收购,小厂商都有类似的产
品并提供了更多的选择,他们中有Kaminario、Nimbus Data Systems、Pure Storage、Tegile、
即将被思科收购的Whiptail以及Violin Memory。
异步大数据分析
异步处理的大数据分析中遵守了捕获、存储加分析的流程,过程中数据由传感器、网页
服务器、销售终端、移动设备等获取,之后再存储到相应设备上,之后再进行分析。由于这
些类型的分析都是通过传统的关系型数据库管理系统(RDBMS)进行的,数据形式都需要转
换或者转型成为RDBMS能够使用的结构类型,例如行或者列的形式,并且需要和其它的数
据相连续。