大数据探讨:如何整理1700亿条Twitter发布信息?
随着社交网络蒸蒸日上,美国国会图书馆不得不面对达到133TB之巨的Twitter发布信息文件;好在经过实践,他们已经找到了管理此类数据的办法。
截至目前,美国国会图书馆所保存的Twitter信息数量已达到1700亿条、存储文件体积更到达133TB--由于每一条信息都已经在这套社交网络中分享及转载,图书馆的技术团队需要想办法为用户拿出切实可行的检索方案。
在现阶段的项目报告中,图书馆管理人员指出目前市场上提供的此类大数据管理工具无法解决他们的实际困难。"很显然,现有技术还只能满足奖学金信息等规模化数据集的访问需求,而在创建及发布此类数据方面则表现乏力,"馆方表示。"由于此类任务的复杂性及对资源的极高要求,私营部门尚无法拿出具备合理性价比的商业方案。"
如果私营企业都难以搞定大数据管理工作,那么预算拮据、全靠*资金支持的非营利性机构--包括全球最大的图书馆在内--又该如何解决这一难题?要拿出一套实用、经济、便捷且有能力处理1700亿条Twitter信息的索引系统无异于痴人说梦。
Twitter曾签署一份协议,允许美国国会图书馆访问该社交媒体网站中所发布的全部更新信息。馆方官员坦言,他们必须建立一套帮助研究人员访问社交平台数据的系统,因为随着网络化交流趋势的不断普及,以期刊及出版物为代表的传统沟通方式已经被逐渐取代。
在Twitter刚刚诞生的2006年到2010年间,首批数据转储文件为20TB,其中囊括了210亿条Twitter信息(包括用户当前位置及消息描述等元数据)。最近,馆方刚刚迎来第二批转储数据--总体而言,这部分副本压缩文件总体积为133.2TB。在此之后,图书馆将与Gnip公司展开合作,以小时为单位收集全部Twitter发布信息。2011年2月公布的统计数字显示,当时每天经由Twitter发布的信息约为1.4亿条;而到去年10月,这一数字已经增长到约5亿条。
研究人员强烈要求国会图书馆尽快开放数据访问功能--馆方称已经接到超过四百次此类请求。该项目由图书馆与Twitter双方并行实施,将为用户提供Twitter使用的历史记录,能够逐项列出他们通过账户发布过的每条信息。
美国国会图书馆在大数据管理方面算得上经验丰富:根据工作人员的说法,馆方自2000年开始就一直在为*网站进行数据归档整理工作,数据总量超过300TB。然而Twitter的出现令归档工作陷入僵局,因为馆方实在找不到合适的办法保证信息易于搜索。如果继续使用馆方长期以来一直所倚仗的磁带存储方案,那么仅查询一条2006到2010之间的Twitter信息就需要耗费最多24个小时--而这批转储数据还仅占数据总量的八分之一。"Twitter信息之所以难于整理,一方面是由于数据量过于庞大,另一方面则是因为每天都会有新数据不断加入进来,而这种增长速度仍在不断提升,"官方指出。"此外,Twitter信息的种类也越来越多样。普通Twiiter信息、利用软件客户端发出的自动回复信息、手动回复信息、包含链接或者图片的信息等等,这一切让我们无从下手。"
寻找解决方案的道路是曲折的。国会图书馆已经开始考虑分布式及并行计算方案,但这两类系统实在太过昂贵。"要想真正实现搜索时间的显著降低,我们需要构建起由数百乃至数千台服务器组成的庞大基础设施。这对于我们这种毫无商业收益的机构来说成本过高、根本不切实际。"
那么馆方到底该如何应对?大数据专家们给出了一系列参考方案。就国会图书馆的情况而言,技术团队也许最好进行分类处理的方式,即利用一款工具处理数据存储、一款工具负责检索工作、另一款则用于回应查询请求,Mark Phillips指出。他既在Basho担任社区及开发推广主管,同时也是开源数据库工具Raik的创始人(该工具在键-值存储方面便利而极具可扩展性)。
大数据管理工具已经构建起欣欣向荣的新兴行业,用户可以根据不同的使用需求与预期成本选择专有软件或者开源方案。国会图书馆的技术人员所面临的最大问题在于,他们该如何开始整套系统的创建和管理工作。如果馆方希望走开源的道路,那么可选的数据库创建及管理工具可谓百花齐放--从Hadoop集群到专门针对高输入/输出读写操作的Greenplum数据库可谓应有尽有。二者还能够与Apache Solar--一款开源搜索工具--加以整合。开源为开发者们指明了一条免费获取源代码的光明道路,能够在商业硬件上构建起理想中的系统成品,然而采用开源也意味着我们需要在后端开发工作中投入大量人力物力。当然,国会图书馆也完全可以走更昂贵但更省心的专有软件道路,从甲骨文或者SAP这些业界巨头那里直接采购数据库产品。
不过无论采取哪种方式,Twitter项目中那硕大无朋的数据总量仍然难以攻克。不过Phillips的态度给了我们一定信心。他指出,虽然Twitter目前的数据量已经达到133TB且仍处于快速增长之中,但Basho公司已经接触过数据量达到PB级别的客户,并且在自己的平台上顺利完成了任务。只要国会图书馆能够追踪并总结出数据库容量每个月或每个季度的增长幅度,并根据结果为数据存储配备充足的硬件资源,那么Basho的数据库软件将有能力解决馆方的难题。
那么使用云方案可不可行呢?从理论上讲,国会图书馆可以采用以Amazon Web Services为代表的公共云资源保存这些数据,而且随着Twitter信息总量的不断增长,AWS会自动处理必要的硬件扩容工作。然而在Basho公司工程师Seth Thomas看来,这种方案的长期性价比值得商榷。由于馆方显然打算永久保存这些数据,所以混合式架构可能更具经济效益。也许更好的办法是将数据保存在本地,然后利用云服务实现分析功能。如此一来,馆方只需根据搜索量为响应请求所投入的动态资源支付费用即可,而终端系统也只需处理与请求量相对应的工作负载。
无论如何,国会图书馆已经下决心将这些Twitter信息纳入检索体系。而身为普通用户,我们要注意的则是--只要更新Twitter,信息就会被记录下来。