Impala提升3~90倍查询效率的秘诀是什么?

&">nbsp;

Cloudera Impala是一项基于Hadoop的实时检索引擎开源项目,其效率十分高,较Hive提升了有3~90倍。

为什么是代码生成?

这一切的基础是最优的查询,引擎一定是原生的应用,因为它们是针对你的数据格式来开发的,而且仅仅支持你的查询。例如以下是一个理想的代码:

1 2 3 select count(*) from tbl where col like %XYZ%

这与 grep -c "XYZ" tbl 的效率一样高。

另一个例子,select sum(col) from tbl。如果表格只有一个int64的列,使用little endian编码,这可以通过专用的应用来运行:

1 2 3 4 5 int64_t sum = 0; int64_t* values = (int64_t*)buffer; for (int i = 0; i < num_rows; ++i) {   sum += values[i];   }

这两个查询都是十分合理的(因为第二段代码用于列式的数据),不过在运行已有的查询引擎时会变得缓慢。(这是假设强制执行的情况;一个数据库当然可以使用索引或者预先计算的值来运行,其效率要高过简单的应用。当然,这里的技术同样应该使用非强制执行策略来实现。)这是因为如今的应用程序大多数都遵循了添加多种执行开销这一解释方法。

时间: 2024-11-01 12:25:29

Impala提升3~90倍查询效率的秘诀是什么?的相关文章

PHP基于二分法的手机号码归属查询与传统查询效率比较

出于对算法对于系统的影响的好奇,决定实验性的在实际生产环境中研究一下算法对系统效率的影响.二分法最重要的是对有序数据的查询定位,例如手机号码就是一个很贴切的有序排列的数据例子. 如果数据量很小,例如只有10条有序数据,要查询其中的第9条数据,轮询查询需要查询9次确定结果,二分法查询次数为3次(分别是匹配第5.8.9条记录)即可确定结果.数据量越大,二分法所带来的效率就是程2的阶乘递增,可以大大提升服务器的运行效率.提升用户等待时间.节省服务器资源. 实验环境:LAMP 实验数据:国内手机号码归属

修改一行SQL代码 性能提升了100倍

在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用 EXPLAN ANALYZE来优化代码,到后来,http://www.aliyun.com/zixun/aggregation/14171.html">Postgres社区也成为我们学习提升的一个好帮手,付出总会有回报,我们的性能也因此得到了极大的提升. 事出有因 Datadog是专门为IT.开发团队等提供监控服务

mongoDB 查询效率,等待读锁的时间差异

问题描述 mongoDB 查询效率,等待读锁的时间差异 使用mongodb做了一个项目,现在需要从项目里导出数据,第一批数据导出的时候相对比较快,第二批数据导出时突然死慢死慢.根据profile里的信息,同样的联合查询($in的集合不一样,但是大小差不多),也是加了索引的.前后两个查询要相差3倍的时间. 分析查询信息,时间基本都耗在了等待读锁上,.做了以下设想:1.通常的,如果是索引过多,那么前后的时间耗损差异,说不通(都是遍历整库查询). 2.把程序里的语句拷贝出来,本机测试,结果:可以看出,

找出mysql中like模糊查询效率低的sql语句

相比update和insert,一般查询应该是数据库中操作最频繁的.而在有些应用场景需要用到like模糊查询,那么对于大数据,查询的时候就要注意了.   现在来分析一下为什么like语句查询的效率会很低,测试数据共4000000条,如下图:     第一步:不使用索引 下图可以看出,不使用索引的时候普通查询与like查询的耗时相当,like略长,这也是必然的,因为它要进行额外的算法.     第二步:使用索引   如下图,使用索引后,普通查询的耗时基本算是秒查,非常快:而like查询还是耗时一秒

使用Bulk Collect提高Oracle查询效率

http://carllgc.blog.ccidnet.com/blog-htm-do-showone-itemid-25946.html 使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率.现在,我们对该特性进行一些简单的测试和分析. 1. 首先,我们创建一个表,并插入100000条记录在SQL/Plus中执行下列脚本: drop table empl

央行发文监管比特币交易 比特币在过去一年内飙涨90倍

比特币在过去一年内飙涨90倍,一度价格超过金价,甚至被部分国内外部分餐馆作为可支付的"货币".然而国内有关部门的监管随之到来. 12月5日下午,中国人民银行等5部委联合发布公告,印发<关于防范比特币风险的通知>.明确指出,比特币不具有与货币等同的法律地位,不能且不应作为货币在市场上流通使用.5部委指出,比特币不是货币:金融和支付机构不得开展比特币业务:需加强比特币网站备案:将比特币服务机构纳入反洗钱监管:比特币网站需实名制. 通知中强调金融和支付机构对于比特币的"

MYSQL列类型选择与MYSQL查询效率

    4.3 列类型选择与查询效率    要选择有助于使查询执行更快的列,应遵循如下规则(这里,"BLOB 类型"应该理解为即包含B L O B也包含TEXT 类型):    ■ 使用定长列,不使用可变长列.这条准则对被经常修改,从而容易产生碎片的表来说特别重要.例如,应该选择CHAR 列而不选择VARCHAR 列.所要权衡的是使用定长列时,表所占用的空间更多,但如果能够承担这种占涞暮姆眩褂枚ǔば薪仁褂每杀涑さ男写砜斓枚唷?br>     ■ 在较短的列能够满足要求时不要

SQL Server查询效率优化

查询效率分析: 子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询.在这种情况下可以考虑用联接查询来取代. 如果要用子查询,那就用EXISTS替代IN.用NOT EXISTS替代NOT IN.因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高.无论在哪种情况下,NOT IN都是最低效的.因为它对子查询中的表执行了一个全表遍历. 建立合理的索引,避免扫描多余数据,避免表扫描! 几百万条数据,照样几十毫秒完成查询. 机器情况 p4: 2.4 内存: 1 G o

java-html页面查询效率低下是什么原因?

问题描述 html页面查询效率低下是什么原因? html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?html页面查询效率低下是什么原因?点击查询按钮,查询缓慢 解决方案 你先检查一下你的查询语句 看下你的查询语句在数据库里面的消耗是多少 如果没什么问题 那可能就是将数据集绑定到页面的时候效率比较低了 解决方案二: 这个原因有很多,例如