hive的小知识

大家好,我是曜耀。我来讲一下hive的一些小知识点。

  hive是hadoop下的一个数据仓库工具,用来进行数据的提取、加载、转换,是一种存储、查询和分析数据的一种大规模的机制。hive与mysql不同,hive是不能对单一的数据进行修改和添加,只能对数据进行一些基本的查询,条件查询的一些类似于mysql的一些机制。

  hive数据仓库工具将结构化的数据文件眏射成一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务执行。hive的优点是学习成本低,可以透过类似的SQL语句实现快速MapReduce统计,使得MapReduce变得更加简单,就避免了对MapReduce开发专门的应用程序。

hive可以通过SQL语句转化为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这种SQL我们统称hive的SQL语句。通过这种机制使得对MapReduce不熟悉的用户可以很方便的利用SQL的语言进行查询、汇总和分析数据。并且MapReduce的开发成员可以把自己写的mapper和reducer作为插件来支持hive进行一些跟复杂的数据分析。

hive不适合联机事务处理,也不提供实时查询功能。它最适合用于大量的不可变机制的待处理数据的作业。

总的来说hive的特点是:可伸缩,可扩展、容错、输入格式的松散耦合性。

hive是一种底层封装了hadoop的数据仓库处理工具,使用类SQL的hiveSQL语言实现数据查询,所有hive的数据都存储在hadoop兼容的文件系统。hive在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS设定的目录下,因此hive不支持数据的改写和添加,所有的数据都是在加载的时候确定。

以下是我搜集的关于hive的一些特点:

1.支持创建索引,优化数据查询

2.不同的存储类型,纯文本文件、HBASE的一些文件

3.将元数据保存在关系数据库中,有效的减少了在查询过程中执行语义检查的时间。

4.能直接使用存储在hadoop文件系统中的数据。

5.内置大量用户函数UDF来操作时间,字符串和其他的数据挖掘工具,支持用户扩展UDF函数来完成内置函数无法实现的操作。

6.类似SQL语句的查询方式,将SQL查询转换为MapReduce的job在hadoop集群上执行。

hive中包含以下四类数据模型:表(Table)、外部表(External Table)、分区(Partition)、桶(Bucket)。 

(1) hive中的Table和数据库中的Table在概念上是类似的。在hive中每一个Table都有一个相应的目录存储数据。 

(2)外部表是一个已经存储在HDFS中,并具有一定格式的数据。使用外部表意味着hive表内的数据不在hive的数据仓库内,它会到仓库目录以外的位置访问数据。 

外部表和普通表的操作不同,创建普通表的操作分为两个步骤,即表的创建步骤和数据装入步骤(可以分开也可以同时完成)。在数据的装入过程中,实际数据会移动到数据表所在的hive数据仓库文件目录中,其后对该数据表的访问将直接访问装入所对应文件目录中的数据。删除表时,该表的元数据和在数据仓库目录下的实际数据将同时删除。 

外部表的创建只有一个步骤,创建表和装入数据同时完成。外部表的实际数据存储在创建语句。LOCATION参数指定的外部HDFS文件路径中,但这个数据并不会移动到hive数据仓库的文件目录中。删除外部表时,仅删除其元数据,保存在外部HDFS文件目录中的数据不会被删除。 

(3)分区对应于数据库中的分区列的密集索引,但是hive中分区的组织方式和数据库中的很不相同。在hive中,表中的一个分区对应于表下的一个目录,所有的分区的数据都存储在对应的目录中。 

(4)桶对指定列进行哈希(hash)计算,会根据哈希值切分数据,目的是为了并行,每一个桶对应一个文件。

好了,以上就是曜耀的讲解,大佬勿喷。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值