Hive表的几种操作

前言:针对Hive的表,我基本会有如下的操作情况,汇总整理一下

  1. 创建表

    • 创建Hive内部表

      CREATE TABLE test (
      customer_id   BIGINT,
      resource_id   BIGINT,
      resource_name STRING,
      resource_type INT,
      browse_time   BIGINT,
      browse_num    BIGINT
      )ROW FORMAT delimited FIELDS TERMINATED BY '\t';
    • 创建外部表

      create external table test(
      id string,
      customer_id string,
      illness_id string
      )
      STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
      WITH SERDEPROPERTIES ("hbase.columns.mapping" = 
      ":key,
      f:customer_id,
      f:illness_id
      ")TBLPROPERTIES ("hbase.table.name"="customer_auth_illness"); 
    • 创建临时表

      CREATE TEMPORARY TABLE TEST(
      doctor_id   BIGINT,
      inquiry_all_num   BIGINT,
      inquiry_accept_num   BIGINT,
      acceptance_rate BIGINT
      )ROW FORMAT delimited FIELDS TERMINATED BY '\t';
  2. 清理表数据,临时表只对当前的session是有效的,所以当前的Hql运行完毕以后,改表自动被删除,所以不存在删除数据的情况

    • 内部表

      truncate table test;
    • 外部表,这里我说的是Hbase的外部表,因为对应的数据是保存在Hbase中,所以只能通过Hbase的命令来处理数据

      
      #!/bin/sh
      
      source /etc/profile
      echo "truncate 'recommend:test'" |hbase shell
  3. 导入数据

    • 从本地磁盘导入数据

      // 增量导入
      load data local inpath '/data/test.txt' into table test;
      // 覆盖插入
      load data local inpath '/data/test.txt' OVERWRITE into table test;
    • 从HDFS文件系统导入数据

      // 增量导入
      load data inpath '/data/test.txt' into table test;
      // 覆盖插入
      load data inpath '/data/test.txt' OVERWRITE into table test;
  4. 导出数据

    • 导出到文件系统

      insert overwrite local directory '/data/test.txt' row format delimited 
      fields terminated by '\t' select t1 from test;
    • 导出到数据库,使用的是Sqoop

      sqoop export 
      --connect "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8" 
      --username root --password '123456' 
      --table test  --columns "id, customer_id, customer_name" 
      --export-dir /user/hive/warehouse/stat.db/test 
      --input-null-string '\\N' --input-null-non-string '\\N' -m 1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值