DML:数据库操作语言
1.只删除psn表中数据,delete和truncate一个通过事务和没通过事务的区别,delete·不行·,truncate才可以
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
FROM from_statement
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1
[INSERT OVERWRITE TABLE tablename2 [PARTITION ... [IF NOT EXISTS]] elect_statement2]
[INSERT INTO TABLE tablename2 [PARTITION ...] select_statement2] ...;
区分insert into 和 insert overowrite:
1、insert into 语句
Hive> insert into table account select id,age,name from account_tmp;
2、insert overwrite语句
hive> insert overwrite table account2 select id,age,name from account_tmp;
插入的数据:
001 20 zhangsan
两者的区别:
insert overwrite 会覆盖已经存在的数据,假如原始表使用overwrite 上述的数据,先现将原始表的数据remove,再插入新数据。最后表的数据 只有001 20 zhangsan这一条记录。
insert into 只是简单的插入,不考虑原始表的数据,直接追加到表中。最后表的数据是原始数据和新插入的 001 20 zhangsan
原文链接:https://blog.csdn.net/qq_31382921/article/details/70911108
hive一共有四种导入方式,使用的话只有两种
一起学Hive——详解四种导入数据的方式
主要的有以下两种,其余不推荐
load data local inpath '/home/hadoop/hive_test/load_data_local.txt' into table load_data_local;
from load_data_local
insert overwrite table load_data_partition partition (age)
select name,age
insert overwrite table load_data_local3
select *
上面的这个sql语句同时插入到表load_data_partition和load_data_local3表中。这种方式非常高效,对于大数据量并且要将数据插入到多个表的情况下,建议用这种方式。
SerDe
Hive SerDe - Serializer and Deserializer
SerDe 用于做序列化和反序列化。
构建在数据存储和执行引擎之间,对两者实现解耦。
Hive通过ROW FORMAT DELIMITED以及SERDE进行内容的读写。
row_format
: DELIMITED
[FIELDS TERMINATED BY char [ESCAPED BY char]]
[COLLECTION ITEMS TERMINATED BY char] //指定读取文件的规则
[MAP KEYS TERMINATED BY char]
[LINES TERMINATED BY char]
: SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
Hive正则匹配
CREATE TABLE logtbl (
host STRING,
identity STRING,
t_user STRING,
time STRING,
request STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) \\[(.*)\\] \"(.*)\" (-|[0-9]*) (-|[0-9]*)"
)
STORED AS TEXTFILE;
([^ ]*) ([^ ]*) ([^ ]*) \\[(.*)\\] \"(.*)\" (-|[0-9]*) (-|[0-9]*)//([^ ]*)非空*所有\\转义
//格式
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-upper.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-nav.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /asf-logo.png HTTP/1.1" 304 -
2创建表并加载数据文件.png
3查看数据.png