hive的常用操作

1、hive的数据类型

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

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 ‘\t‘;

3、进阶操作

  ①、分区表

create table OUFEI_CHARGE_ORDERINFO_LOG
(state_date string,
 create_date date,
 sendtimes int)
 partitioned by (logdate string)  row format delimited fields   terminated by ‘\t‘;

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

  

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

  ②、外部表

 create external table t_detail
 (state_date string,
  create_date date,
  sendtimes int)
  partitioned by (logdate string)row format delimited fields terminated by ‘\t‘ 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完成,那么你应该创建内部表,否则使用外部表!

  

     

    

时间: 2024-11-09 15:07:48

hive的常用操作的相关文章

Hive基础之Hive表常用操作

本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED

Hive Shell常用操作

1.本文命令的两种模式: 交互模式,即hive的shell环境:hive > …. 非交互模式:普通的Linux命令模式:%..... 2.Hive Shell常用操作 1) hive -e:从命令行执行指定的HQL,不需要分号: % hive -e 'select * from dummy' > a.txt 2) hive –f: 执行HQL脚本 % hive -f /home/my/hive-script.sql 3) hive -i:在进入交互模式之前,执行初始化sql文件 % hive

hive (二) ----- hive的常用操作

一.hive操作 1.创建表 CREATE TABLE t3(id int,name string,age int) PARTITIONED BY (Year INT, Month INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ; 2.导出表结构+数据 EXPORT TABLE customers TO '/user/centos/tmp.txt'; 3.排序 1)order全排序 order by 会对输入做全局排序,因此只有一个redu

Hive数据类型及常用操作总结(一)

一.Hive 数据类型 Hive 提供了基本数据类型和复杂数据类型,复杂数据类型是 Java 语言所不具有的. 基本数据类型 Hive是用java开发的,hive里的基本数据类型和java的基本数据类型也是一一对应的,除了string类型.有符号的整数类型:TINYINT.SMALLINT.INT和BIGINT分别等价于java的byte.short.int和long原子类型,它们分别为1字节.2字节.4字节和8字节有符号整数.Hive的浮点数据类型FLOAT和DOUBLE,对应于java的基本

hive 表的常用操作

使用load 方式加载数据到Hive 表中,注意分区表加载数据的特殊性 如何保存HiveQL 查询结果:保存到表中,保存到本地文件(注意指定列分隔符) 常见查询练习,如group by.having.join.sort by.order by 等. 一:hive 表的操作 1.1.1 hive的库的创建与数据库的查看: hive(default)> create database yangyang; hive(default)> use yangyang; hive(yangyang)>

如何监听对 HIVE 元数据的操作?

目录 简介 HIVE 基本操作 获取 HIVE 源码 编译 HIVE 源码 启动 HIVE 停止 HIVE 监听对 HIVE 元数据的操作 参考文档 简介 公司有个元数据管理平台,会定期同步 HIVE 中的元数据.但这样做有个问题,就是如果在 HIVE 中插入了一张新表或者新库等 HIVE 元数据变更的操作,元数据管理平台不能及时与 HIVE 表中的数据进行同步.因此需要调研下 HIVE 中有没有类似的监听机制,可以实现 HIVE 中有元数据更改时,能及时发通知给 元数据平台.整体的需求图如下所

Python 字典的特点和常用操作

一.字典帮助文档 >>> dir(dict) ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt

postgresql的ALTER常用操作

postgresql版本:psql (9.3.4) 1.增加一列ALTER TABLE table_name ADD column_name datatype; 2.删除一列 ALTER TABLE table_name DROP column_name; 3.更改列的数据类型 ALTER TABLE table_name ALTER column_name TYPE datatype; 4.表的重命名 ALTER TABLE table_name RENAME TO new_name; 5.更

Mysql数据库常用操作

1.备份数据库 [[email protected] ~]# mysqldump -h 192.168.0.8 -uroot  -p'123456'  user >user.sql 2.查看mysql数据库字符集设置 mysql> show variables like 'character_set_%';+--------------------------+----------------------------+| Variable_name            | Value