一、我们看下官网(https://cwiki.apache.org/confluence/display/Hive/Home)的定义:

The Apache Hive™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax. Built on top of Apache Hadoop™, Hive provides the following features:1、Tools to enable easy access to data via SQL, thus enabling data warehousing tasks such as extract/transform/load (ETL), reporting, and data analysis.
2、A mechanism to impose structure on a variety of data formats
3、Access to files stored either directly in Apache HDFS™ or in other data storage systems such as Apache HBase™
4、Query execution via Apache Tez™, Apache Spark™, or MapReduce
5、Procedural language with HPL-SQL
6、Sub-second query retrieval via Hive LLAP, Apache YARN and Apache Slider.

翻译结果为:

Apache Hive™数据仓库软件便于读取、写入和管理存储在分布式存储中的大型数据集,并使用SQL语法进行查询。
Hive 构建于Apache Hadoop™之上,提供以下功能:
1、用于通过SQL轻松访问数据的工具,从而支持数据仓库任务,如提取/转换/加载(ETL)、报告和数据分析。
2、一种在各种数据格式上强加结构的机制。
3、访问直接存储在Apache HDFS ™或其他数据存储系统(如Apache HBase ™)中的文件 。
4、通过Apache Tez ™,Apache Spark ™或 MapReduce执行查询。
5、使用HPL-SQL的过程语言。
6、通过Hive LLAP,Apache YARN和Apache Slider进行亚秒级查询检索。

从上面的定义我们可以初步了解:

Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理,Hive是通过一种类似SQL的查询语言(称为HiveSQL,简称为HQL)分析和管理数据,对于熟悉SQL的用户可以直接利用Hive来查询数据。同时,这个语言也允许熟悉 MapReduce 开发者们开发自定义的mappers和reducers来处理内建的mappers和reducers无法完成的复杂的分析工作。Hive可以允许用户编写自己定义的函数UDF来查询数据。Hive中有3种UDF:User Defined Functions(UDF)用户定义的函数、User Defined Aggregation Functions(UDAF)用户定义的聚合、User Defined Table Generating Functions(UDTF)用户定义的表函数。

二、Hive和传统的关系型数据库的区别:

  Hive将外部的任务解析成一个MapReduce可执行计划,而启动MapReduce是一个高延迟的一件事,每次提交任务和执行任务都需要消耗很多时间,这也就决定Hive只能处理一些高延迟的应用(如果你想处理低延迟的应用,可以考虑一下Hbase)。
  在传统的关系数据库中,表的模式是在数据加载的时候强行确定好的。如果在加载时发现数据不符合模式,则拒绝加载这些数据。而Hive在加载的过程中不对数据进行任何的验证操作,其只是简单的将数据复制或者移动到表对应的目录下面。从这方面来说,传统数据库在数据加载的过程中比Hive要慢。但是因为传统数据库在数据加载过程中可以进行一些处理,比如对某一列建立索引等,这样可以提升数据的查询性能。而在这方面Hive不行。
  我们都知道,数据库的事务、索引以及更新都是传统数据库的重要特性。但是Hive目前还不支持事务;不能对表数据进行修改(不能更新、删除、插入;只能通过文件追加数据、重新导入数据);不能对列建立索引(但Hive支持索引的建立,但是不能提高Hive的查询速度。如果你想提高Hive的查询速度,需要学习Hive的分区、桶的应用)。
下表列出了RMDB和Hive的比较:

比较项 SQL HiveQL
ANSI SQL 支持 不完全支持
更新 UPDATE\INSERT\DELETE insert OVERWRITE\INTO TABLE
事务 支持 不支持
模式 写模式 读模式
数据保存 块设备、本地文件系统 HDFS
延时
多表插入 不支持 支持
子查询 完全支持 只能用在From子句中
视图 Updatable Read-only
可扩展性
数据规模
.... ...... ......

HIVE的定义,HIVE是什么?相关推荐

  1. 谈笑间学会大数据-Hive数据定义

    Hive数据定义 目录 前言 Hive中的数据库 创建一个数据库 指定数据库存储路径 数据库操作及表操作 hive中的表 创建表 copy表结构 内部表 外部表 分区表 外部分区表 分区增删修改操作 ...

  2. 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数

    认识Hive 为什么要出现hive 前面知识我们讲到mapreudce计算框架,各位需要通过java编码的形式来实现设计运算过程,这对各位的编程能力提出了更高的要求,难道没有门槛更低的方式来实现运算的 ...

  3. Hive数据定义语言DDL

    文章目录 1 Apache Hive客户端使用 2 Hive编译工具 3 Hive SQL DDL建表基础语法 3.1 Hive数据类型详解 3.2 Hive读写文件机制 3.3 Hive数据存储路径 ...

  4. 将服务器文件加载至hive表中,Hive入门到剖析(四)

    10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...

  5. hadoop离线阶段(第十三节)数据仓库、hive简介、hive安装和hive的三种交互模式

    目录 数据仓库 数据仓库的基本概念 数据仓库的主要特征 数据仓库与数据库区别 数据仓库分层架构 数据仓库元数据管理 Hive简介 什么是Hive Hive的特点 Hive架构 Hive与Hadoop的 ...

  6. Hive第一天——Hive介绍以及简单使用

    Hive第二天--Hive介绍以及简单使用 自己的话:黑发不知勤学早,白首方悔读书迟 每天都要保持前进! 一.什么是Hive 数据库: mysql.oracle.sqlserver.DB2.sqlit ...

  7. 《Hive系列》Hive详细入门教程

    目录 1 Hive基本概念 1.1 什么是Hive Hive简介 Hive:由FaceBook开源用于解决海量结构化日志的数据统计工具 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据 ...

  8. Hive学习——单机版Hive的安装

    目录 一.基本概念 (一)Hive概念 (二)优势和特点 (三)Hive元数据管理 (四)Hive架构 (五)Hive Interface – 其他使用环境 二.Hive环境搭建 1.自动安装脚本 2 ...

  9. Hive Sql 大全(hive函数,hive表)

    Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...

  10. 【图文详细 】Hive 函数、Hive 函数、Hive 函数

    1.hive内置函数 1.1.内容较多,见<Hive 官方文档> https://cwiki.apache.org/confluence/display/Hive/LanguageManu ...

最新文章

  1. 中兴高达和中兴啥关系_打通信息孤岛!中兴高达一体化通信指挥平台
  2. ecplise 下的.class .project .setting 文件介绍
  3. object转成实体对象_Object.assign 原理及其实现
  4. mscoreei.dll没有被指定在windows上运行_windows注册表详解
  5. C++实现Base64编解码并应用于图片传输
  6. Angular应用启动时创建的injection token一览
  7. Adobe illustrator 介绍几个快捷键 - 连载 8
  8. 在Makefile中创建文件夹指令
  9. amp mysql升级_【简单的案例分享,停机10分钟】10204升级CRSamp;amp;DB的PSU至1
  10. Electron使用时拦截HTTP请求的解决方案
  11. python中debug有什么用途_python中调试或排错的五种方法示例
  12. Linux平台代码覆盖率测试-.gcda/.gcno文件及其格式分析
  13. 小米路由器3开启frp
  14. 揭秘鲜为人知的酒店管理“黑洞”
  15. tensorflow.js基本使用 图标识别(八)
  16. C语言学习:合数和质数的判断
  17. Paranoid String
  18. 一台电脑已经连接WIFI,另一台电脑想通过网线连接到网络
  19. 微服务系统架构设计系列 - RateLimiter - 1. 限流器简介与一般算法
  20. 北京现在软件学校计算机,计算机软件排名 计算机软件学校排名

热门文章

  1. 如何掌握平面设计的的简洁技法
  2. AIX上解压tar.gz
  3. 计算机网络-应用层协议5(P2P)
  4. 如何创建小程序企业账号
  5. (四)手把手带你搭建精美简洁的个人时间管理网站—相关产品调研
  6. DeepinOS安装部分软件工具总结
  7. 开发者说 | 地平线程序员奶爸带你玩转机器人开发平台 —— 第一期 手势控制
  8. Java多线程经典案例分享
  9. Everything从文件夹所有文件搜索内容
  10. java tabcontrol_TabControl的用法步骤详解