Запрос AWS Neptune Gremlin выдает MemoryLimitExceededException

У нас 3,7 млн ​​узлов и 11,2 млн связей в AWS Neptune. Здесь нам понадобятся эти узлы: Organization, Member, Proposal, Voteи отношения: , Vote-[:BELONGS_TO]->Proposal, Vote-[:VOTED_BY]->Member, Member-[:IN]->Organization.

Цель состоит в том, чтобы построить запрос, который находит пары участников в организации и подсчитывает предложения, за которые они проголосовали. vote.choice. Вот запрос:

      g.V().has('Organization','id','${address}').as('d').
match(
 as('d').in('IN').hasLabel('Vote').as('v1').out('BELONGS_TO').hasLabel('Proposal').as('p'),
 as('d').in('IN').hasLabel('Vote').as('v2').out('BELONGS_TO').hasLabel('Proposal').as('p1').
  select('p1','p').where('p1',eq('p')
 ),
 as('v1').out('VOTED_BY').hasLabel('Member').as('m1'),
 as('v2').out('VOTED_BY').hasLabel('Member').as('m2').
  select('v1','v2').by('choice').where('v1',eq('v2'))).
  select('m1','m2').by('address').where('m1',lt('m2')).
   group().by(
    select('m1','m2')).by(select('p').count()
   ).
   order(local).by(values, desc).
   limit(20)

Проблема в том, что запрос возвращает эту ошибку для организаций с большим количеством участников и голосов:

      {"code":"MemoryLimitExceededException","detailedMessage":"Query cannot be completed due to memory limitations.","requestId":"e8f8a361-40c4-4db9-8da4-a618d0e20d92"}

Можно ли настроить конфигурацию памяти на AWS Neptune? Или нужно оптимизировать запрос и как его оптимизировать?

0 ответов

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