不同Hadoop上的SQL数据库引擎如何适配BI工作

简介:

不同Hadoop上的SQL数据库引擎如何适配BI工作?

Hadoop上的SQL引擎Impala是一种新型查询系统基准,发现Spark和Hive在BI的工作负载中有自己的优势与弱势。

根据最新的基准,三个主要的SQL-on-Hadoop引擎,Apache Impala 2.3, Apache Spark 1.6 和Apache Hive 1.2,都有各自独特的优势和劣势,这令他们能很好的适应一些BI用例,而不是其他智能。

“一个引擎是无法满足所有需求的”,Dave Mariani,大规模AtScale的CEO和创始人,AtScale是一个专门在hadoop上实现BI的创新企业。“我们已经完成了布置,对于我们的客户而言这是多个引擎的补充。”

关于在Hadoop基础上的商业智能,AtScale帮助技术评估者选择最好的SQL –on-Hadoop技术,以帮助他们完成BI用例。AtScale测试团队使用星型架构基准(SSB)数据集,基于广泛使用的TPC-H数据(TPC- H是事务处理性能委员会公布的一套针对数据库决策支持能力的测试基准),将其进行修改使之更加 精确的表现一个面向BI的数据布局。数据集允许数据团队测试大型表的查询:在线订购表含有接近6百万行,大型客户表含有超过十亿行。

SQL-on-Hadoop引擎有不同的“甜区”工作负载

Mariani解释AtScale根据三个关键要求评价SQL-on-Hadoop引擎,以及它们的适应度是否能满足BI工作负载。

在大数据上执行。SQL-on-Hadoop引擎必须能够连续不断的分析十亿百亿行数据,并且没有生成错误,对命令的反应时间是10s或者是100s。

在小数据上速度快。引擎需要传递相互表现到已知查询模式,因此,

SQL-on-Hadoop引擎在处理小数据时,不超过几秒钟就能将结果返回。(小数据是指有着成千上百万的命令行的数据)。

对用户来说是稳定的。企业级BI用户的基础是由成百上千的数据工作人员组成。SQL-on-Hadoop引擎必须在高度并行分析的工作负载中运行可靠。

Mariani领导团队为雅虎的BI创建了可能是世界上最大的在线分层分析!他相信这三个标准是基本要求的代表,是企业在Hadoop上实现BI时都会遇到的。这个标准,是测试团队和大量行业企业合作得出的,包括金融服务,医疗,零售,电信等。

“我们使用了真实世界的的经验去形成文档,每一个技术评估者可以将其作为是评估流程的一部分”。Josh Klahr补充,AtScale.生产部门副总裁。

测试团队发现三个引擎都通过了测试,足够稳定去支持BI工作负载,但是一个引擎不能满足所有需求。每个引擎都有自己的“甜区”,企业有可能去寻找所有引擎的混合用法,他们相信这有可能最适合他们的目标。

当Hive在逐渐思考SQL-on-Hadoop的默认值时,它将基准中引擎运行最慢的情况放置一边,令其不能很好的配合相互查询。

“如果你使用Hive Tez作为你的相互查询引擎,你能做到的最佳是2.4秒”。Mariani 说。

但是它可能缓慢,Hive也是三个引擎中最稳定的,在多个查询类型中有着最好的连贯性。

“Hive Tez就像乌龟。”. Mariani 说,“它总是能完成竞赛,但是不是在壮观,迅速的时尚下。但是它是最可靠的。”

Impala和Spark,从利益方面来说,在处理小数据集时,他们是最好的。Impala会在大量的工作负载中覆盖了Spark,但是 Mariani提到Spark1.6相比Spark1.5有了巨大的性能改变,他希望Spark能继续保持这样的发展趋势,因为Spark已经划出一块大的开源社区,关注着它的发展。数据管理公司云纪元公司(Cloudera)最近计划捐赠Impala给Apache软件基金会,这可以为其发展增加势头。

现在,Impala是用例的王者,它需要大量的用户

“Impala在并发上真的很棒,” Mariani 说,“如果你打算拥有一大堆用户,让他们去使用小的快速的查询,Impala相比Spark是更好的选择。”

“如果速度不是最重要的,但是稳定性和可靠性很重要,我会选择使用Hive Tez作为我的数据管线引擎”,他补充道,“对于那些需要大批处理的工作负载,我会选择Hive Tez。如果我想要我的BI用户接入我的数据仓库,我会使用Spark或者Impala。”

Mariani 提到,虽然团队不能把其他引擎作为基准,如Apache Drill或者 Apache Presto,但是他们会在下次尝试。

他说,“你永远不知道引擎与引擎之间,谁将是可以作为赌注的更好的马。”


文作者:Optimus Prime

来源:51CTO

相关文章
|
4天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
15天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
90 0
|
1月前
|
SQL 安全 数据库
SQL-Server 数据库部署
SQL-Server 数据库部署
64 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
66 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
15天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
88 6
|
1月前
|
SQL 关系型数据库 MySQL
使用SQL语句创建数据库:一步步指南
使用SQL语句创建数据库:一步步指南
118 0
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句

热门文章

最新文章