zoukankan      html  css  js  c++  java
  • hive的常用操作

    1、hive的数据类型

    tinyint/smallint/int/bigint
    tinyint:从 0 到 255 的整型数据
    smallint:从 0 到 65535 的整型数据
    int:从 0 到 4294967296 的整型数据
    bigint:所有数字
    float/double
    boolean
    string
    date
    timestamp

    2、基本操作

    显示所有库:show databases;
    创建库:create database media_pro;
    切换到指定库:use media_pro;
    查看表结构:desc formatted t_pro_user_list;

    创建分区表:
    create table OUFEI_CHARGE_ORDERINFO_LOG
    (state_date string,
    create_date date,
    sendtimes int) row format delimited fields terminated by ' ';

    3、进阶操作

      ①、分区表

    create table OUFEI_CHARGE_ORDERINFO_LOG
    (state_date string,
     create_date datestamp,
     sendtimes int)
     partitioned by (logdate string)  row format delimited fields   terminated by '	';

      这种正常的表存放的目录就是你当前库目录的下级路径:

      

      上图中的标志的分别是:分区字段、表所在库、表所在路径、表类型

      ②、外部表

     create external table t_detail
     (state_date string,
      create_date datestamp,
      sendtimes int)
      partitioned by (logdate string)row format delimited fields terminated by '	' location '/hive_exterdir/';
     //如果不加location的话,其实就是个内部表

      

      上图的标红的分别是:分区字段、指定数据文件路径(后面将要导入的数据放进来就行load一下就行)、表的类型

      外部表名在hdfs上是看不见的

      ③、导数load in datapath

       内部表导入:

        load data inpath  '/userdata/order.txt' into table oufei_charge_orderinfo_log partition (logdate='2017-06-16');

        这里表示将userdata文件夹下的order.txt文件导入表中,并以'2017-06-16'作为分区字段的值;这里如果userdata下没有文件夹的话,可以把后面的文件名省略;

       外部表导入:

        load data inpath  '/hive_exterdir/detail.txt' into table t_detail partition (logdate='2017-06-16');

          导入成功后,你会发现之前的detail.txt文件会被移动到分区目录下

        

       ④、总结:内部表和外部表的区别:

        

    1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!内部表则不一样;
    2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
    那么,应该如何选择使用哪种表呢?在大多数情况没有太多的区别,因此选择只是个人喜好的问题。但是作为一个经验,如果所有处理都需要由Hive完成,那么你应该创建内部表,否则使用外部表!
    

      

         

        

    欢迎对it热情的同学,加qq进行技术讨论; QQ:850922253
  • 相关阅读:
    30 Day Challenge Day 12 | Leetcode 198. House Robber
    30 Day Challenge Day 12 | Leetcode 276. Paint Fence
    30 Day Challenge Day 12 | Leetcode 265. Paint House II
    30 Day Challenge Day 12 | Leetcode 256. Paint House
    30 Day Challenge Day 11 | Leetcode 76. Minimum Window Substring
    30 Day Challenge Day 11 | Leetcode 66. Plus One
    oracle之6过滤与排序
    oracle之5多行函数之过滤分组函数
    oracle之4多行函数之分组函数
    oracle之3单行函数之条件表达式
  • 原文地址:https://www.cnblogs.com/zhangwensi/p/7031169.html
Copyright © 2011-2022 走看看