Hive 基础知识

2023-11-05

1.基础概念

1.1 定义

Hive是一个基于Hadoop的数据仓库基础设施工具,它可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL)。Hive可以将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储。

1.2 组件

HiveQL:Hive Query Language(HiveQL)是Hive的查询语言,它类似于SQL。HiveQL允许开发人员使用SQL语法来查询和分析数据,包括SELECT、JOIN、GROUP BY、ORDER BY等操作。

元数据存储:Hive使用元数据来描述和存储数据的结构和属性。元数据存储可以使用不同的后端,如Derby、MySQL等。元数据包括表的定义、分区信息、列的数据类型等。

执行引擎:Hive支持多种执行引擎,包括MapReduce、Tez和Spark。这些执行引擎用于执行HiveQL查询,并将其转化为底层任务进行数据处理和计算。

数据存储:Hive使用Hadoop分布式文件系统(HDFS)作为底层数据存储。它支持将数据以表的形式组织起来,可以在表上定义分区、分桶等数据组织方式。

用户定义函数(UDF):Hive允许开发人员编写自定义函数来扩展HiveQL的功能。这些用户定义函数可以使用Java、Python等编程语言编写,并在Hive查询中使用。

数据导入和导出:Hive提供了用于将数据导入到Hive表中和从Hive表中导出数据的机制。可以使用Hive自带的命令或工具,或者通过外部工具和技术,如Sqoop和Flume,进行数据导入和导出操作。

1.3 元数据

Hive中的元数据是指描述和管理数据表的数据,包括表的结构、分区方式、存储路径、表的基本信息等。元数据描述了数据的存储、表结构、分区信息等,使得Hive可以更好地管理和访问数据。

在Hive中,元数据通常存储在关系型数据库中,例如MySQL、PostgreSQL等,由Hive Metastore进行管理。元数据的存储结构可以由用户自定义,也可以使用默认的存储结构。

除了描述表的基本信息,元数据还记录了表的分区信息、数据存储路径等,这些信息可以帮助Hive更好地执行查询和优化性能。在Hive中,元数据是进行SQL查询优化和提高查询性能的重要依据。

1.4 内部表和外部表

内部表(Managed Table):Hive的内部表是指由Hive管理的表,这些表的数据存储在Hive的数据仓库中,删除内部表时,Hive不仅会删除表的元数据,还会删除表的数据。

外部表(External Table):Hive的外部表是指那些存储在Hive数据仓库之外的数据表,例如存储在HDFS或其他文件系统中的表。对于外部表,Hive只负责提供元数据,而不管理实际的数据。当删除外部表时,Hive只会删除表的元数据,而不会删除表数据。需要注意的是,外部表中的数据无法被Hive直接管理,因此不能在Hive中对外部表执行如DML操作或创建索引等操作。

2. Hive与关系型数据库的对比

Hive RDBMS
查询语言 HQL SQL
数据存储 HDFS分布式文件系统 原始设备或本地文件
执行引擎 MapReduce Excutor
执行延迟
数据规模 大规模 小规模
索引 没有索引 复杂索引

总的来说,Hive更适合大规模分布式数据处理和分析场景,而传统关系型数据库则更适合处理小型、结构化的事务性应用程序。

友情提示:本小节借鉴的是参考文献1

3. Hive 数据存储

Hive的数据存储基于Hadoop文件系统(HDFS),表中的数据在HDFS中都有相应的目录用来存储数据,每个表在HDFS中都有自己的目录,表的数据都存放在这个目录中。例如,如果有一个表temp_hive,那么在HDFS中会创建/user/hive/warehouse/temp_hive目录(这里假定hive.metastore.warehouse.dir配置为/user/hive/warehouse),temp_hive表所有的数据都存放在这个目录中。

Hive的存储结构主要包括数据库、文件、表、视图等,可以直接接入文本文件(.txt)中,在创建表的时候指定Hive数据的列分隔符和行分隔符。Hive的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据。

4. 参考文献

1.Hive基础知识

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive 基础知识 的相关文章

