hive表:可以加分区字段、存储于hdfs目录中
建表语句:
create table db.table_name(
BANKNAME string,
REGIONNAME string,
MANUFACTURER string,
YZWAZ int,
AZWKT int,
YX int,
ZT int,
TB int,
SW int
)partitioned by (statmonth string) row format delimited fields terminated by '\t' stored as textfile;
操作分区:
1、添加分区:
ALTER TABLE table_name if not exists add partition (partName='xxx');
2、删除分区:
ALTER TABLE table_name DROP IF EXISTS PARTITION (partName='xxx');
操作表:
1、删除表:drop table table_name;
2、创建表:create table db.table_name()partitioned by (statmonth string) row format delimited fields terminated by '\t' stored as textfile;
操作数据——>1、删除表数据:truncate table table_name;
2、插入数据:
①insert into table_name1 select * from table_name2;//insert into table_name values("","","");
②insert overwrite table_name1 select * from table_name2;
3、输入数据:
①sqoop import --hive-import --connect jdbc:mysql://ip:3306/db --username user --password passwd --query "
and \$CONDITIONS " --verbose -m 4 --hive-table db.table_name --target-dir user/hive/warehouse/bigdata.db/table_name --split-by 表主键 --hive-partition-key 分区字段 --hive-partition-value '2019-01'
(其中前面为数据源的数据库配置如Mysql
verbose -m 几个分区
target-dir 为hdfs存储路径用show create table table_name 可以看到,从/user处开始
split-by 按某个字段切割,所以该字段为主键级别,不能重复
分区字段为自己定义的建表时指定)
②beeline>load data local inpath '/home/user/data.txt' overwrite into table table_name partition ( partName='');
操作hdfs:
1、查询:hdfs dfs -ls 目录;
查询hdfs中名为name1的文件: hdfs dfs ls name1
2、删除: hdfs dfs -rm 文件;//hdfs dfs -rm -r 文件夹;
3、抓取内容 : bin/hdfs dfs -cat 目录/user/...
4、传文件至hdfs:hdfs dfs -put file.txt 目录
5、获取文件:hdfs dfs -get 目录文件 文件名
6、创建文件: hdfs dfs -mkdir /user/目录/文件名
7、复制文件: hdfs dfs -copyFromLocal 源路径 路径
8、合并文件到本地:hdfs dfs -getmerge 位于hdfs中的原文件(里面有多个文件) 合并后的文件名
hive执行sql文件:hive -f filename.sql