6

可以说,我从文件 myFile.csv(位于 HDFS 中)创建了 Hive 外部表“myTable”。

myFile.csv 每天都在更改,然后我也有兴趣每天更新一次“myTable”。

是否有任何 HiveQL 查询告诉每天更新表?

谢谢你。

附言

我想知道它是否与目录的工作方式相同:假设我从 HDFS 目录“myDir”创建 Hive 分区,而“myDir”包含 10 个文件。第二天“myDIr”包含 20 个文件(添加了 10 个文件)。我应该更新 Hive 分区吗?

4

2 回答 2

8

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.

您甚至可以删除表并且数据不会丢失。

于 2013-06-11T05:48:13.317 回答
4

如果您LOCATION '/path/to/myFile.csv'在表创建语句中添加子句,则不必更新 Hive 中的任何内容。它将始终在查询中使用文件的最新版本。

于 2013-06-10T19:36:03.893 回答