zoukankan      html  css  js  c++  java
  • hive 进阶笔记

     
    -- mysql方式
    create table account_channel(account_ String,channel_ String)  as select 
    a.account,b.channel from register a join `install` b on a.device = b.device
    
    -- hive方式
    create table account_channel ROW FORMAT DELIMITED FIELDS TERMINATED BY '^' STORED AS TEXTFILE  select  distinct a.account,b.channel from register a join install b on a.device = b.device;
    以覆盖的方式添加数据
    INSERT OVERWRITE account_channel2  IF NOT EXISTS select  distinct a.account,b.channel from register a join install b on a.device = b.device;
    INSERT into account_channel   select  distinct a.account,b.channel from register a join install b on a.device = b.device;

    场景描述,在hive中需要一张中间表,比如一个已知设备库,但是随着用户的增加,设备库是要数据量谁要增加的,(insert新的数据,保留已有的数据).然后在业务中使用

    解决方案,第一次create select ,之后每次都 insert into select ,这是select 的就很关键,这个select 需要 查询到已知设备库中没有的数据.这样就能实现设备库的更新

     insert into select 的缺点是不能重复执行,重复执行机会产生重复数据.insert overwrite 不会产生重复数据

    当表 为空表的时候mysql中count的结果是null但是在hive中count的结果是0

    在使用 group by 的时候有时会觉得需要一个循环才能实现,此时可以考虑将需要循环的字段也加入group by 中,然后再加上order by 就和循环的效果一样了.

    有一个约定就是在group by 后面要加上使用聚合函数的字段之外的所有字段.这个约束在mysql 中是可以不遵守的.但是按理来说是必须要遵守的

    hive 的分区字段可以在from之前出现,可以在join时使用.

  • 相关阅读:
    MIPI CSI2学习(一):说一说MIPI CSI2
    图解数据结构树之AVL树
    查找树ADT--二叉查找树
    hisi mmz模块驱动讲解
    抓包工具 tcpdump 用法说明
    4. 海思Hi3519A MPP从入门到精通(四 视频输出)
    PHP无限分类分类导航LINK的代码实现
    PHP 无限极分类下拉列表实现
    PHP无限极分类原理
    微信支付回调验证签名处理
  • 原文地址:https://www.cnblogs.com/rocky-AGE-24/p/7435836.html
Copyright © 2011-2022 走看看