如何在hdfs文件中获取最新添加的数据?

时间:2018-05-29 06:02:39

标签: hadoop jdbc hive mapreduce

我将数据以速率传输到HDFS文件。我在它上面构建了一个外部蜂巢表。数据具有时间戳列和int列。 每隔5分钟,将添加一行。

我有一个JDBC程序,如果int列值超出限制,则需要检查最后添加的行。我以为我只会为新时间戳写一个搜索查询,获取行并检查其int列值。但是,它遍历整个表格以搜索最后一行。

我可以在timestamp列上创建索引。有没有其他方法可以检索最近添加的数据,以便性能不会下降?

1 个答案:

答案 0 :(得分:1)

按日期(比如load_date)对表进行分区,您可以使用date()函数从时间戳字段派生。当然,您还需要修改插入新数据的过程或将其放在正确的load_date位置+在外部表上执行alter table add partitionrecover partitions如果它直接将文件加载到表位置。 然后按load_date + timestamp过滤以获取最后一条记录。它将仅查询最后一天的分区数据。