前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive 内部表和外部表

Hive 内部表和外部表

原创
作者头像
大数据工程师-公子
发布2019-03-13 17:32:32
9430
发布2019-03-13 17:32:32
举报

Hive 内部表和外部表

示例

代码语言:txt
复制
CREATE TABLE page_view(
    viewTime INT,
    userid BIGINT,
    page_url STRING,
    ref_url STRING,
    ip STRING COMMENT '用户ip'
    )COMMENT '用户页面浏览记录' PARTITIONED BY(dt STRING,country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED BY '\003'
STORED AS TEXTFILE;

这里创建了表page_view,有表的注释,一个字段ip的注释,分区有两列,分别是dt和country。ROW FORMAT DELIMITED关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。不同列之间用一个\001分割,

集合(例如array,map)的元素之间以\002隔开,

map中key和value用\003分割。

STORED AS file_format关键字是用来设置加载数据的数据类型, 默认是TEXTFILE,如果文件数据是纯文本,就是使用 STORED AS TEXTFILE,然后从本地直接拷贝到HDFS上,hive直接可以识别数据。

创建外部表

如果数据已经存在HDFS的/user/hadoop/warehouse/page_view上了,如果想创建表,指向这个路径,就需要创建外部表:

代码语言:txt
复制
CREATE EXTERNAL TABLE page_view(
    viewTime INT,
    userid BIGINT,
    page_url STRING,
    ref_url STRING,
    ip STRING COMMENT '用户ip',
    country STRING
) COMMENT '浏览记录' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
STORED AS TEXTFILE
LOCATION '/user/hadoop/warehouse/page_view';

创建表,有指定EXTERNAL就是外部表,没有指定就是内部表,内部表在drop的时候会从HDFS上删除数据,而外部表不会删除。

外部表和内部表一样,都可以有分区,如果指定了分区,那外部表建了之后,还要修改表添加分区。

外部表如果有分区,还可以加载数据,覆盖分区数据,但是外部表删除分区,对应分区的数据不会从HDFS上删除,而内部表会删除分区数据。

外部表关联数据

代码语言:txt
复制
-- 这种需要先创建分区
use test;
alter table fct_path_list_off_5levels partition (date="2017-09-14") set location 'hdfs://nameservice1/user/hive/warehouse/test.db/fct_path_list_off_5levels/date=2017-09-14';


-- 创建分区的时候指定数据文件
use test;
alter table fct_path_list_off_5levels add partition (date="2017-09-14") location 'hdfs://nameservice1/user/hive/warehouse/test.db/fct_path_list_off_5levels/date=2017-09-14';

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hive 内部表和外部表
    • 示例
      • 创建外部表
        • 外部表关联数据
        相关产品与服务
        大数据
        全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档