---====================
-- 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系列: 同步Hive元数据和收集统计信息的更多相关文章

  1. [统计信息系列7] Oracle 11g的自动统计信息收集

    (一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...

  2. Oracle 判断 并 手动收集 统计信息 脚本

    CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GAT ...

  3. Oracle 手动收集统计信息

    收集oracle统计信息 优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN: 列统计: --列中唯一值的数量(NDV ...

  4. Oracle重建表索引及手工收集统计信息

    Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_IN ...

  5. Oracle 11g系统自己主动收集统计信息的一些知识

    在11g之前,当表的数据量改动超过总数据量的10%,就会晚上自己主动收集统计信息.怎样推断10%.之前的帖子有研究过:oracle自己主动统计信息的收集原理及实验.这个STALE_PERCENT=10 ...

  6. 收集统计信息让SQL走正确的执行计划

    数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELE ...

  7. [Oracle] 11G自己主动收集统计信息

    在11g中,默认自己主动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时),例如以下所看到的: select a.window_name, a.repeat_i ...

  8. 验证Oracle收集统计信息参数granularity数据分析的力度

    最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, ---所有者名字 tabname ...

  9. 启用oracle 11g自己主动收集统计信息

    今天接到朋友数据库一个case,在DBCA建库时,把自己主动收集统计信息的选项去掉了,数据库执行半年没有收集过统计信息.如今要启用方法例如以下: exec DBMS_AUTO_TASK_ADMIN.E ...

随机推荐

  1. hexo博客添加功能

    设置Hexo主题模式 Hexo主题中,有三种不同的模式,通过切换模式,让NexT主题显示不一样的样式.在NexT根目录下有一个同样名称为_config.yml,为了区分hexo根目录下的_config ...

  2. [WC2018]州区划分(FWT)

    题目描述 题解 这道题的思路感觉很妙. 题目中有一个很奇怪的不合法条件,貌似和后面做题没有什么关系,所以我们先得搞掉它. 也就是判断一个点集是否合法,也就是判断这个点集是否存在欧拉回路. 如果存在欧拉 ...

  3. FZU 2150 Fire Game (bfs+dfs)

    Problem Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board ...

  4. Navicat Premium 12 破解(MySQL、MariaDB、MongoDB、SQL Server、SQLite)

    打开注入到安装目录中的exe中 破解提示(还没好,继续看下去) 如果你安装的是中文版,选一下中文版(英文默认即可),获取一下key(名字和组织可以自定义) 打开Navicat,选择注册(第一次打开选注 ...

  5. Ubuntu18.04下给Jupyter-NoteBook设置默认工作路径(附Win设置)

    上一篇Jupyter的文章:https://www.cnblogs.com/dotnetcrazy/p/9201976.html Linux 生成配置文件:jupyter-notebook --gen ...

  6. Windows下使用Diskpart格式化U盘

    步骤 进入Diskpartdiskpart 列出所有的磁盘list disk 选择磁盘select disk 清楚clean 创建主分区creat partition parimary 激活当前分区a ...

  7. RGBColorspace 与 GRAYColorspace 图片混合后,生成的视频有点问题

    最近有一个用户遇到一个情况: 有3张图片,其中前两张是 RGBColorspace,最后一张是 GrayColorspace: 生成的视频,在显示最后一张图片的时候,明显出现奇怪的色彩区域,看下图: ...

  8. latex 双引号 “

    别在latex敲,在记事本上敲完后,拷贝到latex中.

  9. python在数据处理中常用的模块之numpy

    一 numpy模块 NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该 ...

  10. Codeforces Round #524 (Div. 2) C. Masha and two friends(思维+计算几何?)

    传送门 https://www.cnblogs.com/violet-acmer/p/10146350.html 题意: 有一块 n*m 的棋盘,初始,黑白块相间排列,且左下角为白块. 给出两个区间[ ...