как получить данные в пакете из hbase в Geomesa? - PullRequest
0 голосов
/ 23 ноября 2018

GeoTools api - это один из способов для метода получения Geomesa для получения данных из Hbase, но когда я использую org.geotools.data.simple.SimpleFeatureCollection, кажется, что SimpleFeatureCollection.features () может манипулировать только итератором, одна проблемапроисходит, когда я хочу просмотреть результаты, метод iterator.hasNext () стоит слишком много времени. Могу ли я получать данные пакетным способом из hbase в Geomesa не только с помощью Iterator?

1 Ответ

0 голосов
/ 26 ноября 2018

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

Для простых случаев использования, если вы просто хотите получить все заранее, вы можете поместить итератор в ArrayList, а затем работать с нимпосле этого.Чтобы избежать ожидания получения всего набора результатов, можно настроить потоки производителя / потребителя, чтобы один поток непрерывно выполнял предварительную выборку данных, а второй поток работал с возвращенными результатами.

В более сложных случаях вы можете использовать Spark (или напрямую / уменьшать) для загрузки всего набора результатов одновременно.

...