За кулисами выполняется некоторое пакетирование, но пакеты выбираются лениво (т. Е. При вызове hasNext
, если нет локальных данных, он выполнит удаленную выборку).Вы можете управлять опережением чтения HBase через системное свойство geomesa.hbase.client.scanner.caching.size
(см. здесь ).Однако API GeoTools не предоставляет никаких пакетных механизмов, скажем так.
Для простых случаев использования, если вы просто хотите получить все заранее, вы можете поместить итератор в ArrayList, а затем работать с нимпосле этого.Чтобы избежать ожидания получения всего набора результатов, можно настроить потоки производителя / потребителя, чтобы один поток непрерывно выполнял предварительную выборку данных, а второй поток работал с возвращенными результатами.
В более сложных случаях вы можете использовать Spark (или напрямую / уменьшать) для загрузки всего набора результатов одновременно.