2021-01-22 初识Hive和Hadoop

        最初我们用excel就可以做常规的数据存储和分析,但是当excel的数据超过10万条性能就不行了,有的版本的excel只能打开约6万条数据。后来,我们用mysql存储和查询数据,几千万的数据mysql还可以。当大数据(5V)到来,我们开始使用hive数据仓库,对于hive来说,几十亿几百亿的数据也不是问题,数据量级上一般不再是限制了。此外,数据仓库的设计,是面向分析的。

        Hadoop 专为离线和大规模数据而设计,不适合在线处理模式。Hive是基于Hadoop的开源数据仓库工具,用于处理海量结构化数据。Hive 把HDFS中结构化的数据文件映射为数据表,通过HiveSQL转换为一系系列的MapReduce任务完成数据分析与处理。

1.Hive和传统数据库的比较

⚠️:1.hive加载数据的时候,不会进行任何处理,不会对某个字段建立索引,访问特定值时,会粗暴地扫描所有数据,延迟比较高,因为需要调用MapReduce计算框架,本身也会存在一定延迟,但是因为MapReduce的并行任务处理,其查询效率比较高,尤其是在数据量比较大的时优势体现更明显。传统数据库的优势主要是在数据量相对较小的时候。2.hive简单的查询(如:select 字段 from table的),不使用MapReduce。

2.Hive的数据类型

        Hive的数据类型主要分为基本数据类型和复杂数据类型。其中,基本数据类型和mysql基本相同,Hive中使用字符串一般以String为主(mysql没有)。在hive中,日期格式的数据一般存储为String或者timestamp类型。

        复杂数据类型是hive特有的,mysql没有该数据类型。

3.使用FinalShell连接Hive

4.HiveSql查询的部分知识点

(1)查询格式和执行顺序。查询的基本格式:select A from B where C  group by  XXX having xxx order by  [asc, desc]。执行顺序:from...where ...group by ...having ... select ... order by。(HQL在reduce的执行顺序和mysql一致,map阶段稍有不同)

(2)常用的查询函数

5.hive和表连接

        在关系型数据库中,多表连接比较关键;在hive中,也会有多表连接的场景,但是考虑到数据量很大,表连接查询效率比较受限,更多的是去构造业务主题相关的宽表以减少对表连接的依赖,并保证数据查询效率。⚠️1⃣️和mysql不同,hive支持full join,但实际使用较少。2⃣️hive中,不支持in子查询。例如,查询在一个表中存在,但另一个表中不存在时,一般使用"select  * from table a left join table b on a.关联字段=b.关联字段 where  b.关联字段 is null;"。

6.常用的linux命令

Linux系统中,我们通过命令与主机交互。Linux命令的基本格式为:命令  -选项  参数 

----  完善中-----

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Hive是什么 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查...
    大空翼123阅读 255评论 0 0
  • Hive是构建在Hadoop HDFS上得一个数据仓库 数据仓库是一个面向主题的、集成的、不可更新的、随时间不变化...
    Sx_Ren阅读 961评论 0 9
  • 一、Hive简介 1.1 Hive是什么 由Facebook开源的一款基于hadoop的用于统计海量结构化数据的一...
    这一刻_776b阅读 3,528评论 0 1
  • 一 Hive基本概念 1️⃣什么是hive Hive:由Facebook开源用于解决海量结构化日志的数据统计工具....
    十丈_红尘阅读 316评论 0 0
  • 快乐大数据第5次课 hive(1)工作原理Hive的执行入口是Driver,执行的SQL语句首先提交到Drive驱...
    快乐大数据阅读 430评论 0 0