HAWQ适应场景总结

推荐学习资料链接(比较完整):http://blog.csdn.net/wzy0623

大概从一到十八篇文章,这是第一篇:http://blog.csdn.net/wzy0623/article/details/55047696

最后总结如下:

1、OLAP(联机分析处理(On-Line Analytical Processing)领域,请选择HAWQ

原因:HAWQ和Hive及Impala性能相比,标准化TPCDS性能测试要快数倍。而且Hive和Impala支持SQL标准有限,很多TPCDS查询执行不了。

(注明:a、HAWQ官网宣传的TPCDS性能测试比较图,平均比Hive快4-50倍,比Impala快4.55倍,因未列出软硬件环境、数据模型和数据量,个人觉得这点真实性有待验证,觉得可能是某些sql查询上比Impala有优势,并非全部。

b、在99 个标准的TPC-DS queries测试中,Impala能完成62个,Hive完成60个,HAWQ能全部完成)

2、OLTP(联机事务处理(on-line transaction processing))领域,官网团队不推荐使用。

原因:hawq是针对OLAP进行优化的,是一个偏分析型的数据库,本质上更像一个 query engine。此领域个人推荐TiDB ,是一个可以用来做 OLTP 的分布式关系型数据库,擅长海量并发的查询和事务写入(毫秒级别)

3、如有整合外部数据需求,推荐使用HAWQ(PXF模块)

原因:能提供了访问HDFS上的Json文件、Hive、HBase外部数据的能力

4、如有过程语言编程需求(特别是习惯了编写存储过程的DBA人员),推荐使用HAWQ

原因:HAWQ是使用过的SQL-on-Hadoop解决方案中唯一支持过程化编程的(编写UDF的语言可以是SQL、C、Java、Perl、Python、R和pgSQL),Hive、SparkSQL、Impala都没有此功能。

5、 用HAWQ构建数据仓库比传统数仓有什么优势?

答复:

a、ETL:数据经过抽取、转换和装载(ETL)过程进入数据仓库系统,而HAWQ可以直接Register表当原生的内部表使用,省去了数据ETL的工作。HAWQ在Hadoop中支持AVRO、Parquet和本地HDFS文件格式。这在最大程度上减少了数据摄取期间对ETL的需求。

b、深度分析:以SQL需要的统计分析,因为它100%符合ANSI SQL规范,支持包含关联子查询、窗口函数、汇总与数据库、广泛的标量函数与聚合函数的功能。

c、机器学习:(支持开源MADLib机器学习库,如数据挖掘中的常用的矩阵、向量、聚类、回归、决策树等)

6、有关集群规模和数据性能

答复:官网用来测试的数据规模:30T,20个节点进行测试的;

1、线性可扩展:Hawq 2.0系统能够支持的并发查询数量,跟集群的计算节点数量呈线性关系:计算节点越多,系统能够支持的并发查询数量越多。为PB级SQL on Hadoop操作专门设计。

2、可弹性执行查询引擎和动态按需扩容。

使用tcp协议则hawq不能超过1000个segment节点,默认使用udp协议无此限制;能够快速为涉及超过50个关联表的高要求查询找到理想查询计划,可秒级添加节点。

7、比其他类似产品还有哪些主要特性?

答复:个人用到觉得可能重要的特性:

a、支持分区和多级分区;。分区表对性能有很大帮助,比如你只想访问最近一个月的数据,查询只需要扫描最近一个月数据所在分区。

b、支持多种压缩方法:snappy,gzip,quicklz,RLE等。

c、资源管理可以与外部资源管理器YARN集成;

你可能感兴趣的:(HAWQ适应场景总结)