Hive

20 篇文章 0 订阅

【前言:】我们都知道hive创建的表其实是HDFS上文件的映射,我们写的HiveSQL基本都会执行MapReduce操作,除了一些“select * from 表名”;HiveSQL和MySQL语句基本一样

一、Hive和MySQL主要区别

不同之处HiveMySQL
查询语言HQLSQL
数据存储位置HDFSRaw Device或者Local FS
数据格式用户定义系统决定
数据更新不支持支持
索引
执行MapreduceExecutor
执行延迟
可扩展性
数据规模

二、Hive中的数据类型

基本数据类型
在这里插入图片描述
复杂数据类型
在这里插入图片描述
元数据结构
在这里插入图片描述

三、内部表和外部表的区别

Hive 分为内部表和外部表
在这里插入图片描述

四、Hive命令

一、创建表

创建表时,结构要想好,不推荐修改表结构,其实,在讲MySQL时候也提到
1、内部表

create table 表名(字段1 属性1,字段2 属性2...)
row format delimited
fields terminated by '\t'     //这是 列 按什么进行分割
lines terminated by '\n';	  //这里 行 按什么进行分割

例子

create table grade(gid int,gname string)
row format delimited
fields terminated by '|'
lines terminated by '\n';

2、外部表

create external table aa(uid int,uname string)
row format delimited
fields terminated by '\t'
lines terminated by '\n'
location 'hdfs://IP(或者主机名):9000/文件路径';    //HDFS上指定文件或目录的地址

二、插入

insert into (字段名...) 表名 values (值...);

例如

insert into aaa vlaues (1,"zhang");

【注意】
Hive不适合插入,因为它的插入要涉及到 mapreduce 操作,速度会非常慢,而且hive的数据本来就是在 HDFS上,有那工夫,不如直接 put 到HDFS上效率高

三、查询

select * from 表名;

和MySQL上的查询几乎一样

四、修改和删除

切记,hive中没有update和删除指定记录

但是
要删除只能删除表、库
drop table 表名
drop database 数据库名
删除有表的数据库
drop database 数据库名 cascade

再但是
可以使用序列函数和窗口函数来解决update问题

详细命令请点这里

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值