jdbi jdbc vertica потоковый набор результатов для обработки больших данных

Я пытаюсь подключиться к Vertica через JDBI JDBC, чтобы получить огромный набор результатов. Следовал документации JDBI и добавил это к дао,

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

Но похоже, что он загружает все данные в память вместо потоковой передачи

1 ответ

Я смотрел на потоковые наборы результатов из JDBI, и столкнулся с этим вопросом. Ответ на странице документации по объектным запросам SQL:

потому что метод возвращает java.util.Iterator он загружает результаты лениво

Так что в этом случае Iterable<List<Object>> должен быть Iterator<List<Object>> (Я предполагаю, что JDBI может преобразовать строку базы данных в List<Object>).

Другие вопросы по тегам