Как использовать API распределенного запроса, например Criteria API или Distributed Sql Query, с любыми структурами данных, кроме IMap? - PullRequest
0 голосов
/ 01 мая 2019

Я хочу использовать распределенный запрос, создать предикат и использовать этот предикат для фильтрации данных из списка.Как я могу использовать предикат с IList?

Я просмотрел документацию Hazelcast IMDG 3.12, но он показывает только использование с IMAP.Может ли кто-нибудь сообщить мне, применимы ли распределенные запросы только к IMAP или же к другим структурам данных?

1 Ответ

1 голос
/ 01 мая 2019

An IMap - это коллекция объектов . IList - это отдельный объект, который является коллекцией .

Поиск совпадений в настоящее время реализован только для первого.Поэтому для поиска совпадений вы должны сделать это самостоятельно.

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

Вы можете отправить вызываемый объект, который применяет итератор списка на хосте ссписок, запустив фильтрацию, не перемещая весь список по сети, а только возвращая совпадения.

Кроме того, Jet может рассматривать список как источник (см. здесь ), так что если выхотел, чтобы вы могли создать свой собственный фильтр, который применяется к данным, где он находится.Возможно, слишком много работы для специальных запросов, но другой вариант.

...