HIVE(1)-概述

1.什么是HIVE:     架在hadoop上的一个软件.
2.用来干什么的:操作MapReduce的。操作MapReduce得java写程序,太费劲,用这个类SQL的工具简单。
3.数据库,数据仓库啥区别:
     数据仓库,大,无索引,分片查询。

 数据库数据仓库 
 只存放当前值,实时值静态历史的数据 
 存放3.5个月定期的,几年或者更长的 
 数据结构复杂数据结构简单 
 访问频率高访问频率低 
 业务人员公司高层 
    

4.HQL,SQL啥区别:

 HQLSQL 
数据存储位置HDFS  
数据格式用户定义  
数据更新不支持单条更新支持 
索引 
执行延迟 
可扩展性 
数据规模 
执行mapreduceExecutor 
    

5.HIVE:三种表分类

    
内部表 创建目录,目录下存储这份数据,删除表时,数据也会被删除的。很少用。 
外部表create external table t2()创建目录,删除表,不会删除hdfs上的原始数据 
分区表create table logs( ts int,line string)hive中无索引。全表扫描不经济,所以创建分区。针对目录及的分区。避免全表扫描,直接进子目录。

 

6.HIVE:数据类型

下面是与SQL不一样的


7. 使用

 语法 与sql区别
1.建表(直接创建)

create table t_movie( movie_name STRING, actors ARRAY<string>, first_date)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

COLLECTION ITEMS TERMINATED BY '_'

MAP KEYS TERMINATED BY ':'

 

1.大小写也是不敏感的

2.分割符

    建表(查询建表法)Create table t2 as select id,name from t1 ;   复制表结构+数据
    建表(like法)create table t3 like t2         ;                         复制表结构,无数据
2.修改(表名)alter table old_name rename to new_name;  
    修改(列名)alter table name change column_name new_name new_type;  
     增加(列)alter table emp add columns(age int);  
3.删除(表)drop table (if exists ) table_name()purge;
drop table if exists t4;
  
4.插入(本地导入到HIVE)load data local inpath '/home/hadoop/haha.txt' into table t1;  
   插入(hdfs导入到HIVE)load data inpath'/test' into table t5;  
5.导出(保存到本地)insert overwrite local directory '/home/hadoop/' select * from t1;  
导出(保存到hdfs)insert overwrite directory '/abc' select * from t1;  

 

 

 

posted @ 2020-05-16 16:32  jasmineTang  阅读(61)  评论(0)    收藏  举报