168大数据

标题: hive数据模型中四种表 [打印本页]

作者: 168主编    时间: 2019-1-22 21:24
标题: hive数据模型中四种表
Hive包含内部表、外部表、分区表和桶表。


一、内部表


内部表也称为管理表。因为这种表,Hive会或多或少地空值数据的生命周期。Hive默认情况下回将这些表的数据存储在由配置项hive.metastore.warehouse.dir所定义的目录(比如/user/hive/warehouse)的子目录下。


如果我有一个表test,那么在HDFS中会创建/user/hive/warehouse/test目录(这里假定hive.metastore.warehouse.dir配置为/user/hive/warehouse);test表所对应的所有数据都存放在这个目录中。
如果删除这张表,则表在关系数据中存储的元数据以及在warehouse目录下的数据也会被清除掉。


同时管理表不方便与其他工作共享数据。例如我们有一份由Pig或者其他工具创建并且主要由这一工具使用的数据,同时我们还想使用Hive在这份数据上执行一些查询,可是并没有给予Hive对数据的所有权,我们可以创建一个外部表指向这份数据,而并不需要对其具有所有权。


二、外部表


为了避免潜在产生混淆的可能性,如果用户不想使用默认的表路径,那么最好是使用外部表。


外部表可以读取指定目录下的以逗号为分隔的数据:


CREATE EXTERNAL TABLE IF NOT EXISTS stocks(
exchange   STRING,
symbol     STRING,
ymd        STRING,
price_open FLOAT,
price_high FLOAT,
volume     INT,
price_adj_close  FLOAT)
ROW FORMAT DELIMITED FIFLDS TERMINATED BY ',' --逗号分隔文件
LOCATION '/data/stocks'  --指定Hive数据的路径
因为表是外部的,所以Hive并非认为完全拥有这份数据,从而删除该表的时候不会删除这份数据。不过描述表的元数据信息会被删除掉。


三、分区表


分区表用于水平分散压力,将数据从物理上转移到和使用最频繁的用户更近的地方
---------------------
作者:TOMOCAT
来源:CSDN
原文:https://blog.csdn.net/tomocat/article/details/81671831






欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2