---====================

-- Impala 获取hive 的 metadata

---====================

Impala 通常和Hive共用同一个metadata 数据库(通常是MySQL/PostgreSQL), 所以Impala 能够读取到Hive的元数据信息. 如果Impala需要访问Hive表, 需要将Hive metadata 刷新到impala中.

在Hive中Create/Drop表后, 或者HDFS rebalance,或者手工删除HDFS的文件后, 则需要在impala中执行下面两行命令:

INVALIDATE METADATA table_name;

describe table_name;

第一行命令 INVALIDATE METADATA 告诉impala 指定的 table 元数据已经过期, impala 将在下一次使用到该表时自动刷新元数据, 第二行命令即触发impala去更新元数据, 以免将来真正使用该表耗时太久.

如果Impala已经知道了Hive表的存在后, 又通过Hive增加或删除分区或alter table, 使用 refresh 命令即可更新元数据. refresh是对元数据进行增量更新, 和INVALIDATE METADATA相比, refresh命令使用成本低很多.

REFRESH table_name; --增量刷新全表

refresh [table_name] [PARTITION (key_col1=val1 [, key_col2=val2...])]]; --仅仅刷新指定分区

INVALIDATE METADATA 命令如果不指定表名, 则将所有表的元数据都标记为过期, 慎用!

---====================

-- 收集统计信息

---====================

Impala 仅仅能部分利用Hive的统计信息, 要想得到好的执行效率, impala需要收集统计信息.

1. 检查统计信息

show table stats table_name; --显示表和分区级别的统计信息.

如果返回第一列 #Rows 值-1, 表名还没有收集过统计信息.

show column stats table_name ; --显示列级别的统计信息.

2. 收集统计信息

Impala 的compute stats 一条命令同时采集表和字段两种信息, 使用起来非常方便.

它增量和全量两种写法, 在从未收集过统计信息的前提下, 并且数量一致的情况下, 使用COMPUTE STATS命令要比COMPUTE INCREMENTAL STATS速度更快. 所以对于非分区表, 推荐使用COMPUTE STATS.

COMPUTE STATS table_name ; -- 对于非分区表, 推荐使用COMPUTE STATS, 速度更快

COMPUTE INCREMENTAL STATS table_name ;--对于分区表, 推荐使用COMPUTE INCREMENTAL STATS, 速度更快一些.

如果table通过Hive增加了分区, 需要先进行refresh, 然后增量收集统计信息.

REFRESH table_name;

COMPUTE INCREMENTAL STATS table_name;

3. 删除统计信息

DROP STATS table_name

DROP INCREMENTAL STATS table_name PARTITION (key_col1=val1 [, key_col2=val2...])]

impala元数据放到mysql_impala系列: 同步Hive元数据和收集统计信息相关推荐

  1. Impala自动同步Hive元数据

    在Cloudera官方文档 Impala Metadata Management,找到了CDH平台中Impala自动同步Hive元数据的配置方法. 文档中提示这是CDH6.3/Impala3.3的一个 ...

  2. Apache Atlas管理Hive元数据

    部署好Atlas服务后,重点是对Atlas的使用,这里对Atlas管理Hive元数据做简单总结. Hive元数据导入 全量导入 bash /usr/hdp/2.6.4.0-91/atlas/hook- ...

  3. impala 连接mysql_impala系列: 基本命令和jdbc连接

    --======================= 使用impala-shell 登录 --======================= impala-shell --auth_creds_ok_i ...

  4. hive 元数据 自定义_如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件-阿里云开发者社区...

    如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译: 1.使用Intellij工具通过 ...

  5. Hive元数据信息获取

    如何获取Hive库表字段分区信息 1 获取Hive的所有数据库信息 如果注释字段中文乱码,则需要修改字符集(正常情况都需要修改). SELECT`NAME` NAME,ANY_VALUE ( `DES ...

  6. hive安装测试及Hive 元数据的三种存储方式

    一  hive安装测试 1.下载解压 tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz) 将解压后的hive-0.8.1文件放在系统的/home/had ...

  7. Atlas2.1.0实战:安装、配置、导入hive元数据、编译排坑

    背景 随着公司数据仓库的建设,数仓hive表愈来愈多,如何管理这些表? 经调研,Atlas成为了我们的选择对象,本文是Atlas实战记录,感谢尚硅谷的学习视频 1.Atlas概述 1.1 Apache ...

  8. clodera scm 数据库表信息 和 hive元数据整理

    一. cloudera 会将页面的数据存储到 SCM 中 其表结构梳理(对应生产BAOFOO_SCM) AUDITS 登录信息.服务,角色重启.配置更改 PROCESSES 进程信息.这里面有很多信息 ...

  9. Hive 元数据表结构详解

    元数据是基础,这篇文章值得一读. 本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala.SparkSQL.Hive等组件访问元数据库的理解. 1.存储Hive版本的元数据表(VERSIO ...

最新文章

  1. 轮播图最后一张图结束如何平缓回到第一张_产品经理早期如何学习?
  2. 安装脚本退出,并显示错误:命令“ x86_64-linux-gnu-gcc”失败,退出状态为1
  3. deepin关机卡在图标界面 mysql Community...10min
  4. CF966E-May Holidays【虚树,分块】
  5. Android开源源码推荐(一)
  6. 信息学奥赛C++语言: 队伍调整
  7. c语言函数指针学习心得,c语言 函数指针 学习C语言笔记
  8. cmake指定输出安装目录
  9. hql中获取前一天的数据_如何使用DNS和SQLi从数据库中获取数据样本
  10. 一般使用作为微型计算机必备,远程教育统考复习之计算机应用基础单选模拟复习题(一)...
  11. 你不知道的分布式锁+分布式事务面试题
  12. vue项目使用SockJS插件实现webSocket通信
  13. java poi word 表格 重复_java使用poi操作word, 支持动态的行(一个占位符插入多条)和表格中动态行, 支持图片...
  14. 巧用Redis做游戏跨服排行榜
  15. JZOJ5444. 【NOIP2017提高A组冲刺11.2】救赎
  16. 20155325 Exp4 恶意代码分析
  17. R语言随机森林模型回归randomForest
  18. 视觉基础:关于机器视觉、机器学习及人工智能领域
  19. 互联网+教育时代,线下教培机构的新机遇
  20. RGB 空间颜色量化 - 减少颜色数目

热门文章

  1. 倒计时1天:AI在改变一切
  2. Go基础编程:基础数据类型
  3. 新一代搜索引擎项目 ZeroSearch 设计探索
  4. EasyRTMP实现的rtmp推流的基本协议流程
  5. Google Test
  6. 到底什么是RestFul架构?
  7. 全面的GC原理及调优
  8. Java程序设计----Java编程基础
  9. leetcode 721. Accounts Merge | 721. 账户合并(HashMap版并查集)
  10. leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)