1 hive的数据类型
①基本类型
布尔:boolean
整数:int(4byte)(tinyint(1byte),smallint(2byte),bigint(8byte))
浮点数:float(4byte)(double(8byte),decimal)
字符串类型:string(varchar(可变长度),char(固定长度的字符串))
日期类型:timestamp(返回自1970-1-1到当前时间经过的毫秒数),date(例如:'2012-3-16')
②集合类型
数组:array(例如array(1,3,5))
结构:struct(例如struct('张三','和平区',8))
映射:map(例如 map('张三',8,"李四",18))
联合:union(多个类型选其中之一,新版本)
2 hive中的数据库
hive的数据库本质是hdfs上目录,
①查询数据库
show databases;
//查询以h开头的数据的列表,注意like后字符串匹配使用正则
show databases like 'h.*';
② 创建数据库
create database [if not exitsts] 数据库名
[location 'hdfs的根目录']
例如:在hdfs的根目录创建数据库
create database yourdb
location '/home/hadoop/myhivedb';
③ 查看数据库属性命令:
desc database yourdb;
系统在hdfs根目录下创建该数据库对应目录:
hdfs://ping1:9000/home/hadoop/myhivedb
④ 删除数据库
drop database 数据名 [cascade]
cascade级联删除选项;
3 创建表
3.1 管理表
创建内部表,当前使用drop table语句删除表时,存在hdfs上表的目录会被删除
create table [if not exists] 表名
(列名 数据类型,
....)
[comment '表的描述']
[row format delimited
fields terminated by '\001'--字段之间的分割符\001八进制对应^A
collection items terminated by '\002'--数组元素和结构元素的的分割符 ^B
map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
lines terminated by '\n'--行之间的分割符换行
]--指定表行的格式
[stored as textfile]--指定表存储的数据格式
[location '可以指定表存储的路径']
3.2 外部表
create external table [if not exitsts] 表名
(列名 数据类型,
....)
[comment '表的描述']
[row format delimited
fields terminated by '\001'--字段之间的分割符\001八进制对应^A
collection items terminated by '\002'--数组元素和结构元素的的分割符 ^B
map keys terminated by '\003'--对应map类型的key-value之间分隔符 ^C
lines terminated by '\n'--行之间的分割符换行
]--指定表行的格式
[stored as textfile]--指定表存储的数据格式
[location '可以指定表存储的路径']
例如:
指定hdfs上的外部存储目录,当使用drop table时,只会删除存储在元数据中的表的映射信息;
而hdfs上的表对应的目录不会被删除;