【问题标题】:Get the data for the same hive query in chunks from hive从 hive 中分块获取相同 hive 查询的数据
【发布时间】:2015-06-26 13:47:15
【问题描述】:

我有一张包含数百万条记录的表。我想执行一个配置单元查询,并希望将结果集以块的形式返回给客户端。比如在第一个客户端请求获取结果时,我想返回前 1000 条记录,然后在后续请求中返回下 1000 条记录,依此类推。 一种方法是,我在执行配置单元查询时获取完整的结果集并保存它并根据来自客户端的请求迭代结果集。但是,如果我的结果集非常大,那么它可能会在将完整的结果集保存在内存中的同时产生内存不足的问题。

是否可以从 hive 中分块获取同一 hive 查询的数据? 根据我的探索,我发现 hive 不支持分页,而且每次我无法执行在 hive 中使用 limit 子句进行查询,因为 hive 的文档说 limit 子句随机选择记录。

我正在使用 JDBC 执行 hive 查询。 JDBC 中是否提供了可以与 hive 一起使用的解决方案? 或者有没有其他方法来解决这个用例?

提前致谢。

【问题讨论】:

    标签: java hadoop jdbc hive


    【解决方案1】:

    以下只是一种替代方法:

    使您的配置单元表分桶,并使用唯一的列或列作为按字段进行聚类的范围内的值。由于您使用集群,因此您的数据将被全局排序和分布,因此您始终可以使用这些列作为过滤条件进行选择查询。

    以上只是一个建议,希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多