Hive是基于Hadoop的一个数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能mysql
hive的元数据存储:一般是存储在关系数据库如 mysql(推荐) , derby(内嵌数据库)中sql
hive的组成部分 :解释器、编译器、优化器、执行器数据库
hive具备sql数据库的外表,但应用场景彻底不一样,hive只适合用来作批量数据统计分析工具
hive中的数据表分为内部表、外部表oop
当删除内部表的时候,表中的数据会跟着一块删除post
删除外部表时候,外部表会被删除,外部表的数据不会被删除测试
使用hive以前须要启动hadoop集群,由于hive须要依赖于hadoop集群进行工做(hive2.0以前)优化
如下是对hive重复数据处理ui
先建立一张测试表spa
建表语句:create table hive_jdbc_test (key string,value string) partitioned by (day string) row format delimited fields terminated by ',' stored as textfile
准备的数据
uuid,hello=>0
uuid,hello=>0
uuid,hello=>1
uuid,hello=>1
uuid,hello=>2
uuid,hello=>2
uuid,hello=>3
把数据插入到2018-1-1分区
此时咱们对hive表数据进行去重操做
insert overwrite table hive_jdbc_test partition(day='2018-1-1')
select key,value
from (SELECT *, Row_Number() OVER (partition by key,value ORDER BY value desc) rank
FROM hive_jdbc_test where day='2018-1-1') t
where t.rank=1;
此时重复数据会被处理完毕