Hive内部表&外部表

内部表&外部表

未被external修饰的是内部表(managed table),被external修饰的为外部表(external table);
区别:
内部表数据由Hive自身管理,外部表数据由HDFS管理;
内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;
对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)

外部表
CREATE EXTERNAL TABLE IF NOT EXISTS default.emp_ext2(
empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/hive/hData/emp_ext2';

放入数据:
hive (default)> dfs -put /home/wql/app/hData/emp.txt /user/hive/hData/emp_ext2;

猜你喜欢

转载自blog.csdn.net/wql_zero/article/details/88395852