美文网首页
Hive数据操作

Hive数据操作

作者: 发条香蕉 | 来源:发表于2016-08-30 20:32 被阅读0次

    Hive数据操作

    Hive执行命令方式

    • cli,jdbc,hwi,beeline
    • cli shell
      • hive -help
      • hive --help
      • list,source
    • 注:命令脚本必须在集群的节点或hiveclient执行

    Hive操作-变量

    • 配置变量
      • set val='';
      • ${hiveconf:val}
      • select * from text where name=${hiveconf:val}
    • 环境变量
      • ${env:HOME},注env查看所有环境变量

    Hive数据加载

    • 内表数据加载
      • 创建表时加载
        • create table newtable as select col1,col2 from oldtable
      • 创建表时指定数据位置
        • create table tablename() location ''
      • 本地数据加载
        • Load data local inpath 'localpath' [overwrite] into table tablename
      • 加载hdfs数据
        • Load data inpath 'hdfspath' [overwrite] into table tablename
      • 使用Hadoop命令拷贝数据到指定位置(hive的shell中执行和Linux的shell执行)
    • 由查询语句加载数据
      • insert [overwrite|into] table tablename
        select col1,col2 from table where..
      • from table
        insert [overwrite|into] table tablename
        select col1,col2
        where...
      • 注意字段对应不同于一些关系型数据库
    • 外表数据加载
      • 创建表时指定数据位置
        • create external table tablename () location ''
      • 查询插入,同内表
      • 使用Hadoop命令拷贝数据到指定位置(hive的shell中执行和Linux的shell执行)
    • 分区表数据加载
      • 内部分区表和外部分区表数据加载
        • 内部分区表数据加载方式类似于内表
        • 外部分区表数据加载方式类似于外表
          • 注意:数据存放的路径层次要和表的分区一致
          • 如果分区表没有新增分区,即使目标路径下已经有数据了,但依然查不到数据
      • 不同之处
        • 加载数据指定目标表的同事,需要指定分区
      • 本地数据加载
        • load data local inpath 'localpath' [overwrite] into table tablename partition(pn='')
      • 加载hdfs数据
        • load data inpath 'hdfspath' [overwrite] into table tablename partition(pn='')
      • 由查询语句加载数据
        • insert [overwrite] into table tablename partition(pn='')
          select col1,col2 from table where...
    • Hive数据加载注意问题
      • 分隔符问题,且分隔符默认只有单个字符
      • 数据类型对应问题
        • Load数据,字段类型不能互相转化时,查询返回NULL
        • select查询插入,字段类型不能相互转化时,插入数据为NULL
      • select查询插入数据,字段值顺序要与表中字段顺序一致,名称可不一致
        • Hive在数据加载时不做检查,查询时检查
      • 外部分区表需要添加分区才能看到数据
        • alter table add partition(dt='11111')

    相关文章

      网友评论

          本文标题:Hive数据操作

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