打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Impala JOIN操作及元数据过期问题

Impala JOIN操作及元数据过期问题

Hints(Joins 问题)

Hints 英译为“暗示,示意,提示”,用于数据表join时影响执行语句被后台程序解析成执行计划的,达到优化执行效率的目的。说白了这有点像写Java代码里面的注解(anotation)。

主要有两个hints:

Hints解释使用场景
[SHUFFLE]把join操作使用分区技术(”partitioned” technique 之所以叫分区技术,因为这种join很类似分区的表(注:原文刚好的反意思,我猜是编辑写错了)),取出匹配的数据,把子数据集分发到其他的节点运算。用于不可预测数据量的两个大表join
[BROADCAST]join操作使用“广播”技术(”broadcast” technique),把jion的右边的小表内容全部发送到各个节点。当有一个大表和一个小表。小表放右边,这一点和hive刚好相反

三种使用案例:

1、用一个查找表的数据(如100行数据)去匹配一个包含很多数据的用户记录表。Join右边的表被发送到所有计算节点。

select customer.address, state_lookup.state_namefrom customer join [broadcast] state_lookupon (customer.state_id = state_lookup.state_id);

2、Join两个大的数据表,我们使用[shuffle]来暗示程序使用“分区”方式执行

select weather.wind_velocity, geospatial.altitudefrom weather join [shuffle] geospatialon (weather.lat = geospatial.lat and weather.long = geospatial.long);

3、当有三个表,其中两个大表(t1,t2),一个小表(t3)的时候该怎么做呢?这时候我们对两大表使用[shuffle],之后的结果集对第三个小表使用[broadcast]。

select t1.name, t2.id, t3.pricefrom t1 join [shuffle] t2 join [broadcast] t3on (t1.id = t2.id and t2.id = t3.id);

参考:http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_langref_sql.html#hints_unique_1

元数据更新

impala获取元数据信息是会过期的,若使用过期的元数据进行查询的话得到的结果就不准确了。那么什么情况下会发现元数据过期呢?如何避免呢?下面我们详细看看。

元数据需要更新的情况,即过期的情况:

1、装载文件或者ETL时插入数据

2、来自与集群里其他的impalad实例或hive改变元数据

3、来自客户端的impala shell或者ODBC直接连接的修改元数据

不需要更新元数据的情况:来自与同一个impala节点的ALTER TABLE,INSERT,或者其他修改表的语句。

修改元数据的操作大概有:

1、Hive : ALTER ,CREATE,DROP,INSERT

2、Impalad:CREATE TABLE,ALTER TABLE,INSERT操作

解决方法:

1、INVALIDATE METADATA  [table_name]

2、REFRESH table_name

INVALIDATE METADATA:让元数据过期腐败不可用,当表重新引用的时候重新加载。缺点:该语句是重量级的,比较耗时。该特性来自与Impala的1.1版本

REFRESH:刷新表的元数据,必须跟上表名这个参数(确定)。实时的,轻量级的(优点)

因此当需要更新大量元数据时使用INVALIDATE METADATA(不加表名) 。否则优先使用REFRESH。

也可以当启动impala-shell的时候使用-r(–refresh_after_connect)参数,等连接到impala server时更新元数据。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
大数据心得:impala中的刷新元数据和刷新表
Impala中的invalidate metadata和refresh
SQL on Hadoop系统的最新进展(1)
Sophon :Hulu智能OLAP缓存层技术实践
Spark SQL 在字节跳动的优化实践
SparkSQL – 有必要坐下来聊聊Join – 有态度的HBase/Spark/BigData
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服