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>
).