hive笔记
- hive不支持修改表中数据,但是可以修改表结构,而不影响数据
- 有local的速度明显比没有local慢
- 在hive内执行Hadoop的dfs命令:(去掉hadoop,以;结尾)
- 没有一个命令可以让用户查看当前所在的是哪个数据库库
- 在hive内执行一些bash shell命令(在命令前加!并且以;结尾即可)
- Hive脚本如何注释:
使用–开头的字符串来表示注释 - hive中使用正则表达式
hive> select 'price.*' from table_name;选出所有列名以price作为前缀的列- 用
Like或者RLike
- 聚合函数
可以通过设置属性hive.map.aggr值为true来提高聚合的性能:
hive>hive.map.aggr=true; - JOIN语句
hive支持通常的SQL JOIN语句,但是只支持等值连接。hive也不支持在on子句中用谓词OR - union all
将两个表或者多个表进行合并,每一个union all子查询都必须具有相同的列,而且对应每个字段的每个类型都必须一致。 什么情况下hive可以避免进行mapreduce?
在本地模式的时候可以避免触发一个mr的job,此外,如果属性hive.execmode.local.auto的值为true的话,hive还户尝试本地模式进行其他的操作。
set hive.execmode.local.auto=true;说明:最好将
set hive.execmode.local.auto=true;这个设置增加到你的$HOME/.hiverc配置文件中去。select * 不执行mapreduce,只进行一个本地的查询。而select 某个字段 生成一个job,执行mapreduce。
- 假如有多个任务想顺序执行的话,在SQL脚本的最上方加上如下命令,调用队列来执行命令:
SET mapreduce.job.queuename=user.queuename;
- 建表的时候,都需要设置对应的数据库和设置分区。方便数据查找和删除。
浙公网安备 33010602011771号