存储 频道

EMC讲解Hawq SQL:左手Hive右手Impala

  【IT168 资讯】EMC公司Pivotal Initiative部门上周宣布了全新的Hadoop发行版——Pivotal HD,此举一出旋即引发热议。该方案绝非普通的Hadoop发行版,而是一款将Greenplum数据库并行核心加以重写、借以将Hadoop分布式文件系统(简称HDFS)改造为流畅SQL的高级工具。

  正如我们之前讨论过的,Pivotal HD将成为Hawq项目的一部分,使其作为SQL数据库层运行于HDFS基础之上而非通过NoSQL数据存储取代HDFS。

  Hawq层如何运作,它的速度又有多快?El Reg网站出席了由Greenplum数据库首席架构师Gavin Sherry带来的演讲。作为Hawq数据库层开发领域的先驱者,他首先为听众讲解了项目的一些细节信息;而Pivotal HD产品经理Josh Klahr则展示了EMC公司的最新Hadoop发行版以及Hawq插件。

EMC讲解Hawq SQL:左手Hive右手Impala
▲EMC数据库首席架构师Gavin Sherry

  Sherry首先提醒大家称,Hawq是一款符合ANSI(即美国国家标准学会)标准规范的SQL方案,也就是说其它任何SQL版本所能支持的图形类工具(例如Tableau)以及EMC公司自家的Chorus管理工具与查询面板都能为其服务。他同时指出,大家也可以通过JDBC或ODBC对其加以查询,利用Ruby、Python、Scala、Clojure或者其它语言进行调用,甚至在SQL控制台内部对其开展攻击——Sherry本人还在演讲中专门做了一番演示。

  我们还可以通过运行于Hawq解析器中的SQL查询指令进行操作,如下图所示:

EMC讲解Hawq SQL:左手Hive右手Impala
▲Hawq数据库层会对SQL查询加以解析并最终作用于HDFS

  “一旦查询请求出现,我们会对它进行解析并生成解析树,我的表述有点书呆子气,请原谅,”Sherry解释道。“接下来发生的情况 非常特殊。我们获取生成的解析树并从通用目录服务中获取元数据。我们会根据底层Hadoop集群的运行状态获取成本模型,这套模型了解存储资源性能、掌握各项数据的访问成本以及数据的专有排列方式。根据上述信息,它会发送一套资源模型,并以此为指导生成查询执行规划。”

  如下图所示:

EMC讲解Hawq SQL:左手Hive右手Impala
▲SQL查询进入能与HDFS顺利交互的并行优化器

  “整个流程展示了一项重大的内容,”Sherry继续说道。“这项内容代表着计算机科学在过去四十年中的研究成果以及今时今日我们所能借助的技术高度。整套执行规划正是Hadoop集群应用领域的非常好的方案。这套基于成本模型的优化方案非常难得,事实上整个行业还没有人从这个角度使用Hadoop、了解以Hadoop为基础的查询引擎——我们做的是一项开创性的工作。”

  Sherry指出,在这套特殊执行规划当中只包含有一套双向连接的数据库表格,这对于Hawq查询优化器而言算是相对简单的任务。“我们已经在尝试20向、30向乃至60向连接的优化器处理效果,”Sherry表示。

EMC讲解Hawq SQL:左手Hive右手Impala
▲查询执行器利用HDFS NameNode将工作内容传递至Hawq数据库的使用空间之中

  Sheryy表示,Hawq的秘密在于这套数据库层实际是一条动态传输途径,其中结合了Greenplum作为并行关系类数据库(主要作为PostgreSQL的替代方案)所准备的多项不同技术,而这些技术研发工作早在十年前Greenplum项目转型为独立公司时就已经开始了。

  动态传输途径算是一套专为查询请求打造的工作调度机制(与Hadoop中的NameNode及JobTracker有所区别),其作用是以最优方式对查询进行安排及部署。

  在Hadoop NameNode所引导的恰当数据块中加以执行之后,这些查询会返回至NameNode处,查询结果则被提交给发出SQL查询的软件。

  这种动态传输途径使Hawq在性能上获得了极其可观的优势,它所带来的SQL查询处理速度能够达到Hive等同样支持HDFS方案的十倍甚至六百倍。另外,如此规模的性能提升也成功将Hadoop从原本的批处理式系统转化为交互式系统。

0
相关文章