hive笔记

  1. hive不支持修改表中数据,但是可以修改表结构,而不影响数据
  2. 有local的速度明显比没有local慢
  3. 在hive内执行Hadoop的dfs命令:(去掉hadoop,以;结尾)
  4. 没有一个命令可以让用户查看当前所在的是哪个数据库库
  5. 在hive内执行一些bash shell命令(在命令前加!并且以;结尾即可)
  6. Hive脚本如何注释:
    使用–开头的字符串来表示注释
  7. hive中使用正则表达式
    1. hive> select 'price.*' from table_name;选出所有列名以price作为前缀的列
    2. Like或者RLike
  8. 聚合函数

    可以通过设置属性hive.map.aggr值为true来提高聚合的性能:
    hive>hive.map.aggr=true;

  9. JOIN语句
    hive支持通常的SQL JOIN语句,但是只支持等值连接。hive也不支持在on子句中用谓词OR
  10. union all
    将两个表或者多个表进行合并,每一个union all子查询都必须具有相同的列,而且对应每个字段的每个类型都必须一致。
  11. 什么情况下hive可以避免进行mapreduce?

    在本地模式的时候可以避免触发一个mr的job,此外,如果属性hive.execmode.local.auto的值为true的话,hive还户尝试本地模式进行其他的操作。
    set hive.execmode.local.auto=true;

    说明:最好将set hive.execmode.local.auto=true;这个设置增加到你的$HOME/.hiverc配置文件中去。

  12. select * 不执行mapreduce,只进行一个本地的查询。而select 某个字段 生成一个job,执行mapreduce。

  13. 假如有多个任务想顺序执行的话,在SQL脚本的最上方加上如下命令,调用队列来执行命令:
    SET mapreduce.job.queuename=user.queuename;
  14. 建表的时候,都需要设置对应的数据库和设置分区。方便数据查找和删除。

posted on 2022-11-29 18:40  枫夜求索阁  阅读(16)  评论(0)    收藏  举报

导航