【发布时间】:2017-03-08 16:18:44
【问题描述】:
如果我在一些 S3(或 HDFS)目录之上构建 Hive 表,如下所示:
create external table newtable (name string)
row format delimited
fields terminated by ','
stored as textfile location 's3a://location/subdir/';
当我将文件添加到该 S3 位置时,Hive 表不会自动更新。仅当我在该位置创建新的 Hive 表时才包含新数据。有没有办法构建 Hive 表(可能使用分区),以便每当将新文件添加到底层目录时,Hive 表会自动显示该数据(无需重新创建 Hive 表)?
【问题讨论】:
-
文件是直接添加到
s3a://location/subdir/还是该位置下的任何子目录? -
这没有意义。 Metastore 保存位置,而不是其内容。当您查询表时,应该扫描该位置内的每个文件。
-
@franklinsijo 文件已添加到
s3a://location/subdir/的目录中。 @Dudu 每个文件都应该被扫描,这就是为什么如果我向该子目录添加另一个文件,我希望当我在表上运行“select *”时显示该数据。但事实并非如此;它显示了同一张表(没有新添加的数据)。
标签: hadoop amazon-s3 hive hdfs