1.2.4 数据存储处理技术
1.数据处理方式
当前,根据数据处理的形式,人们把大数据分析的典型应用场景分为两种:
同步方式,即实时的或者近似实时的大数据分析;
异步方式,这种方式下,首先获取数据,然后再进行处理和分析。
可以想象,近似实时的大数据分析的最早例子就是,超市工作人员根据销售数据及时统计消费者行为习惯并提供相应的优惠促销券的。事实上,消费者购买行为的统计与计算很可能在用户付款前就已经完成。另外一个相关的例子是,在线社交网站可以通过访问用户的行为建立属于其个人的行为数据库,这样就可以根据每位消费者的消费习惯而有针对性地提供广告推送。
例如,医院急诊科会根据急救病人的当前状况,结合大数据系统中已经存在的被急救病人病历信息及身体状况,结合医疗系统类似病例的处置情况,快速实时分析出患者的病情、病况和危险程度,进而有针对性地快速施救。
在实时使用场景下,响应效率是最为关键的,因此大数据存储架构本身的设计需要满足最小延时的要求。
2.数据存储
(1)针对同步大数据分析的存储
大数据的实时分析应用通常会运行在例如 NoSQL 之类的数据库和能支持海量可扩展的商用硬件(例如云)上。另一方面,Hadoop非常合适于异步大数据分析。由于在很多场合下,存储本身的延时问题会成为瓶颈,那么固态存储设备对于实时数据分析是很有帮助的。闪存存储器(Flash Memory)可以以多种形式进行部署,例如作为传统存储磁盘阵列的一层;或采用NAS(Network Attached Storage,网络附属存储)方式;再或者以应用服务器本身的方式实现。
这种服务器端的闪存存储器架构方式因体积小、速度快、实施方便而广受用户欢迎。之所以这样,是由于它能够实现最低程度的延时(因该方式下的存储速率最为接近CPU总线频率),并且提供了很灵活的容量选择。1GB~10TB容量就可以实现。SAS接口或SATA接口的固态硬盘本身已经很强大,而PCIe接口的固态设备逐渐成了“高性能应用”的事实标准(比如实时分析),因为相对于前者,其延时更低。
如今,业界有许多提供PCIe闪存存储器的公司,包括Fusion-io、LSI、Micron Technology、SanDisk、sTec(现在是HGST的一部分,属于Western Digital公司)、Violin Memory以及Virident(也被Western Digital收购)。许多主流服务器及存储器生产厂商提供PCIe解决方案,大多数使用与上述公司兼容的OEM协议。
尽管PCIe单卡最大容量可达32TB,但仍无法满足用户的需求,因此可考虑使用共享的存储资源池。一个解决方案是使用Virident的FlashMAX Connect软件将PCIe卡连接的固态硬盘资源通过服务器上的InfiniBand,进行存储资源的池化。
这对扩展闪存容量会非常有帮助,尤其是对于那些 PCIe 插槽不足的服务器或者需要使用VMware vSphere的Storage vMotion功能的时候。通过在不同服务器之间实现闪存的池化,这些解决方案可以提供冗余以及高可用性方面的支持。
另外一个选择是通过InfiniBand、光纤通道或者甚至PCIe的连接方式使用全闪存的固态硬盘阵列(容量可达10 TB~100 TB),可以以模块的方式进行增减容量。以全闪存阵列构成的“高端解决方案”可以提供至少100万IOPS。
(2)针对异步大数据分析的存储架构
异步处理的大数据分析采用了“捕获+存储+分析”的流程,过程中数据首先由传感器、服务器、数据终端、移动设备等获取,之后再存储到相应设备上,再后进行处理和分析。由于这些类型的分析都是通过传统的关系型数据库管理系统(RDBMS)进行的,数据形式都需要转换或者转型成为RDBMS能够使用的结构类型,例如行表或者列表的形式,并且需要和其他的数据库相连续。
处理的过程称之为“提取、转换、加载”或者称为ETL(Extract-Transform-Load)。首先,将数据从源系统中提取处理,再将数据标准化处理且将数据发往相应的数据仓库等待进一步分析。在传统数据库环境中,这种ETL步骤相对直接,因为分析的对象往往是为人们熟知的金融报告、销售或者市场报表、企业资源规划等。然而在大数据环境下,ETL可能会变得相对复杂,因此转换过程对于不同类型的数据源之间处理方式是不同的。
当分析开始的时候,数据首先从数据仓储中会被提取出来,放进RDBMS里以产生需要的报告或者支撑相应的商业智能应用。在大数据分析的环节中,元数据以及经转换了的数据大都会被保存下来,因为可能在后面还需要再次转换。
3.Hadoop技术
Hadoop技术也被应用于存储架构,企业能够以较低的硬件成本与较高的灵活性,搭建属于自己的可扩展性、可靠性均较高的存储系统。Hadoop运行在集群各个节点上,每个节点都有自己的存储及计算资源,尤其是在面对数据处理任务时,其他节点会协调这些处理任务,并以分布式资源池的方式进行处理。Hadoop架构中的数据通常是以HDFS(分布式文件系统)文件形式存储。
Hadoop在大数据应用中广受欢迎得益于其自身在数据提取、转换和加载方面上的天然优势。Hadoop分布式架构,将处理引擎尽可能地靠近存储设施,特别适合于像ETL这样的批处理操作,因为这类操作的批处理结果可以直接转向数据存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务发送(Map)到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。
但是对于 Hadoop,特别是 Hadoop 分布式文件系统(HDFS)来说,数据至少需要三份以支持数据的高可用性。对于 TB 级别的数据来说,HDFS 看起来还是可行的,但当达到 PB 级别海量数据的时候,其带来的存储成本压力不可小觑。即便是可横向扩展存储亦不能减缓其压力。一些厂商选择了使用RAID技术实现卷级别的数据保护机制,而在系统级别则使用了“复制”的方式。对象存储技术可以提供面对大型环境的数据冗余问题的解决方案。
4.对象存储系统
用基于对象的存储架构替代分层存储架构极大地提升了可横向扩展存储的优势,具体的实现方式则是,以单一索引来关联灵活的数据对象。这将解决无限制扩展问题,从而提升了性能本身。对象存储系统包含了纠删码(Erasure Coding,EC)方案,极大提升了存储的使用效率。这样可不必依赖RAID或其他存储备份方案。
与HDFS或RAID机制不同,对象存储系统的纠删码方案以50%~60%的额外容量就能达到较好的数据保护效果。对于大数据存储系统,节省存储本是一件非常重要的贡献。可选的对象存储系统还有许多,例如 Caringo、DataDirect Networks Web Object Scaler、NetApp StorageGRID、Quantum Lattus以及OpenStack Swift和 Ceph等。
一些对象存储系统,比如Cleversafe,甚至可与Hadoop兼容。在这些项目的实施过程中,Hadoop软件组件可以运行在这些对象存储节点的CPU上,对象存储系统将替换存储节点的Hadoop分布式文件系统。
5.大数据存储的底线
大数据逐渐成为业界的热门话题,越来越多的企业相信它能助力企业走向成功。但是,大数据应用也会受到各方面的限制,主要体现在存储技术本身。传统存储系统在“超低延时响应”“实时大数据应用”或“海量数据的数据挖掘应用”等场景均会遇到瓶颈。为了保证大数据业务能正常运行,相应的存储系统需要足够快、可扩展并且性价比有优势。
对于“闪存解决方案”来说,不管是以服务器端“闪存卡”的形式还是以“全闪存阵列”的形式,都提供了一些对于高性能、低延时、大容量存储的替代解决方案。基于对象存储系统、带有擦写功能编程、可横向扩展架构的特性,为使用传统RAID等备份方式的存储结构提供了一种能具备更高效率和更低价格的选择。