Impala实践之二:Hive元数据

本文主要探讨了Impala中与Hive元数据的交互,包括Hive元数据库的结构和重要性,以及如何通过INVALIDATE METADATA和REFRESH语句管理元数据的更新。INVALIDATE METADATA用于在元数据更改后标记表为过时,而REFRESH则是更轻量级的更新方式,适用于添加新数据文件的情况。文章还提到了这两个操作的适用场景和资源消耗差异。
摘要由CSDN通过智能技术生成

0x00 前言

深入学习Impala的最主要一个原因就是目前在使用Impala的时候遇到了各种了性能问题,之前定位过一次问题,猜测其性能损耗的一个主要原因在INVALIDATE METADATA-r参数上,但是对此并不是十分理解,因此需要深入一点底理解这些概念,方面更准确地定位问题。

下面将从三个角度来分析Impala元数据:Hive元数据库、INVALIDATE METADATA语句和REFRESH语句。

0x01 Hive元数据库

下图是我把hive元数据库倒出来之后,整理出来的表结构,整个元数据库表十分多,我只截取了一部分我认为相对来说比较重要的几个。


Impala 在传统的 MySQL 或 PostgreSQL 数据库称为 Metastore 上保持其表定义,Hive 也在相同的数据库上保存此类型的数据。因此,Impala 可以访问由 Hive 定义或加载的表。

对于具有大量数据或多个分区的表,检索表内所有元数据可能会花费很长时间,在某些情况下需要几分钟。因此,每个 Impala 节点缓存所有这些数据,以便在未来对同一表进行查询时重复使用。

如果更新表定义或表数据,集群中所有其他Impala Daemon必须接收到最新的元数据、更换过时的缓存元数据,然后再对该表发出查询。

0x02 INVALIDATE METADATA 语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值