文章讲的是不同SQL-on-Hadoop引擎怎样满足BI负载,如何让不同的 SQL-on-Hadoop 引擎满足BI工作负载根据新的基准,三个领先 SQL-on-Hadoop 引擎——ApacheImpala 2.3、 Apache Spark 1.6 和 Apache Hive 1.2,它们都有独特的优势和弱点,它们可能非常适合一些商业智能 (BI) 用例但是并不适合另一些。
AtScale创始人和首席执行官戴夫·马里亚尼表示:“现在其中任何一个引擎都不满足所有的要求,我们客户部署的时候,都是穿插多个引擎的。”目前,AtScale专攻对 Hadoop 的双启动。
基于Hadoop 的商业智能,AtScale 着手为他们的 BI 技术评估用例选择最佳的SQL-on- Hadoop 技术。AtScale 的测试团队使用星级架构基准 (SSB)的数据集,基于广泛使用的 TPCH 数据进行修改,以便找出更准确地表示典型的双向拉伸的数据布局。数据集允许测试团队跨越大表进行测试查询︰lineorder 表包含近 60 亿行,其中大客户表含超过 10 亿行。
SQL-on-Hadoop引擎有不同“甜蜜点”的工作负载
马里亚尼解释 AtScale 根据三个关键的要求来评估 SQL-on-Hadoop 引擎是否适合继续满足 BI 工作负载 ︰
1.对大数据的执行力。SQL-on- Hadoop 引擎必须能够不断分析几十亿或数万亿的数据行,而不会生成错误,生成订单的响应时间在10秒到100秒之间。
2.快速处理小数据。引擎需要对已知的查询模式提供交互式的性能,其中很重要的是,SQL-on- Hadoop 引擎返回小数据集 (几数以千计或数以百万计的行)结果时时间不超过几秒钟。
3.多用户稳定运行。企业 BI 用户基地由几百或甚至数千个数据工人组成。底层的 SQL-on- Hadoop 引擎必须在高并发分析工作负载下可靠地执行。
在雅虎领导建立了世界上最大 OLAP 多维数据集的马里尼亚表示:根据测试团队在金融服务、 医疗保健、 零售、 电信和其他行业一大批企业的测试结果,他相信这三个标准是做基于Hadoop的BI企业必须满足的基本要求。
AtScale 的产品管理副总裁Josh Klahr补充到:“我们给很多真实企业做了评价报告,其中每一个技术的计算器都作为其评价过程的一部分”。
最后测试团队发现三个引擎合作可以通过测试并足够稳定,能够支持 BI 工作负载,但单独一个引擎不适应所有的需要。每个引擎都有自己的"甜蜜点",企业很可能会发现混合使用所有的引擎才是最适合自己的。
虽然Hive一般认为是为SQL-on-Hadoop默认使用的,但是因为它较高的延迟性所以并不适合交互式查询。
马里亚尼说,"如果您的交互式查询引擎只使用Hive,那么等待2.4 秒就是你能做到的最好的情况"。
尽管Hive可能缓慢,但它却是最稳定的,并且可以跨越多个查询类型。
马里亚尼补充道:"Hive尽管缓慢,但它总是会完成了比赛。"
另一方面,Impala和Spark他们主要应用在较小的数据集的时候。Impala在负荷领域优于Spark,但马里安尼发现Spark 1.6 与Spark 1.5 相比性能有了巨大的改进,他预计Spark未来将在大型开源社区占有优势。Cloudera看重Impala未来发展的附加价值,最近向Apache 软件基金会提出了捐赠议案。
现在,Impala是大用户用例之首。
"Impala在并发方面的表现很卓越,"马里亚尼说。"如果你要有一大堆的小用户用例运行,需要快速查询,Impala会是比Spark更好的选择。”
"如果速度并不是一个优先考虑的事项,但这时稳定性和可靠性是我所需的,那么我会选择去选择Hive作为我的数据管道引擎,"他补充道。"对于需要大批处理工作负载,我会选择Hive。如果我想我的BI用户能访问到我的仓库,我会选择使用Spark或Impala。
马里亚尼指出,虽然现在没有基准引擎像 Apache Drill或者Apache Presto,但是很快会来到。
"你永远不会知道这其中谁会是黑马。"他说。
作者: 田晓旭
来源:IT168
原文链接:不同SQL-on-Hadoop引擎怎样满足BI负载