[] Hive Hive basic operations

Data warehouse operation

创建数据库DB
create database DB;
查看数据库DB
show database DB;
使用数据库DB
use DB;
删除数据库DB
drop database DB;

Hive operation data table
by

创建内部表cat,有两个字段为cat_id和cat_name,字符类型为string
create table cat(cat_id string,cat_name string);
创建一个外部表,表名为cat2,有两个字段为cat_id和cat_name,字符类型为string
create table external cat2(cat_id string,cat_name string);
创建与已知表相同结构的表,创建一个与cat表结构相同的表,名为cat4,这里要用到like关键字。
create table cat4 like cat;
创建一个cat_group表,包含group_id和group_name两个字段,字符类型为string,以“\t”为分隔符
create table cat_group(group_id string,group_name string)row format delimited fields terminated by ‘\t’ stored as textfile;

[row format delimited] keyword is used to set the table created when loading data to support the column separator.
[stored as textfile] key, is to set the type of load data, TEXTFILE default, if the data file is a plain text, is to use the [stored as textfile], and then directly copied from the local to the HDFS, Hive can be directly identified data.
delete

删除名为cat3的表
drop table cat23;
删除goods表中的cat_id分区
alter table goods drop if exists partition (cat_id=‘52051’);

change

修改cat表的表结构。对cat表添加两个字段group_id和cat_code
alter table cat add columns(group_id string,cat_code string);
修改cat2表的表名。把cat2表重命名为cat3
alter table cat2 rename cat3;
修改表分区,将分区表goods中的分区列cat_id=52052改为cat_id=52051
alter table goods partition(cat_id=52052) rename to partition(cat_id=52051);

check

查看全部表
show tables;
查看cat表结构
desc cat;
查看表goods中的分区
show partitions goods;
查看cat_group表,限制输出10条记录。
select * from cat_group limit 10;

Import data derived Hive

将Linux本地/data/hive2目录下的cat_group文件导入到Hive中的cat_group表中。
load data local inpath ‘/data/hive2/cat_group’ into table cat_group;

将本地/data/hive2/下的cat_group表上传到HDFS的/myhive2上
hadoop fs -put /data/hive2/cat_group /myhive2

将cat_group1表中的数据导入到cat_group2表中
insert into table cat_group2 select * from cat_group1;
或
insert overwrite table cat_group2 select * from cat_group1;
(insert overwrite 会覆盖数据)

将Hive中的cat_group表导出到本地文件系统/data/hive2/out中
insert overwrite local directory ‘/data/hive2/out’ select * from cat_group;

将cat_group中的数据导入到cat_group4中
insert into table cat_group4 select * from cat_group;

Hive bucket operation

创建一个名为goods_t的表,包含两个字段goods_id和goods_status,字符类型都为string,按cat_id string做分区,按goods_status列聚类和goods_id列排序,划分成两个桶
create table goods_t(goods_id string,goods_status string) partitioned by (cat_id string)
clustered by(goods_status) sorted by (goods_id) into 2 buckets;
向goods_t表中插入goods_2表中的数据
from goods_2 insert overwrite table goods_t partition(cat_id=‘52063’) select goods_id,goods_status;
查看结果
select * from goods_t tablesample(bucket 1 out of 2 on goods_id);

Guess you like

Origin blog.csdn.net/weixin_44039347/article/details/91601110