hive 3种搭建模式 采用分离的方式
array map struct
from tb_temp insert into tb_user1 select 1,'name',array('a','b','c'),map('key1','value1','key2','value2') limit 1; 要求tb_temp中至少有一条语句。
drop database mydb cascade
desc formatted tb_user
stored as ORC 创建表时改格式 不是txt了
默认情况下 创建了都是内部表 内部表删除时 hdfs上的数据也被删除 创建外部表 要加关键字external 删除外部表 hdfs上文件依然存在 外部表 用在 数据先存在于hdfs上时。 创建表路径可以通过location指定
create table tb_user1_1 like tb_user1; 只和tb_user1的结构一样 没有数据
create table tb_user1_2 as select name,addrs from tb_user1; 有select后的结构同时也有 tb_user1的数据 但是没有分隔符
创建分区partitioned by (age int, sex string) 多重分区的文件结构 age->sex->data.txt 一层套一层的形式
alter table tb_user5 add partition(age=14,sex='female'); 添加分区 就是在hdfs上添加空的文件结构没有数据
load data local inpath '/root/user24.txt' into table tb_user4 partition(age=70);可以添加数据 也可以通过hdfs上传文件 添加数据
如果 如果分区是通过HDFS操作手动添加的,则数据库表不会认识该分区 Msck repair table tb_user4;
alter table tb_user4 drop partition(age=70);删除分区
from tb_user4
insert into table tb_user6
select id,name, likes, addrs where age=17
insert into table tb_user61
select id,name, likes, addrs where age=24 从一个表中查询数据 批量插入另一个表中 如果没有这个值 后面的会插入null进
insert into(overwrite) table tb_user61
select id, name, likes, addrs from tb_user63 where id in (4,6); 从查找数据插入到表中 into追加 overwrite覆盖
hive 中的beeline 相当于是一个mysql的客户端
hive 的jdbc 类似于mysql的jdbc