赞
踩
hive以其优良的特性受到越来越多数据仓库使用者的青睐了,其与传统的数据库有相同点也有不同点,DDL操作也有基本相同,但是hive中的表分内部表和外部表的概念(内部表对应hive中的MANAGED_TABLE,外部表对应hive中的EXTERNAL_TABLE),下面主要介绍一下两类表之间的主要区别:
外表建表是需要添加external的关键字。
--创建内部表
建表的时候也可以指定表的location,即位置
内表在删除表的时候会将其中的表的元数据和数据一并删除。如果在建表的时候指定了表的location的话,load数据的时候会将数据移动到location中,删除表会将location内的全部删除。
而外部表删除表的时候只是删除了表的元数据但是数据是不会被删除的。如果在建表的时候指定了表的location的话,load数据的时候会将数据转到location中(前提是load的数据在hdfs上面),在删除外部表的时候location中的数据会保留的。
个人建议:
hive之所以引入外部表是因为如果大量数据在hdfs上面可以直接加载到表中,无需移动数据,如果你的数据量在TB级别的话,建议直接建立带分区的外表,这样能够直接将数据入库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。