hadoop笔记之Hive的数据存储(内部表)

Hive的数据存储(内部表)

Hive的数据存储(内部表)

  • 基于HDFS

可使用hadoop给我们提供的web管理工具查看数据。打开管理工具localhost:9000–>Utilities下的Browse the file system–>/user/hive/warehouse就能看到表目录–>打开表目录能看到表文件–>点击表文件,会询问是否需要下载文件–>点击download,可以用编辑器查看文件

  • 没有专门的数据存储格式(因为来自不同的数据库)
  • 存储结构主要包括:数据库文件视图
  • 可以直接加载文本文件(.txt文件等)
  • 创建表时,指定Hive数据的列分隔符与行分隔符

表又分为;

  • Table 内部表
  • Partition 分区表
  • External Table 外部表
  • Bucket Table 桶表

而视图的概念,类似于表

内部表

  • 与数据库中的Table在概念上是类似
  • 每一个Table在Hive中都有一个相应的目录存储数据
  • 所有Table数据(不包括External Table)都保存在这个目录中
  • 删除表时,元数据与数据都会被删除

○如何创建一张内部表t1(第一列是id号(整数类型),第二列是名称(字符串),最后是年龄(整数类型))

create table t1
(tid int,tname string,age int);

将上述代码运行在hive当中,如果没有指定保存位置,则默认保存在/user/hive/warehouse下

当然我们也可以指定表的创建位置在/mytable/hive/t2

create table t2
(tid int,tname string,age int)
location '/mytable/hive/t2';

刚才我们创建两张表的时候没有指明列与列之间的分隔符,默认情况下hive中的表默认采用制表符作为分隔符。我们也可以在创建表的时候指明分隔符是什么。

create table t3
(tid int,tname string,age int)
row format delimited fields terminated by ',';

row format是说行的格式是什么。这里采用,号进行分割

我们在创建上面三张表的时候是没有任何数据的,那么可不可以创建的同时加入数据呢?当然是可以的。

这里有一张表

hadoop笔记之Hive的数据存储(内部表)

create table t4
as
select * from sample_data;

这样就可以查询语句的集合来创建t4表

hadoop笔记之Hive的数据存储(内部表)

注意我们在创建t4表的时候是没有指明分隔符的,所以t4表是没有分隔符的。如若要分隔符,如下:

create table t5
row format delimited fields terminated by ','
as
select * from sample_data;

hadoop笔记之Hive的数据存储(内部表)

当然我们还可以对表的结构进行一定修改

例如我们想在t1表上添加一个新的列

alter table t1 add columns(english int);

删除一张表

drop table t1;

在删除一张表的时候,就将该表移入hdfs的回收站中

上一篇:hive内部表、外部表、分区


下一篇:SecureCRT控制台显示中文字符的设置