Как совместно обрабатывать несколько пакетов?
Ранее мы рассмотрели вычислительный узел "compute". Как мы уже знаем, пакеты, которые поступают в вычислительный узел, обрабатываются последовательно. Это означает, что программный модуль будет запущен столько раз, сколько пакетов хранится в данном узле. При каждом запуске обрабатывается только один пакет.
В ряде случаев необходимо обработать несколько пакетов одновременно. Этот случай может возникнуть, если вы хотите выполнить совместную обработку выходных данных нескольких узлов в следующем вычислительном узле. Или же получить одновременный доступ к данным нескольких выходных пакетов одного узла в последующем.
Если узлы, пакеты которых вы хотите передать на вход следующему узлу, напрямую соединить с этим узлом, то пакеты обработаются последовательно, а не одновременно. На иллюстрации ниже показано такое соединение, в данном случае его использовать неправильно:
Правильно между этими узлами использовать специальный узел "query", который сначала объединит выходные пакеты в один пакет и после передаст объединенный пакет на вход в следующий узел. На рисунке ниже показано, как граф будет выглядеть в этом случае:
Узел "query" - элемент графа, позволяющий работать с пришедшими выходными данными одновременно. Query узел видит все пакеты, содержащиеся в нём, и может выполнять операции сразу над всеми переменными всех пакетов.
В отличие от вычислительного узла, узел query вместо программного модуля содержит sql-запрос. Для создания узлов “query” вам понадобится знакомство с основными понятиями
реляционных баз данных
и основами языка запросов SQL.
Чтобы поближе познакомиться с узлом,
Подробнее, как создать query узел с sql запросом и запустить его,
Примеры запросов с операторами select, join, where, group by
Полезная информация:
В платформе RnDnet для системы управления базой данных используется клиент-серверная СУБД PostgreSQL.