我有数据以一定的速率进入hdfs文件。我在上面建了一个外置的Hive桌。数据有一个timestamp列和一个int列。每5分钟,将添加一行。我有一个jdbc程序,如果int column值是否超过限制,它需要检查最后添加的这一行。我想我应该为新的时间戳编写一个搜索查询,获取行并检查其int列值。但是,它会遍历整个表来搜索最后附加的行。我可以在timestamp列上创建索引。有没有其他方法可以检索最近添加的数据,这样性能就不会下降?
ac1kyiln1#
按日期(比如loaddate)对表进行分区,您可以使用 date() 功能。当然,您还需要修改插入新数据的过程,或者将其放置在适当的加载日期位置并执行 alter table add partition 如果直接将文件加载到表位置,则在外部表上或恢复分区。然后按加载日期+时间戳过滤,得到最后一条记录。它将只查询最后一天的分区数据。
date()
alter table add partition
1条答案
按热度按时间ac1kyiln1#
按日期(比如loaddate)对表进行分区,您可以使用
date()
功能。当然,您还需要修改插入新数据的过程,或者将其放置在适当的加载日期位置并执行alter table add partition
如果直接将文件加载到表位置,则在外部表上或恢复分区。然后按加载日期+时间戳过滤,得到最后一条记录。它将只查询最后一天的分区数据。