HIVE的定义,HIVE是什么?
一、我们看下官网(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是什么?相关推荐
- 谈笑间学会大数据-Hive数据定义
Hive数据定义 目录 前言 Hive中的数据库 创建一个数据库 指定数据库存储路径 数据库操作及表操作 hive中的表 创建表 copy表结构 内部表 外部表 分区表 外部分区表 分区增删修改操作 ...
- 认识Hive,以及Hive的数据定义与数据操作,hive的数据查询和hive函数
认识Hive 为什么要出现hive 前面知识我们讲到mapreudce计算框架,各位需要通过java编码的形式来实现设计运算过程,这对各位的编程能力提出了更高的要求,难道没有门槛更低的方式来实现运算的 ...
- Hive数据定义语言DDL
文章目录 1 Apache Hive客户端使用 2 Hive编译工具 3 Hive SQL DDL建表基础语法 3.1 Hive数据类型详解 3.2 Hive读写文件机制 3.3 Hive数据存储路径 ...
- 将服务器文件加载至hive表中,Hive入门到剖析(四)
10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...
- hadoop离线阶段(第十三节)数据仓库、hive简介、hive安装和hive的三种交互模式
目录 数据仓库 数据仓库的基本概念 数据仓库的主要特征 数据仓库与数据库区别 数据仓库分层架构 数据仓库元数据管理 Hive简介 什么是Hive Hive的特点 Hive架构 Hive与Hadoop的 ...
- Hive第一天——Hive介绍以及简单使用
Hive第二天--Hive介绍以及简单使用 自己的话:黑发不知勤学早,白首方悔读书迟 每天都要保持前进! 一.什么是Hive 数据库: mysql.oracle.sqlserver.DB2.sqlit ...
- 《Hive系列》Hive详细入门教程
目录 1 Hive基本概念 1.1 什么是Hive Hive简介 Hive:由FaceBook开源用于解决海量结构化日志的数据统计工具 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据 ...
- Hive学习——单机版Hive的安装
目录 一.基本概念 (一)Hive概念 (二)优势和特点 (三)Hive元数据管理 (四)Hive架构 (五)Hive Interface – 其他使用环境 二.Hive环境搭建 1.自动安装脚本 2 ...
- Hive Sql 大全(hive函数,hive表)
Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...
- 【图文详细 】Hive 函数、Hive 函数、Hive 函数
1.hive内置函数 1.1.内容较多,见<Hive 官方文档> https://cwiki.apache.org/confluence/display/Hive/LanguageManu ...
最新文章
- 中兴高达和中兴啥关系_打通信息孤岛!中兴高达一体化通信指挥平台
- ecplise 下的.class .project .setting 文件介绍
- object转成实体对象_Object.assign 原理及其实现
- mscoreei.dll没有被指定在windows上运行_windows注册表详解
- C++实现Base64编解码并应用于图片传输
- Angular应用启动时创建的injection token一览
- Adobe illustrator 介绍几个快捷键 - 连载 8
- 在Makefile中创建文件夹指令
- amp mysql升级_【简单的案例分享,停机10分钟】10204升级CRSamp;amp;DB的PSU至1
- Electron使用时拦截HTTP请求的解决方案
- python中debug有什么用途_python中调试或排错的五种方法示例
- Linux平台代码覆盖率测试-.gcda/.gcno文件及其格式分析
- 小米路由器3开启frp
- 揭秘鲜为人知的酒店管理“黑洞”
- tensorflow.js基本使用 图标识别(八)
- C语言学习:合数和质数的判断
- Paranoid String
- 一台电脑已经连接WIFI,另一台电脑想通过网线连接到网络
- 微服务系统架构设计系列 - RateLimiter - 1. 限流器简介与一般算法
- 北京现在软件学校计算机,计算机软件排名 计算机软件学校排名