可以说,我从文件 myFile.csv(位于 HDFS 中)创建了 Hive 外部表“myTable”。
myFile.csv 每天都在更改,然后我也有兴趣每天更新一次“myTable”。
是否有任何 HiveQL 查询告诉每天更新表?
谢谢你。
附言
我想知道它是否与目录的工作方式相同:假设我从 HDFS 目录“myDir”创建 Hive 分区,而“myDir”包含 10 个文件。第二天“myDIr”包含 20 个文件(添加了 10 个文件)。我应该更新 Hive 分区吗?
Hive 中基本上有两种类型的表。
一种是 Hive 仓库管理的托管表,每当您创建表时,数据都会被复制到内部仓库。你can not have latest data in the query output
。
其他是 hive 的外部表will not copy its data to internal warehouse
。
因此,每当您对表进行查询时,它都会从文件中检索数据。
因此,您甚至可以在查询输出中获得最新数据。
That is one of the goals of external table.
您甚至可以删除表并且数据不会丢失。
如果您LOCATION '/path/to/myFile.csv'
在表创建语句中添加子句,则不必更新 Hive 中的任何内容。它将始终在查询中使用文件的最新版本。