大数据--hive的基础认识(学习笔记)

一.什么是hive

      Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储(hdfs)和计算(Map-reduce)方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。

也就是说,Hive就是在Hadoop上加了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦。

Hive封装了:1). 解释器  2).编译器  3).优化器

二.Hive的架构

.Hive就是大数据中的数据仓库,擅长处理格式良好的结构化数据。对非结构化并不合适;
.hive能够把结构良好的数据文件映射成一张关系数据库的表,并提供类似SQL(HQL)的查询功能
.Hive会把SQL语句转换成MapReduce任务运行
.提供ETL的工具
.Hive运行时,元数据存储在关系型数据库中

三. Hive的优缺点

优点:1).成本低,入手快  2). 不需要学习MapReduce开发

缺点:不支持实时查询,更适合离线任务

四.Hive的HQL说明

1). Hive 不是支持所有的SQL语句,不支持更新和删除操作,不支持单条插入。只支持批量的插入。(重点)
2). 不支持事物的增删改,仅仅支持批量导入
3). 数据保存:HDFS
4). 延时:hive延时高
5). hive的查询很慢,一般都写定时任务
6). hive的煊点是支持多表插入

五. Hive的数据类型

 

   六. Hive的表

    1). 托管表(managed table)(内部表)--如果删除内部表时,内部表的数据也会被删除
    2). 外部表 --如果删除外部表时,外部表的数据不会被删除,所以一般设计外部表

    3). 用命令查看内置服务: hive --service help

  七. Hive创建表

   创建表.create table emp

   1).静态分区表
   添加加分区:alter table emp add if not exists partition(dt='2017-06-13')  //dt='2017-06-13'是分区名
   查看分区:hadoop fs -ls /user/hive/warehouse/emp
   创建目录:hadoop fs -mkdir /user/hive/warehouse/emp
   查看表:show partitions emp
   查看表结构:desc formatted emp
   加载本地数据:load local inpath '/temp/a.txt' into table emp partition (dt='2019-06-13') // 把文件放到2019-06-13这个分区
   查看文件内容:more a.txt
   分区列在原始的数据中是不存在的,但是加载到hive中指定分区,用select查询后,分区列是存在的。

   2).动态分区表

   1.动态分区前先要设置一个参数:set hive.exec.dynamic.partition.mode=nonstrict;
   2.insert into table emp_2 partition(dt) select name, salary, dt from emp;
   3.set hive.exec.dynamic.partition.mode 执行,表示读当前配置的设置 加"=" 是修改
   4.查看表的分区: show partitions emp_2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值