DataWeave против производительности Java - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть требование перебрать около миллиона записей.Текущий код был написан в Dataweave с фильтром и логикой упорядочения.Тем не менее, я вижу проблему с производительностью.Я думал о том, чтобы преобразовать эту логику DataWeave в Java с использованием Java-компонента и посмотреть, улучшит ли это производительность.

Как улучшить производительность моего кода?

1 Ответ

0 голосов
/ 11 сентября 2018

Плетение данных имеет некоторые проблемы с производительностью, если вы используете Global functions или 'p()' functions. Если у вас есть такие функции в вашем dwl, избегайте этого.

Поскольку вы обрабатываете большой объем записей, если записи идентичны, вы можете использовать шаблон scatter-gather и использовать асинхронную обработку записей. Вы можете дополнительно настроить производительность, настроив пул потоков, в котором вы выполняете логику преобразования / фильтрации.

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

Если ничего не помогает, рассмотрите возможность использования API-интерфейса Java8 Streams в своем пользовательском компоненте Java для фильтрации и упорядочения записей.

...