Greenplum Pivotal HD结合了SQL和Hadoop的优势
EMC Greenplum宣布了一个新的Hadoop发行版本—— Pivotal HD,其中包含一个完全运行于HDFS之上的MPP数据库,兼容SQL,而且速度“比Hive快数百倍”。
Pivotal HD支持标准Hadoop发型版本的常用特性(包括HDFS、Pig、Hive、Mahout和Map-Reduce等),但又加入了一些其他的组件,具体如下面结构图所示:
Pivotal的主要组件是 HAWQ,这是一个MPP(Massively Parallel Processing)关系数据库,借助一种动态流水线机制直接运行于Hadoop中的HDFS之上,其特性包括:
- 兼容SQL——支持各个版本的SQL,包括SQL92、SQL99和SQL 2003 OLAP等。百分之百兼容PostgreSQL 8.2。
- 面向行或面向列的数据存储。
- 查询优化器——查询可以运行于成千上万个节点上。
- 完全兼容ODBC/JDBC。
- 交互式查询——大数据集上的复杂查询可以以秒级或次秒级的速度解决。
- 数据管理——提供了表统计和表安全等功能。
- 支持存储在HDFS、Hive、HBase、Avro、ProtoBuf、分隔的文本和序列化文件中的数据。
- 深度分析——包含了数据挖掘和机器学习算法。
Greenplum的高级技术总监Gavin Sherry做了一个演示(见该 视频的42分42秒),在60个节点组成的HDFS集群上,有总量达几个TB的10亿行数据,下列SQL语句可以在13秒内执行完,这提供了接近实时的能力:
SELECT gender, count (*)
FROM retail.order JOIN customers ON retail.order.customer_ID = customers.customer_ID
GROUP BY gender;
据EMC Greenplum 的解决方案架构师 Donald Miner介绍,“ HAWQ比Hive快数百倍”,下图是Greenplum提供的基准测试结果( PDF):
HAWQ能够在“次秒级别内”解决查询问题,“同时做到了在同一引擎内支持规模更大的数据集和完整的SQL表达能力”。Miner解释了这是如何做到的:
我们有所谓的“分段服务器(segment server)”来管理每个表的一个分片。集群中的每个数据节点上会运行一些分段服务器。不过这种数据分片是完全保存在HDFS内的。有一个“主节点”负责存储顶层元数据、构建查询计划并将节点本地的查询推送到分段服务器上。
在查询启动时,数据将从HDFS中读出并加载到HAWQ执行引擎中。HAWQ遵循MPP架构,不同于将数据溢出到磁盘上和在磁盘上建立检查点(如MapReduce),它会让数据流过流水线的不同阶段。另外,分段服务器是一直运行的,所以不存在启动时间。
Pivotal HD有三个版本( PDF):企业版、数据库服务版和用于评估的社区版。
查看英文原文: Greenplum Pivotal HD Combines the Strengths of SQL and Hadoop