大数据因为它所蕴含的潜在价值,正在成为企业的隐形“金矿”。随着生产、运营、管理、监控、销售、客服等各个环节的数据不断累积和增长,以及用户数的不断上升,通过从庞大的数据中分析出相关模式及趋势,可以实现高效管理、精准营销,成为企业打开这一“金矿”的钥匙。然而传统的IT基础架构和数据管理分析方法已经不能适应大数据的快速增长。大数据的爆发是我们在信息化和社会发展中遇到的棘手问题,需要我们采用新的数据管理模式,研究和发展新一代的信息技术才能解决。我们把大数据问题归纳为图3-1所示的几类。
图3-1 大数据问题分类
传统的关系型数据库管理系统(RDBMS)一般都采用集中式的存储和处理,没有采用分布式架构,在很多大型企业中的配置往往都是基于IOE (IBM服务器、Oracle数据库、EMC存储)。在这种典型配置中单台服务器的配置通常都很高,可以多达几十个CPU核,内存也能达到上百GB;数据库的存储放在高速大容量的磁阵上,存储空间可达TB级。这种配置对于传统的信息管理系统(MIS)来说是可以满足需求的,然而面对不断增长的数据量和动态数据使用场景,这种集中式的处理方式就日益成为瓶颈,尤其是在速度响应方面捉襟见肘。在面对大数据量的导入导出、统计分析、检索查询方面,由于依赖于集中式的数据存储和索引,性能随着数据量的增长而急速下降,对于需要实时响应的统计及查询场景更是无能为力。比如在物联网中,传感器的数据可以达几十亿条,对这些数据需要进行实时入库、查询及分析,传统的RDBMS就不再适合了。
RDMBS对于结构化的、固定模式的数据,已经形成了相当成熟的存储、查询、统计处理方式。随着物联网、互联网及移动通信网络的飞速发展,数据的格式及种类在不断变化和发展。在智能交通领域,所涉及的数据可能包含文本、日志、图片、视频、矢量地图等来自不同数据采集监控源的不同种类的数据。这些数据的格式通常都不是固定的,如果采用结构化的存储模式将很难应对不断变化的需求。因此对于这些种类各异的多源异构数据,需要采用不同的数据和存储处理模式,结合结构化和非结构化数据存储。在整体的数据管理模式和架构上,也需要采用新型的分布式文件系统及分布式NoSQL数据库架构,才能适应大数据量及变化的结构。
如前所述,大数据由于总体的体量巨大,采用集中式的存储,在速度、响应方面都存在问题。当数据量越来越大,并发读写量也越来越大时,集中式的文件系统或单数据库操作将成为致命的性能瓶颈,毕竟单台计算机的承受力是有限的。我们可以采用线性扩展的架构和方式,把数据的压力分散到很多台计算机上,直到可以承受,这样就可以根据数据量和并发量来动态增加和减少文件或数据库服务器,实现线性扩展。
在数据的存储方面,需要采用分布式可扩展的架构,比如大家所熟知的Hadoop文件系统 [23] 和HBase数据库 [25] 。同时在数据的处理方面,也需要采用分布式的架构,把数据处理任务分配到很多计算节点上,还需要考虑数据存放节点和计算节点之间的位置相关性。在计算领域中,资源分配、任务分配实际上是一个任务调度问题。其主要任务是根据当前集群中各个节点上的资源(包括CPU、内存、存储空间和网络资源等)的占用情况,以及各个用户作业服务质量要求,在资源和作业或者任务之间做出最优的匹配。由于用户对作业服务质量的要求是多样化的,同时资源的状态也在不断变化,因此,为分布式数据处理找到合适的资源是一个动态调度问题。
集中式的数据存储和处理,在硬件和软件选型时,采用的方式基本都是配置相当高的大型机或小型机服务器,以及访问速度快、保障性高的磁盘阵列,以保障数据处理性能。这些硬件设备的价格都非常昂贵,动辄高达数百万元,同时软件也经常是国外大厂商如Oracle、IBM、SAP、微软等的产品,对于服务器及数据库的维护也需要专业技术人员,投入及运维成本很高。在面对海量数据处理的挑战时,这些厂商也推出了形似庞然大物的“一体机”解决方案,如Oracle的Exadata、SAP的Hana等,通过把多服务器、大规模内存、闪存、高速网络等硬件进行堆叠,来缓解数据压力,然而在硬件成本上,更是大幅跳高,一般的企业很难承受。
新型的分布式存储架构、分布式数据库如HDFS、HBase、Cassandra [28] 、MongoDB [29] 等,由于大多采用去中心化的海量并行处理MPP架构,在数据处理上不存在集中处理和汇总的瓶颈,同时具备线性扩展能力,能有效地应对大数据的存储和处理问题。在软件架构上,也都实现了一些自管理、自恢复的机制,以面对大规模节点中容易出现的偶发故障,保障系统整体的健壮性,因此对每个节点的硬件配置要求并不高,甚至可以使用普通的PC作为服务器,在服务器成本上可以大大节省,在软件方面开源软件也占据非常大的价格优势。
当然,在谈及成本问题时,我们不能简单地进行硬件和软件的成本对比。要把原有的系统及应用迁移到新的分布式架构上,从底层平台到上层应用都需要做很大的调整。尤其是在数据库模式及应用编程接口方面,新型的NoSQL数据库与原来的RDBMS存在较大的差别,企业需要评估迁移及开发成本、周期及风险。除此之外,还需考虑服务、培训、运维方面的成本。但在总体趋势上,随着这些新型数据架构及产品的逐渐成熟与完善,以及一些商业运营公司基于开源基础为企业提供专业的数据库开发及咨询服务,新型的分布式、可扩展数据库模式必将在大数据浪潮中胜出,从成本到性能方面完胜传统的集中式大机模式。
大数据由于体量巨大,同时又在不断增长,因此单位数据的价值密度在不断降低。但同时大数据的整体价值在不断提高,大数据被类比为石油和黄金,因此从中可以发掘巨大的商业价值。要从海量数据中找到潜藏的模式,需要进行深度的数据挖掘和分析。大数据挖掘与传统的数据挖掘模式也存在较大的区别。传统的数据挖掘一般数据量较小,算法相对复杂,收敛速度慢。然而大数据的数据量巨大,在对数据的存储、清洗、ETL(抽取、转换、加载)方面都要求能够应对大数据量的需求和挑战,在很大程度上需要采用分布式并行处理的方式,比如Google、微软的搜索引擎,在对用户的搜索日志进行归档存储时,就需要多达几百台甚至上千台服务器同步工作,才能应付全球上亿用户的搜索行为。同时,在对数据进行挖掘时,也需要改造传统数据挖掘算法及底层处理架构,同样采用并行处理的方式才能对海量数据进行快速计算分析。Apache的Mahout [30] 项目就提供了一系列数据挖掘算法的并行实现。在很多应用场景中,甚至需要挖掘的结果能够实时反馈回来,这对系统提出了很大的挑战,因为数据挖掘算法通常需要较长的时间,尤其是在大数据量的情况下,可能需要结合大批量的离线处理和实时计算才可能满足需求。
数据挖掘的实际增效也是我们在进行大数据价值挖掘之前需要仔细评估的问题。并不见得所有的数据挖掘计划都能得到理想的结果。首先需要保障数据本身的真实性和全面性,如果所采集的信息本身噪声较大,或者一些关键性的数据没有被包含进来,那么所挖掘出来的价值规律也就大打折扣。其次要考虑价值挖掘的成本和收益,如果对挖掘项目投入的人力和物力、硬件和软件平台耗资巨大,项目周期也较长,而挖掘出来的信息对于企业生产决策、成本效益等方面的贡献不大,那么片面地相信和依赖数据挖掘的威力,也是不切实际和得不偿失的。
在大数据的存储及安全保障方面,大数据由于存在格式多变、体量巨大的特点,也带来了很多挑战。针对结构化数据,关系型数据库管理系统RDBMS经过几十年的发展,已经形成了一套完善的存储、访问、安全与备份控制体系。大数据的巨大体量,也对传统RDBMS造成了冲击,如前所述,集中式的数据存储和处理也在转向分布式并行处理。大数据更多的时候是非结构化数据,因此也衍生了许多分布式文件存储系统、分布式NoSQL数据库等来应对这类数据。然而这些新兴系统,在用户管理、数据访问权限、备份机制、安全控制等各方面还需要进一步完善。安全问题,如果简而言之,一是要保障数据不丢失,对海量的结构、非结构化数据,需要有合理的备份冗余机制,在任何情况下数据不能丢;二是要保障数据不被非法访问和窃取,只有对数据有访问权限的用户,才能看到数据,拿到数据。由于大量的非结构化数据可能需要不同的存储和访问机制,因此要形成对多源、多类型数据的统一安全访问控制机制,还是亟待解决的问题。大数据由于将更多更敏感的数据汇集在一起,对潜在攻击者的吸引力更大;若攻击者成功实施一次攻击,将能得到更多的信息,“性价比”更高,这些都使得大数据更易成为被攻击的目标。LinkedIn在2012年被曝650万用户账户密码泄露。雅虎遭到网络攻击,致使45万用户ID泄露。2011年12月,CSDN的安全系统遭到黑客攻击,600万用户的登录名、密码及邮箱遭到泄露。
与大数据紧密相关的还有隐私问题。由于物联网技术和互联网技术的飞速发展,与我们工作和生活相关的各类信息都被采集和存储下来,我们随时暴露在“第三只眼”下面。不管我们是在上网、打电话、发微博、发微信,还是在购物、旅游,我们的行为都随时被监控分析。对用户行为的深入分析和建模,可以更好地服务用户,实施精准营销,然而如果信息泄露或被滥用,则会直接侵犯用户的隐私,对用户形成恶劣的影响,甚至带来生命财产的损失。2006年,美国DVD租赁商Netflix公司举办了一个算法竞赛。该公司公布了大约来自50万用户的一亿条租赁记录,并且公开悬赏100万美元,举办一个软件设计大赛来提高他们的电影推荐系统的准确度,胜利的条件是把准确度提高10%。尽管该公司对数据进行了精心的匿名化处理,还是被一个用户认出来了,一个化名“无名氏”的未出柜的同性恋母亲起诉了Netflix公司,她来自保守的美国中西部。在美国的微博网站Twitter.com上面,很多用户习惯随时发布他们的位置和动态信息,结果有几家网站,如PleaseRobMe.com(请来抢劫我)、WeKnowYourHouse.com(我知道你的家),能够根据用户所发的信息,推测出用户不在家的时间,找到用户的准确家庭住址,甚至能找出房子的照片。他们的做法旨在提醒我们随时暴露在公众视线下,如果不培养安全和隐私意识,将会给自身带来灾难。目前世界上很多国家,包括中国,都在完善与数据使用及隐私相关的法律,以保护隐私信息不被滥用。
在我国的企业信息化建设过程中,普遍存在条块分割和信息孤岛的现象。不同行业之间的系统与数据几乎没有交集;同一行业,比如交通、社保系统内部等,也是按行政领域进行划分建设的,跨区域的信息交互和协同非常困难。严重的甚至在同一单位内,比如一些医院的信息系统建设,病历管理、病床信息、药品管理等子系统都是分立建设的,没有实现信息共享和互通。“智慧城市”是我国“十二五”信息化建设的重点,而“智慧城市”的根本,是要实现信息的互联互通和数据共享,基于数据融合实现智能化的电子政务、社会化管理和民生改善。因此在城市数字化的基础上,还要实现互联化,打通各行各业的数据接口,实现互联互通,在此之上才能实现智慧化。比如在城市应急管理方面,就需要交通、人口、公安、消防、医疗卫生等各个方面的数据和协助。当前美国联邦政府建立的数据共享平台(www.data.gov)、我国北京市政府数据资源网(www.bjdata.gov.cn)等都是朝着数据开放、数据共享有力的尝试。
为实现跨行业的数据整合,需要制定统一的数据标准、交换接口及共享协议,这样不同行业、不同部门、不同格式的数据才能基于一个统一的基础进行访问、交换和共享。对于数据访问,还需要制定细致的访问权限,规定什么样的用户在什么样的场景下,可以访问什么类型的数据。在大数据及云计算时代,不同行业、企业的数据可能存放在统一的平台和数据中心之上,需要对一些敏感信息进行保护,比如涉及企业商业机密及交易信息方面的数据,虽然是依托平台来进行处理的,但是除了企业自身的授权人员之外,要保证平台管理员及其他企业都不能访问此类数据。