微网站 和移动站,免费网站搭建平台,网站如何做流量赚钱,wordpress 内容扩展1、表类型介绍
内部表#xff1a;
表面来看#xff0c;我们建的所有的表#xff0c;默认都是内部表#xff0c;内部表又叫做管理表#xff0c;它的位置也很固定/user/hive/warehouse下面。
外部表#xff1a;
创建的时候需要加关键字external 修饰#xff0c;而且
表面来看我们建的所有的表默认都是内部表内部表又叫做管理表它的位置也很固定/user/hive/warehouse下面。
外部表
创建的时候需要加关键字external 修饰而且外部表它的数据的存储位置可以不在/user/hive/warehouse可以指定位置。
建表的语法格式 create external table tableName(id int,name string) [location path];
举例
create external table t_user7(
id int,
name string
)
row format delimited
fields terminated by ,
location /publicData这个location 是本地的意思还是hdfs的路径呢答案是必须在hdfs上。
2、内部表和外部表转换
内部表转外部表
desc extended t_user; 查看表结构的详细信息
alter table tableName set tblproperties(EXTERNALTRUE);
注意内部表转外部表true一定要大写;
外部表转内部表
alter table tableName set tblproperties(EXTERNALfalse);
说明false不区分大小
3、两种表的区别
用的最多的都是外部表因为可以分析数据(OLAP)。
OLAP: 为分析而生的数据库 A(分析)
OLTP: 存储数据保证数据的安全。 T(事务的意思)
最大的区别就是删除表的时候内部表会删除元数据和真正的hdfs上的数据。而外部表只删除元数据。
思考为什么这么做
Hive是一个数据分析的工具存储数据不是它的本意。
假如一个人将数据上传至hdfs这个数据量很大一般不挪动位置你可以建一个外部表数据的位置指向hdfs的某个文件夹然后就可以分析了。
/home a.txt 2G
建一个外部表指向/home/a.txt , 分析完毕之后删除表就可以了干嘛要删除数据没必要。--用后即焚
微信小程序-- 阅后即焚。
1) 内部表和外部表在创建时的差别
就差两个关键字EXTERNAL 和 LOCATION 举例 - 内部表 -- CREATE TABLE T_INNER(ID INT); - 外部表 -- CREATE EXTERNAL TABLE T_OUTER(ID INT) LOCATION HDFS:///AA/BB/XX;
2) Hive表创建时要做的两件事
1、在hdfs下创建表目录
2、在元数据库mysql创建相应表的描述数据元数据
3) drop时有不同的特性
1、drop时元数据都会被清除
2、drop时内部表的表目录会被删除但是外部表的表目录不会被删除。
4) 使用场景
内部表: 平时用来测试或者少量数据,并且自己可以随时修改删除数据.
外部表使用后数据不想被删除的情况使用外部表推荐使用所以整个数据仓库的最底层的表使用外部表。