1. 删除分区
ALTER TABLE dms.tracklog_5min DROP PARTITION(DAY='${today}');
ALTER TABLE table_name DROP IF EXISTS PARTITION(dt='2018-01-01', game_code='gcol')
2.1. 添加分区
alter table dms.tracklog_5min add partition(day='${today}') location '/dw/dms/tracklog_5min/day=${today}';
目录为hdfs的目录时,目录中如有数据会自动加载,不存在hive自动创建。
use db; alter table table_name add if not exists partition(day=${logdate}) location ‘dir’;
2.2. load已有数据到hive分区中
LOAD DATA INPATH '/dw/ods/flumelck/day=20151111/lck.1447234402226.gz' INTO TABLE ods.flumelck PARTITION (day='20151111');
分区存在则追加数据,不存在则新建分区。
2.3. 如果需重写该分区则加overwrite
LOAD DATA INPATH '/dw/ods/flumelck/day=20151111/lck.1447235127866.gz' overwrite INTO TABLE ods.flumelck PARTITION (day='20151112');
注意:如果load的hdfs目录与分区目录不一致,则会mv数据到分区目录中。
3. 删除表
Drop table DROP TABLE [IF EXISTS] table_name;
4. 建内部表
use lhc;
#drop table dw_wide_site;
create table dw_wide_site(
`siteNo` STRING COMMENT '新建站点时系统分配的站点唯一编号',
`siteBusinessNo` STRING COMMENT '站点业务编码',
`siteName` STRING COMMENT '站点名称',
`siteType` SMALLINT COMMENT '站点类型,0可发货 1可提货 ^^',
`province` STRING COMMENT '站点所在省份',
`city` STRING COMMENT '站点所在城市',
`county` STRING COMMENT '站点所在区县',
`address` STRING COMMENT '站点地址',
`lnglat` DOUBLE COMMENT '经度,纬度',
`leaderName` STRING COMMENT '负责人姓名',
`leaderContact` STRING COMMENT '负责人联系方式',
`enterpriseName` STRING COMMENT '归属企业名称',
`deptNo` STRING COMMENT '部门编号',
`createTime` STRING COMMENT '站点创建日期',
`updateTime` STRING COMMENT '站点基本信息的更新日期'
)
COMMENT '站点信息 部分数据根据订单数据逐日统计产生。'
PARTITIONED BY (
`ymd` string)
row format delimited
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '
'
;
hadoop fs -cat /user/hive/warehouse/original.db/t_yundan_info/t_yundan_info.txt |more
hadoop fs -ls /user/hive/warehouse/lhc.db/
hadoop fs -mkdir /user/hive/warehouse/lhc.db/dw_wide_site/