,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,, Hive 数据表有五种类型:内部表,外部表,分区表,桶表,视图表,默认以tab 分隔
,,* MySQL (Oracle),表默认以逗号分隔,因此,要想导入MySQL (Oracle),数据,需要设置分隔符,在建表语句后加:
,,,,,,,,,,,, row format ,delimited ,fields ,terminated by & # 39;& # 39;;
,,,,内部表:,相当于MySQL 中的表,将数据保存到Hive 自己的数据仓库目录中:/usr/蜂巢/仓库
,,,,,,,,,,,,例子:
create table emp
(empno int,
ename字符串,字符串
工作,
下int,
hiredate字符串,
萨尔int,
通讯int, int
deptno
);
导入数据到表中:本地,HDFS
加载语句、插入语句
加载语句相当于ctrl + X
数据加载inpath & # 39;/斯科特emp.csv& # 39;表emp,,,- - - - -在导入HDFS
数据加载本地inpath & # 39;/根/temp/* * * & # 39;表emp,,,- - - - -在导入本地文件
创建表,并且指定分隔符
create table emp1
(empno int,
ename字符串,字符串
工作,
下int,
hiredate字符串,
萨尔int,
通讯int, int
deptno
)行格式分隔字段终止& # 39;& # 39;;
创建部门表,保存部门数据
create table部门
(deptno int,
dname字符串,
loc字符串)行格式分隔字段终止& # 39;& # 39;;
数据加载inpath & # 39;/斯科特dept.csv& # 39;表部门;
,,,,外部表:相对于内部表,数据不在自己的数据仓库中,只保存数据的元信息
,,,,,,,,例子:
(*)实验的数据
[root@bigdata11 ~] # hdfs dfs猫/学生/student01。txt
1,汤姆,23日
2,玛丽,24
[root@bigdata11 ~] # hdfs dfs猫/学生/student02.txt
3,迈克,26日
(*)定义:(1)表结构,(2)指向的路径
创建外部表students_ext
(sid int, sname字符串,年龄int)
行格式分隔字段被& # 39;终止,& # 39;
位置& # 39;/学生# 39;;
,,,,分区表:将数据按照设定的条件分开存储,提高查询效率,分区- - - - -→,目录
,,,,,,,,例子:
,,
(*)根据员工的部门号建立分区
create table emp_part
(empno int,
ename字符串,字符串
工作,
下int,
hiredate字符串,
萨尔int, int
通讯
)分区,(deptno int)
行格式分隔字段终止& # 39;& # 39;;
往分区表中导入数据:指明分区
插入表emp_part分区(deptno=10)选择empno, ename,工作,下,hiredate,萨尔,通讯从emp1 deptno=10;
插入表emp_part分区(deptno=20)选择empno, ename,工作,下,hiredate,萨尔,通讯从emp1 deptno=20;
插入表emp_part分区(deptno=30)选择empno, ename,工作,下,hiredate,萨尔,通讯从emp1 deptno=30;
,,,,桶,表:本质上也是一种分区表、类似,hash 分区,,桶——比;文件
,,,,,,,,例子:
,创建一个桶表,按照员工的职位工作分桶
create table emp_bucket
(empno int,
ename字符串,字符串
工作,
下int,
hiredate字符串,
萨尔int,
通讯int, int
deptno
)集群(工作)到4桶
行格式分隔字段终止& # 39;& # 39;;
使用桶表,需要打开一个开关
设置hive.enforce.bucketing=true;
使用子查询插入数据
插入emp_bucket select * from emp1;
,,,,视图表:视图表是一个虚表,不存储数据,用来简化复杂的查询
,,,,,,,,例子:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,查询部门名称,员工的姓名
创建视图myview
选择dept.dname emp1。ename
从emp1部门
emp1.deptno=dept.deptno;
select * from myview;