Hive 表增删改查CRUD操作

来源:互联网 发布:cf聊天软件下载 编辑:程序博客网 时间:2024/05/17 07:08

建表操作

建立外部表

CREATE EXTERNAL TABLE dg_devicetoken_day (    id bigint,    user_id bigint,    device_token STRING,    client_id int,    badge int,    ifa string,    imei string,    modifytime STRING)PARTITIONED BY(p_day BIGINT)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'STORED AS RCFILE LOCATION '/user/hive/warehouse/dg/bigtables/dg_devicetoken_day';

建立临时表

临时表采用逗号 ‘,’ 分割

CREATE TABLE `dh_tmp_pt_data`(  `id` string,  `uid` string,   `mobile` string,   `client` string)row format delimited fields terminated by ',';

插入数据

查询表数据再插入

query_c="INSERT OVERWRITE TABLE dg_devicetoken_day partition (p_day=${CUR_PARTITION}) \select id,user_id,device_token,client_id,badge,ifa,imei,modifytime \from dg_devicetoken \where client_id=3 and modifytime<>''"# 插入数据hive -e "$query_c"

插入load本地数据文件

load data local inpath '/opt/DATA/goldmine/src/an.log' into table dh_cook_tag

删除

Hive 中,仅仅删除表是不够的,如果这个表是外部表,那么还需要删除HDFS中的文件

删除分区数据

query_d="ALTER TABLE dg_devicetoken_day DROP IF EXISTS PARTITION(p_day=${BEFORE_PARTITION})"# 删除 Hive 表数据hive -e "$query_d"# 删除hdfs数据hadoop fs -rm -r /user/hive/warehouse/dg/bigtables/dg_devicetoken_day/p_day=${BEFORE_PARTITION}# 查看数据文件是否还存在hadoop fs -ls -h /user/hive/warehouse/dg/bigtables/dg_devicetoken_day

删除整表数据

# 删除Hive表DROP TABLE IF EXISTS dg_devicetoken_day# 删除HDFS数据文件hadoop fs -rm -r /user/hive/warehouse/dg/bigtables/dg_devicetoken_day
原创粉丝点击