如何理解HQL import语句中location的作用
以下是两个两条hive语句请分析两者的区别:
import table department from ‘hdfs_exports_location/department’
location ‘import_target_location/department’;
import table department from ‘hdfs_exports_location/department’ ;
这两条Hive语句的区别在于第一个语句指定了数据导入的位置,并将导入的数据存储到指定的位置,而第二个语句只是将数据导入到Hive表中,但没有指定存储的位置。
具体来说,第一个语句将hdfs_exports_location/department中的数据导入到名为department的Hive表中,并将导入的数据存储到import_target_location/department中。这意味着,Hive表department现在包含了从hdfs_exports_location/department中导入的数据,并且这些数据也在import_target_location/department中存储着。
相比之下,第二个语句只是将hdfs_exports_location/department中的数据导入到名为department的Hive表中,并没有指定存储的位置。这意味着,导入的数据仍然存储在原来的位置, 也就是hdfs_exports_location/department中。Hive表department只是在该数据上创建了一个元数据视图,可以通过查询访问该数据。因此,这种方式比第一个语句更节省空间,但是如果原始数据在hdfs_exports_location/department中发生变化,那么Hive表中的数据也会发生变化,因为它只是一个元数据视图。