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

Hive 内部表和外部表

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

Hive 内部表和外部表

示例

代码语言:txt
AI代码解释
复制
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
AI代码解释
复制
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
AI代码解释
复制
-- 这种需要先创建分区
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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一脸懵逼学习Hive(数据仓库基础构架)
Hive是什么?其体系结构简介* Hive的安装与管理* HiveQL数据类型,表以及表的操作* HiveQL查询数据*** Hive的Java客户端** Hive的自定义函数UDF* 1:什
别先生
2018/01/02
3.1K0
一脸懵逼学习Hive(数据仓库基础构架)
hive RegexSerDe View
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116866.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
4500
数据测试:Hive 数据库表的基本操作,你怎能不知道?
说明:hive 的表存放位置模式是由 hive-site.xml 当中的一个属性指定的,默认是存放在该配置文件设置的路径下,也可在创建数据库时单独指定存储路径。
Wu_Candy
2022/07/04
4890
hive基本概念
用户1171305
2017/12/28
9070
hive、sqoop、MySQL间的数据传递
stored as 关键词,hive目前支持三种方式: 1:就是最普通的textfile,数据不做压缩,磁盘开销大,解析开销也大 2:SquenceFIle,hadoop api提供的一种二进制API方式,其具有使用方便、可分割、可压缩等特点。 3:rcfile行列存储结合的方式,它会首先将数据进行分块,保证同一个record在一个分块上,避免读一次记录需要读多个块。其次块数据列式存储,便于数据存储和快速的列存取。 RCFILE由于采用是的列式存储,所以加载时候开销较大,但具有很好的查询响应、较好的压缩比。 如果建立的表需要加上分区,则语句如下: 这里partitioned by 表示按什么字段进行分割,通常来说是按时间
互联网金融打杂
2018/08/15
9630
大数据开发:Hive DDL操作入门
Hive针对于数据管理操作,提供了类SQL语言HQL,在Hadoop生态当中,Hive定位为数据仓库工具,对于数据的各种操作,也就是使用HQL来完成。而HQL查询,可以分为DDL和DML两个部分来掌握。今天的大数据开发学习分享,我们就先来讲讲Hive DDL操作入门。
成都加米谷大数据
2021/06/16
4300
大数据开发:Hive DDL操作入门
【赵渝强老师】Hive的内部表与外部表
Hive是基于HDFS之上的数据仓库,它把所有的数据存储在HDFS中,Hive并没有专门的数据存储格式。当在Hive中创建了表,可以使用load语句将本地或者HDFS上的数据加载到表中,从而使用SQL语句进行分析和处理。
赵渝强老师
2024/10/25
2060
【赵渝强老师】Hive的内部表与外部表
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
该文介绍了关于数据库连接池的知识点,包括概念、特点、配置方式、调优参数和常见问题。同时,文章还提供了如何正确配置和优化数据库连接池的相关建议,以帮助开发人员更好地掌握和应用该技术。
别先生
2018/01/02
3.6K0
一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
数据科学|Hive SQL语法总结
Hive是一个数据仓库基础的应用工具,在Hadoop中用来处理结构化数据,它架构在Hadoop之上,通过SQL来对数据进行操作,了解SQL的人,学起来毫不费力。
陆勤_数据人网
2019/12/31
1.9K0
Hadoop Hive sql语法详解
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构
黄规速
2022/04/14
2.1K0
hive学习笔记之三:内部表和外部表
至此,咱们对内部表和外部表已经有了基本了解,接下来的文章学习另一种常见的表类:分区表;
程序员欣宸
2021/06/29
9770
hive学习笔记之三:内部表和外部表
Hive创建表语法
Hive的存储格式有六种:AVRO、ORC、PARQUET、RCFILE、SEQUENCEFILE、TEXTFFILE
静谧星空TEL
2021/04/27
1.4K0
Hive SQL 语法大全,宇宙最强整理,建议收藏
LOCATION 是指定外部表的存储路径,MANAGEDLOCATION 是指定管理表的存储路径(hive 4.0.0 才支持),官方建议默认就行,让所有的表都在一个根目录下。
kk大数据
2020/11/03
6.9K0
Hive的数据模型
在Hive中,表中的一个Partition对应表下的一个目录,所有的Partition的数据都存储在对应的目录中
ZHANGHAO
2018/12/16
1.1K0
Hive的数据模型
Hive第二天学习内容总结Hive 第三天DDL特别注意一下,没事别删除数据DML
Hive 第三天 [toc] 第二天内容回顾 Hive帮助文档的地址 https://cwiki.apache.org/confluence/display/Hive/Home Hive SQL Language Manual: Commands, CLIs, Data Types, DDL (create/drop/alter/truncate/show/describe), Statistics (analyze), Indexes, Archiving, DML (load/insert/updat
Albert陈凯
2018/04/08
9180
Hive第二天学习内容总结Hive 第三天DDL特别注意一下,没事别删除数据DML
Hive 内部表与外部表
托管表(内部表)和外部表是Hive中的两种不同类型的表,在这篇文章中,我们将讨论Hive中表的类型以及它们之间的差异以及如何创建这些表以及何时将这些表用于特定的数据集。
smartsi
2019/08/07
3.6K0
Hive基础04、Hive建表语句详解
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’, 这里指定表存储中列的分隔符,默认是 \001,这里指定的是逗号分隔符,还可以指定其他列的分隔符。
红目香薰
2022/11/30
4.6K0
Hive基础04、Hive建表语句详解
Kettle构建Hadoop ETL实践(四):建立ETL示例模型
从本篇开始,介绍使用Kettle实现Hadoop数据仓库的ETL过程。我们会引入一个典型的订单业务场景作为示例,说明多维模型及其相关ETL技术在Kettle上的具体实现。本篇首先介绍一个小而典型的销售订单示例,描述业务场景,说明示例中包含的实体和关系,并在MySQL数据库上建立源数据库表并生成初始的数据。我们要在Hive中创建源数据过渡区和数据仓库的表,因此需要了解与Hive创建表相关的技术问题,包括使用Hive建立传统多维数据仓库时,如何选择适当的文件格式,Hive支持哪些表类型,向不同类型的表中装载数据时具有哪些不同特性。我们将以实验的方式对这些问题加以说明。在此基础上,我们就可以编写Hive的HiveQL脚本,建立过渡区和数据仓库中的表。本篇最后会说明日期维度的数据装载方式及其Kettle实现。
用户1148526
2020/09/08
2.1K0
2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
1、CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXISTS 选项来忽略这个异常。
Lansonli
2021/10/11
1.9K0
Hive 基础操作
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。
Golvi
2023/11/20
3520
Hive 基础操作
相关推荐
一脸懵逼学习Hive(数据仓库基础构架)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文