使用HDFS更改更新Hive外部表

时间:2013-06-10 15:48:10

标签: hadoop hive bigdata hiveql

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

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

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

谢谢。

P.S。

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

2 个答案:

答案 0 :(得分:6)

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.

您甚至可以删除表格,数据不会丢失。

答案 1 :(得分:4)

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