Hive入门

Hive是一个基于Hadoop的数据仓库工具,提供类似SQL的查询方式处理结构化数据。它将HQL转换为MapReduce任务,简化数据分析。Hive包括CLI、JDBC/ODBC接口、Thrift服务层、解释器、元数据存储等组件。Hive与关系型数据库相比,具有数据类型、表类型(内部表和外部表)、数据加载、分区和分桶等特点,用于优化查询效率。
摘要由CSDN通过智能技术生成

Hive

定义:Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并可以提供类似SQL的方式来对数据文件进行读写以及管理,这套Hive SQL简称为HQL,Hive的引擎可以是MR,Spark,Tez

本质:Hive的本质是将HQL转换成MapReduce任务,完成整个数据的分析查询,减少编写MapReduce的复杂度

优点:

1.学习成本低
2.海量数据分析
3.可扩展性
4.延展性
5.良好的容错性
6.统计管理

缺点:

1.Hive的HQL表达能力有限
2.迭代式算法无法表达
3.Hive的效率比较低
4.Hive自动生成的MapReduce作业,通常情况下不够智能化
5.Hive调优比较困难,力度较粗

Hive的架构:

Hive的用户连接接口层:CLI(Command Line Interface)最常用,JDBC/ODBC,WebUI

Hive的服务层(thriftserver):hive的可选组件,此组件是一个软件服务框架,允许客户端使用包括Java,C++等其它语言通过编程的方式远程访问Hive

Hive将元数据存储在数据库中,连接到这些数据库(mysql,derby)的模式分三种:单用户模式,多用户模式,远程服务器模式
元数据包括Database,表名,表的列及类型,存储空间,分区,表数据,所在目录等

Hive的解释器(驱动Driver):完成HQL的查询语句的词法分析,语法分析,编译,优化,以及查询计划的生成,生成的查询计划存储在HDFS中,并由MapReduce调用执行

Hive的元数据:Hive的元数据存储在数据库中,如mysql,derby,Hive中的元数据包括(表名,表所属的数据库名,表的拥有者,列/分区字段,表的类型(是否外部表),表的数据所在的目录)

Hive与关系型数据库的比较:

比较项 关系数据库 Hive
ANSI SQL 支持 不完全支持
更新 Update,insert,delete insert,override into table
事务 支持 支持(部分支持)
模式 写模式 读模式
存储位置 块设备,本地文件系统 HDFS
延时
多表插入 不支持 支持
子查询 完全支持 只能用在from子句中
视图 updatable read-only
可扩展性
数据规模
实时响应 毫秒级 秒级

数据库基本操作:

1.规则语法:

1.1注释语法

-- 单行注释
// 单行注释
/*
*	多行注释
*/

1.2大小写规则:

1.Hive的数据库名,表名都不区分大小写
2.建议关键字大写

1.3命名规则:

1.名字不能使用数字开头
2.不能使用关键字
3.尽量不使用特殊符号
4.如果表比较多,那么表名和字段名可以定义规则加上前缀

Hive中的数据类型:

分类 类型 描述 字面量实例
基本数据类型 boolean true/false true
TINYINT 1字节的有符号整数(-128-127) 1Y
SMALLINT 2个字节的有符号整数 1S
INT 4字节 1
BIGINT 8字节 1L
FLOAT 4字节小数型 1.0
DOUBLE 8字节小数型 1.0
重要 STRING 字符串 “a”
VARCHAR 变长字符串 “a”
CHAR 固定长度字符串 “a”
BINARY 字节数组 无法表示
DATE 日期 ‘2016-03-29’
TIMESTAMP 时间戳 122355126365655
//创建库
create database mydb;
create dababase if not exists zoo comment 'this is a database of qianfeng';

//切换数据库
use mydb;

//查看数据库信息
desc database mydb;
desc database extended mydb;//查看数据库的扩展信息

//删除数据库
drop database mydb;//这只能删除空库
drop database mydb cascade;//强制删除

创建库的本质:在hive的warehouse下面的目录下创建一个目录(库名.db命名的目录)
创建表的本质:在对应的库目录下创建一个以表名命名的目录
//创建表
create table t_user(id int,name string);
create table mydb.t_user(id int,name string);
create table if not exists t_user(
uname string comment 'this is name',
chinese int,
math int,
english int
)
comment 'this is my table'
row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as textfile
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值