【发布时间】:2021-01-04 10:24:22
【问题描述】:
我需要从 Hive 中检索 1000 万行。
String sql = 从表名中选择 *
List<Map<String, Object>> resultSet = jdbctemplate.queryForList(String sql)
上述方法运行良好,可以一次检索 100 万行(单次命中),使用 2GB 堆内存。从 30 MB(100 万行)大小的表中选择记录只需 3-4 分钟。
但是对于超过 100 万条记录,存在内存问题,并且需要更多时间。
我需要用 OFFSET 值查询 Hive,但是对于 1.2.1 版本,似乎没有 OFFSET 子句。
还有其他方法可以从 Hive 中批量选择记录吗?像这样选择前 10K 条记录和接下来的 10K 条记录?
【问题讨论】:
-
你不关心性能?一次 100 万行? ??????????
-
@dm_tr 是的,性能很重要,但在此之前,我需要在最坏的情况下检索所有记录而不会出现问题。
-
简单的程序员关心他们的代码(他们只需要它运行)。优秀的程序员关心数据结构、性能和平滑度。加油队长
标签: java spring-boot hive