返回 登录
18

Facebook和Vertica:一个MPP数据库的案例

我刚从中国出差回来,其间拜访了几个大型电信运营商客户,分享了近期HP Vertica在Facebook案例上的巨大成功。这些天,中国客户总是不断的问我两个问题:MPP数据的前景如何?Hadoop是否会成为分析领域一统天下的数据库?

从Facebook的案例看来,这是非常奇怪的两个问题。众所周知,Facebook一直是开源社区强有力的拥护者,特别是在Hadoop领域。但是,最近他们却选择了HP Vertica作为另一个核心的数据库以满足日益增长的分析需求,并且构建出了全球最大的用于生产的Vertica集群(大约300个节点,存储了大于6PB的数据量)。这件事情让我意识到,像Facebook这样的客户,自身是Hadoop的主要贡献者也是Hive的发明人(最流行的SQL-on-Hadoop数据库),拥有着最精明的程序员和几乎无尽的资源,但在可预见的未来,仍然需要Vertica这类的MPP数据库作为他们大数据技术栈的一部分。这个案例释放出的信号如此清晰而有力。显然,Facebook对上面两个问题的回答都是NO。与此同时,Facebook也将继续使用Hive/HBase和其他Hadoop技术来完成它们所擅长的任务,比如ETL、处理非结构化数据、复杂数据挖掘和深度分析。

那Facebook为什么会认为MPP数据库如此重要呢?事实上,在此之前Facebook已经使用了一段时间的EDW(Oracle Exadata数据量大约50TB),但是逐渐感觉到现有的EDW越来越不合适,完全无法跟上快速增长的数据量的需求,特别是在移动平台越来越被广泛应用的今天。Facebook想要借助于商用MPP数据库来构建一个低成本的强健的系统,一方面是改善数据安全,另一方面是看重其扩展性和性能。他们选择MPP数据库的主要原因可以归结为以下几点: • Facebook快速增长的分析需求 • Map/Reduce(Hive)太慢,而且大多数分析需求的安全性无法保证 • In-memory技术太贵,而且不成熟 • 当前SQL-on-Hadoop数据库不够好,太不成熟

Facebook一共邀请了4家数据库厂商(包括Exadata / GreenPlum / TeraData / Vertica),进行了两轮竞争性测试。HP Vertica是最终的胜利者,它的TCO(总体拥有成本)最低,管理便捷,即席查询性能十分优异。

近年来,许多SQL-on-Hadoop数据库不断涌现,包括开源的和商用的,比如Hive、Hadapt、Citus、Impala、Stinger和Apache Drill等等。它们使得Hadoop更像SQL,便于使用。但我的总体印象是,和市场上主流的MPP数据库(比如Vertica)相比,特别是在性能方面,它们还有很长的路要走。从各人的角度来看,你可能会争辩说这个差距正在缩小,并且预言未来很快会接近。

我有足够的理由相信,SQL-on-Hadoop阵营过于高估了开源SQL优化程序(比如PostgreSQL)在HDFS上的功效,又严重低估了构建一个企业级MPP数据库所要花费的时间和精力。这是因为,企业级MPP数据库的核心优化程序和执行引擎是需要经过多年真实应用和改进才能成熟,需要经历上百个(甚至上千个)客户的验证和上百万个场景的测试和优化。这个过程必然是基于实践的总结,而不仅仅是理论和概念。查询优化从根本上讲上是一个软件问题,用硬件堆砌来改善性能的粗糙手段具有非常多的局限性。正如“MapReduce and Parallel Databases: Friends or Foes?”的作者所言,智能软件(比如MPP数据库)在Hadoop和大数据时代仍然是个好选择,在未来很长的一段时间内MPP数据库有足够的空间和机会成长和繁荣。

原作者:Po Hong,HP Vertica高级售前工程师,在关系型数据库方面具有丰富的经验,比如Vertica、Neoview、Teradata 和 Oracle。

译者:万峰,HP软件集团销售顾问,致力于在中国西部推广先进的软件工程化实践方法和大数据技术。

评论