Hive的内表和外表以及分区表
1、 内表和外表的区别
内表和外表之间是通过关键字EXTERNAL来区分。删除表时:
内表:在删除时,既删除内表的元数据,也删除内表的数据
外表:删除时,仅仅删除外表的元数据。
CREATE [EXTERNAL] TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User',
country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
(注意:这里还需要注意一个问题,就是在创建表的时候,最好是预先指定行字段的间隔符,否则导入数据的时候,若字段的间隔符不一致的话可能就导入不进去。)
STORED AS TEXTFILE
LOCATION '<hdfs_location>';
2、 分区表
分区表是通过关键字PARTITIONED BY来实现分区,一个表有一个或多个分区,分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在, 但是该字段不存放实际的数据内容,仅仅是分区的表示(伪列) 。
在HDFS中,分区每个分区的值都会产生相应的文件夹,然后在对应的文件夹下存放相应的表数据。
分区表的应用场景分析:假如针对全球的一家电子商务公司,现在有这样一个业务需求就是需要了解一下海外市场的情况,目的是进一步想拓展海外市场,但是公司对海外市场的拓展现在还没有任何的了解,那么怎么帮助公司管理层提供数据上的支撑呢?这个时候可以对之前公司针对全球销售的商品通过按“国家”来分区,在查询的时候,以国家为为纬度来进行分析海外的市场情况。
例如:
create table table_name (
id int,
dtDontQuery string,
name string
)
partitioned by (date string)
(1)修改分区
1)修改分区的存储路径
ALTER TABLE table_name PARTITION (dt='2008-08-08') SET LOCATION "new location";
注意格式:dt='2008-08-08' :dt表示分区名,'2008-08-08'表示对应分区值。注意格式。若是字符串的话就是“string”
"new location"就是对应存储路径,应该是绝对路径
2)修改分区名称
ALTER TABLE table_name PARTITION (dt='2008-08-08') RENAME TO PARTITION (dt='20080808');
(2)删除分区
ALTER TABLE login DROP IF EXISTS PARTITION (dt='2008-08-08');
ALTER TABLE page_view DROP IF EXISTS PARTITION (dt='2008-08-08', country='us');
(3)添加分区
ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例
ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (dt='20130101') LOCATION '/user/hadoop/warehouse/table_name/dt=20130101'; //一次添加一个分区 ALTER TABLE page_view ADD PARTITION (dt='2008-08-08', country='us') location '/path/to/us/part080808' PARTITION (dt='2008-08-09', country='us') location '/path/to/us/part080809'; //一次添加多个分区
Hive的内表和外表以及分区表的更多相关文章
- Hive 7、Hive 的内表、外表、分区(22)
Hive 7.Hive 的内表.外表.分区 1.Hive的内表 Hive 的内表,就是正常创建的表,在 http://www.cnblogs.com/raphael5200/p/5208437.h ...
- Hive 7、Hive 的内表、外表、分区
1.Hive的内表 Hive 的内表,就是正常创建的表,在 http://www.cnblogs.com/raphael5200/p/5208437.html 中已经提到: 2.Hive的外表 创建H ...
- Hive内表和外表的区别
本文以例子的形式介绍一下Hive内表和外表的区别.例子共有4个:不带分区的内表.带分区的内表.不带分区的外表.带分区的外表. 1 不带分区的内表 #创建表 create table innerTabl ...
- hive内表和外表的创建、载入数据、区别
创建表 创建内表 create table customer( customerId int, firstName string, lastName STRING, birstDay timestam ...
- hadoop-hive的内表和外表
--创建内表create table if not exists employee(id int comment 'empoyeeid',dateincompany string comment 'd ...
- hive学习笔记——表的基本的操作
1.hive的数据加载方式 1.1.load data 这中方式一般用于初始化的时候 load data [local] inpath '...' [overwrite] into table t1 ...
- hive中的表
一.内部表与外部表的比较 Hive表概念和关系型数据库表概念差不多.在Hive里表会和HDFS的一个目录相对应,这个目录会存放表的数据.目录默认是/usr/hive/warehouse/. 比如你在h ...
- [Hive_6] Hive 的内置函数应用
0. 说明 Hive 的内置函数的基本操作 | 时间函数 | String 函数 | 条件语句 | explode | split | substring 1. 基本操作 查看函数 show func ...
- Hive优化-大表join大表优化
Hive优化-大表join大表优化 5.大表join大表优化 如果Hive优化实战2中mapjoin中小表dim_seller很大呢?比如超过了1GB大小?这种就是大表join大表的问题.首先引入一个 ...
随机推荐
- OpenCV计算点到直线的距离 数学法
我们在检测图像的边缘图时,有时需要检测出直线目标,hough变换检测出直线后怎么能更进一步的缩小区域呢?其中,可以根据距离来再做一判断,就涉及到了点与直线的距离问题. 点到直线距离代码如下: //== ...
- java-方法练习
一.定义方法的最主要的两个步骤: 1.先明确结果(即返回值类型要先明确) 2. 在实现功能时是否有未知内容参与运算,即明确函数的参数列表(参数类型,参数个数) 例如:定义一个九九乘法表的功能. 思路 ...
- org.springframework.jdbc.UncategorizedSQLException异常
用到了mysql的TRUNCATE函数,这个关键字对spring事务有影响,最后换成了ROUND函数
- ant学习简单例子
1.下载ant,http://ant.apache.org/ 这个网站下载,然后配置环境变量 打开dos界面,输入ant -version,如果提示命令不存在,进入到ant包装目录bin下载,再次运行 ...
- Best Time to Buy and Sell Stock III [LeetCode]
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 简述alert和console.log的区别
生活中还是得有发现美好和差别的眼睛~~ 学习前端那么久既然还不知道alert和console.log的差别~~~~ 蓝瘦,香菇~~~ 本菜鸟一直以为alert和console.log其实是一样的用法, ...
- 模板列onclick事件中绑定跳转页参数(onclick location.href Eval)
<asp:GridView runat="server" ID="gvCheckList" AutoGenerateColumns="false ...
- JS/jquery获取iframe内部元素和ifame中获取外部元素精华
1.从外部获取iframe内部元素方法: js : window.frames['frame'].document.getElementById("imglist"); //f ...
- 在CentOS 6.7中安装NVIDIA GT730显卡驱动的手记
主机: Dell OptiPlex 390 MT (i5) 系列: 主机原配独显,型号未知,运转三年半,常有异响,关机之后过一阵再开机,可以解决.最近,风扇的声音实在不正常,重启也无解,判定它挂了.风 ...
- 一生伏首拜阳明------<明朝那些事儿>
一生伏首拜阳明. 王守仁,字伯安,别号阳明. 成化八年(1472),王守仁出生在浙江余姚,大凡成大事者往往出身贫寒,小小年纪就要上山砍柴,下海捞鱼,家里还有几个生病的亲属,每日以泪洗面.这差不多也是惯 ...