java—从配置单元中以块的形式获取同一配置单元查询的数据

yzckvree  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(275)

我有一张有一百万张唱片的table。我想执行一个配置单元查询,并想将结果集成块返回给客户机。就像在第一个客户机请求fetch results时一样,我希望返回前1000条记录,然后在后续请求中返回下1000条记录,依此类推。一种方法是,在执行配置单元查询时获取完整的结果集并保存它,然后根据客户机的请求迭代结果集。但是如果我的结果集非常大,那么它会在内存中保存完整的结果集的同时产生内存不足的问题。
是否可以从配置单元中获取相同配置单元查询的数据块?根据我的探索,我发现hive不支持分页,而且每次我都无法在hive中使用limit子句执行查询,因为hive的文档说明limit子句随机地选择记录。
我正在使用jdbc执行配置单元查询。jdbc中是否提供了任何可以使用hive的解决方案?或者是否有其他方法来解决这个用例?
提前谢谢。

kmb7vmvb

kmb7vmvb1#

以下只是另一种方法:
使您的配置单元表成为bucked,并使用列或cloumn作为cluster by字段,这些列或cloumn是唯一的,并且具有范围内的值。因为您使用cluster by,所以您的数据将被全局排序和分布,所以您可以始终使用这些列作为筛选条件来执行select查询。
以上只是一个建议,希望能有所帮助

相关问题