内部表与外部表的区别:
说明:
1)当删除内部表时,会从Metastore中删除表元数据,还会从HDFS中删除其所有数据和文件;
2)删除外部表,只会从Metastore中删除表的元数据(表信息),并保持HDFS位置中的实际数据不变。
3)Hive拥有对内部表的绝对管理权,而仅对外部表有操作表的权力。
内部表:管理表
外部表:关联表
那么,该如何选择内部表、外部表?
1)内部表适合数据临时处理、转换等操作,及对数据进行清洗、统计分析、计算等需求。因为内部表可以提供更好的数据管理和查询性能;
2)外部表适用于数据的长期存储、备份和共享等需求。
数据的加载
给HDFS中的数据表加载数据:
1)使用hdfs put命令上传文件
hdfs dfs -put /本地文件路径 /hdfs文件路径
2)使用load语法加载数据
load data [local] inpath '文件路径名' [overwrite] into table 表名;
数据的导出
1)从HDFS页面导出文件
到HDFS访问页面中,直接Download下载文件
2)使用hdfs get命令下载文件
hdfs dfs -get /hdfs文件路径 /本地文件路径
3)使用类SQL命令导出数据
insert overwrite [local] directory "存放目录路径名" select 语句