导入数据:load data local inpath 'xx/xx/xx.txt' into table T_user partition(country = 'USA')
建表:
create table T_user(id int, name string) partitioned by (dt string, hour string)
row format delimited fieleds terminated by ',' ——指定分隔符
注:
1、创建一个表,字段厅缓烂之间用 \t 分隔(也哪猛可以用其他字符分割,自定义默认‘\001’);
hive>create table student (id int, name string) row format delimited fields terminated by '\t'
2、将本地一个数据提交到hive里去
hive>load data local inpath '/home/student.txt' into table student
2.1 增加分区表数据
alter table ZHIYOUBAO.CHECK_RECORD add partition (years='xxxx',months='xx',days='xx') location 扮漏 '/ZYB/CHECK_RECORD/yy=xxxx/mm=xx/dd=xx/'
3、查询表里的数据:
hive>select * from student
我们有一批日志数据存储在hdfs上,按天创建目录,如2018-07-31的日志hdfs路径为:/data/logs/gateway/20180731。现在要用hive分析数据,同时要保证这些数并圆据目录不能改变,就需要hive用外表的方式与这些数据氏蔽灶进行关歼扮联。
示例:
但是,看下文件列表
一共108个待添加的目录,这样一个个添加太累人,有没有批量添加的方法呢?
Hive有个MSCK命令,可以扫描数据分区目录,修复元信息,目录与元信息不一致时,能自动更新。
但是,数据目录必须是Hive习惯路径格式:
同时,建表时指定LOCATION为分区目录的父目录:
这时,用命令
即可自动把所有的数据按dt分区,添加到gateway_analysis中。
由于我们的目录格式不符合,只能用ADD PARTITION的方式了。
为减少工作量,写了个shell脚本,自动添加 /data/logs/gateway 目录下所有的分区目录到gateway_analysis表中:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)