美文网首页
Hive 关联

Hive 关联

作者: 一个神经质的工程师 | 来源:发表于2019-06-08 17:39 被阅读0次

Hive Join特殊点

1.标准SQL是支持对连接关键词进行非等值连接的,但是在hive中不支持,同时也不支持在on中使用or,主要原因是mapreduce很难实现这种类型的连接

2.Hive中不支持大多数SQL中的in .... exists,可以使用left semi-join代替

Join优化

大多数情况下,hive会对每对join连接对象启动一个mapreduce任务。例如a join b on a.id=b.id join c on a.id =c.id,这是首先对表a和b启动一个map-reduce任务,然后对于这个集合和表c启动一个map-reduce任务。

优化

1.当多个表进行join连接时,如果每个on子句都使用相同的连接键,只会产生一个map-reduce。这里指主表的关联字段不变,从表字段命名变化不影响

2.hive同时假定查询的最后一个表是最大的表,然后连接操作时将其他表缓存起来,扫描最后的表进行计算,所以用户需要尽可能的保证查询的表是越来越大的。可以使用/*+streamtable(表名)*/指定最大的表。

3.笛卡尔积是无法优化的

4.当连接的表中只有一张是小表,那么可以将小表完全放在内存中,可以减少map的代价,减少reduce,使用/*+mapjoin(表名)*/即map-side join。在hive v0.7之后,可以不使用这个hint,但是需要设置参数hive.auto.convert.JOIN=true来开启这个功能,不过在right left join 和full outer join中不支持这个功能。用户还可以配置能够使用这个优化的小表的大小,参数为hive.mapjoin.smalltable.filesizez

5.

join(inner join) full outer join 谓词写哪里无所谓

left outer join  右边的表写在on后面,左边的写在where后面

right outer join  左边的表写在on后面,右边的写在where后面

或者全部做成子查询

相关文章

  • Hive 关联

    Hive Join特殊点 1.标准SQL是支持对连接关键词进行非等值连接的,但是在hive中不支持,同时也不支持在...

  • 16.apache-hadoop之hive安装

    1.在hive官网下载hive 2.修改环境变量 3.设置mysql关联hive hive-env.sh 添加以下...

  • Spark访问与HBase关联的Hive表

    Spark访问与Hbase关联的Hive表需要引用jar 包 hive-hbase-handler-

  • hive关联hbase

  • Hbase 关联 hive 表

    Hbase 是可以支持实时查询的非关系行数据库,采用列存储的同时也是的直接查询的数据不太直观,对此,我们可以将之关...

  • avro(hdfs关联hive)

    简介 avro是一种固定格式(schema),以文件为单位的 数据序列化系统(类似加密解密) 支持二进制序列化方式...

  • Hive JsonSerde

    数据直接写入HDFS,通过Hive External关联数据源是一种常见的数据写入方案。本文介绍通过Hive Ex...

  • spark读取Hive

    导入依赖 导入关键的依赖包 启动hive支持 hive与hbase关联,可以作为一种查询hbase的方式 创建hi...

  • hive join操作sql整理

    在使用hive进行数据加工处理时,经常要进行两个数据表join关联,接下来具体介绍hive sql中要使用的joi...

  • Hive和Pig比较

    什么时候用HIVE 收集一段时间的数据来进行分析,而Hive就是分析历史数据绝佳的工具。在处理已经存在关联模式的数...

网友评论

      本文标题:Hive 关联

      本文链接:https://www.haomeiwen.com/subject/yjgixctx.html