随机推荐

  • Nginx+FastCGI参数传递

    如果需要将需要将各种参数传递到fcgi 例如传递请求参数 请求方法等到fcgi 需要在nginx中加配置 location fcgi fastcgi pass ip port fastcgi param QUERY STRING query
  • 汉诺塔的相关应用

    汉诺塔的应用 是递归的一种比较例子 题目藐视见下面 就是一个递归的实现 先把a上的n 1个盘同过c移到b 再把a上的最后一只盘移到c 随后再把b上的n 1只盘通过a 移到c 描述就是这样 include
  • 两个接口和一个类的适配器模式

    适配器类实现其中一个接口方法 创建另一个接口的对象和构造方法 在接口方法中调用另一个接口的方法 实例如下 public class shipeiqi public static void main String args ATable aT
  • 基于神经网络的目标检测论文之DenseNet:密集连接的卷积神经网络

    第三章 基于密集连接卷积网络改进的目标分类算法 最近的研究表明 如果卷积网络包含接近输入的层和接近输出的层之间的较短连接 则卷积网络可以更深入 更精确和更有效地进行训练 在本章中 论文首先研究密集卷积网络 DenseNet 的结构和工作原理
  • USB转RS485串口电路设计

    USB转串口芯片的串口信号一般为 TTL CMOS电平 在实现半双工 RS485 串口时需要外接485电平转换芯片 设计中需要有信号来控制 485 转接芯片的发送和接收使能端 建议选择自带485控制引脚的转接芯片 如 CH340 CH342
  • MybatisPlus中removeById删除数据库未变

    removeById Serializable id 传入的是id Integer Long等 不是实体对象 就是对应你表的主键 由于我刚开始建表时未设置主键mybatisplus自动生成未在实体类表中标注主键 后加了主键 所以需在实体类主
  • 各种遥感数据,地理信息数据共享网站

    各种遥感数据 地理信息数据共享网站 至少一百 Online Global Satellite Image and Atlas http library gmu edu resources sci Geog579 htm 可以下载Aster
  • Java开发中的23种设计模式详解

    设计模式 Design Patterns 可复用面向对象软件的基础 设计模式 Design pattern 是一套被反复使用 多数人知晓的 经过分类编目的 代码设计经验的总结 使用设计模式是为了可重用代码 让代码更容易被他人理解 保证代码可
  • word怎么让封面、目录没有页码,页码从正文开始

    word怎么让封面 目录没有页码 页码从正文开始 1 开始插入页码 从第一页开始 如图 二 如果前两页是封面和目录 再从第一页开始就不合适了 解决步骤如下 1 在第三页的文字前面添加分页符 效果如图 2 选中第三页的页码 跳到设置页眉页脚的
  • Windows powershell增设快捷指令(Git版)

    1 创建并修改Windows Powershell 启动执行文件 echo PROFILE 输出的是powershell的执行文件路径 2 切换到WindowPowerShell路径下 创建文件 Microsoft PowerShell p
  • MySQL 数据类型

    目录 数据类型 数据类型分类 数值类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar比较 日期和时间类型 enum和set 集合查询使用find in set函数 afte
  • 【学习总结】EasyExcel合并同列不同行,表格数据相同的行

    实体类 Data HeadRowHeight 50 ContentStyle horizontalAlignment HorizontalAlignmentEnum CENTER verticalAlignment VerticalAlig
  • zookeeper 入门(一)单机zk

    topic 1 单机zk搭建 连接zk服务创建节点 以下简称zookeeper 为zk 我的操作环境 mac os jdk8 zookeeper 3 4 12 1 下载zk到本地 解压 tar zxvf zookeeper 3 4 12 t
  • [html]js无缝循环滚动图片示例代码

    html代码 div ul li a href YunNan html img src 微信图片 20200621003327 jpg 1 a li li a href Switzerland html img src 微信图片 20200
  • muduo源码分析2——Singleton分析

    1 一般singleton写法 单例模式即要求只有在第一次调用的时候创建该对象 主要分为以下两条路 返回指针还是引用 返回引用可以防止使用中delete instance导致对象被提前销毁 private包含static指针以及构造函数 p
  • thinkphp 中 使用七牛云上传(来自thinkphp官网)

    利用七牛云私有空间存储文件 第一步 注册七牛云 创建空间 将空间设为私有 需要记下的东西 AK SK bucket 第二步配置ThinkPHP 在config php添加 UPLOAD SITEIMG QINIU gt array maxS
  • 电脑提示‘您需要来自Administration的权限才能对此文件夹进行更改’怎么删除文件...

    电脑提示 您需要来自Administration的权限才能对此文件夹进行更改 怎么删除文件 应该怎么做 win7系统需要定期删除一些无用的文件 扩大内存空间 但是在删除文件的时候弹出提示 您需要来自Administrators的权限才能对此
  • llvm libLLVMCore源码分析 02 - Value Class

    源码路径 llvm include llvm IR Value h llvm include llvm IR ValueHandle h llvm Value Class 在llvm中 Value类是所有程序计算出的值的类 如Argumen
  • 一个外国的好网站 http://www.ilovejackdaniels.com/

    正则表达式大区 魔兽快捷键 呵呵 转载于 https www cnblogs com yamajia archive 2007 12 04 981843 html
  • Hive 基础知识

    目录 1 基础概念 1 1 定义 1 2 组件 1 3 元数据 1 4 内部表和外部表 2 Hive与关系型数据库的对比 3 Hive 数据存储 4 参考文献 1 基础概念 1 1 定义 Hive是一个基于Hadoop的数据仓库基础设施工具