用于处理大数据的jdbi jdbc vertica流结果集

时间:2014-06-20 19:03:09

标签: jdbc stream vertica jdbi

我正在尝试通过Jdbi jdbc连接到vertica以获得巨大的结果集。 遵循JDBI文档并将其添加到dao,

@SqlQuery("<query>")
@Mapper(ResultRow.StreamMapper.class)
@FetchSize(chunkSizeInRows)
public Iterable<List<Object>> getStreamingResultSet(@Define("query") String query);

但似乎它将整个数据加载到内存而不是流式传输

enter image description here

1 个答案:

答案 0 :(得分:1)

我一直在查看来自JDBI的流式结果集,并遇到了这个问题。答案在SQL Object Queries documentation页面上:

  

因为该方法返回java.util.Iterator它会加载结果   懒惰地

所以在这种情况下,Iterable<List<Object>>应该是Iterator<List<Object>>(我假设JDBI可以将数据库行转换为List<Object>)。