zoukankan      html  css  js  c++  java
  • impala系列: 同步Hive元数据和收集统计信息


    ---====================
    -- 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...])]

  • 相关阅读:
    2017浙江工业大学-校赛决赛 猜猜谁是我
    2017浙江工业大学-校赛决赛 竹之书
    2017浙江工业大学-校赛决赛 小M和天平
    2017"百度之星"程序设计大赛
    2017"百度之星"程序设计大赛
    2017"百度之星"程序设计大赛
    2017"百度之星"程序设计大赛
    2015-2016机器人操作系统(ROS)及其应用暑期学校资料汇总 ROS Summer School 持续更新
    2016“智能无人系统”暑期学校总结
    ROS_Kinetic_20 ROS基础补充
  • 原文地址:https://www.cnblogs.com/harrychinese/p/impala_refresh_meta_and_compute_stats.html
Copyright © 2011-2022 走看看