ивенты из MQTT через Kafka напрямую в Mongo Atlas, но у меня есть некоторые граничные значения у этих ивентов, например когда ток > 5 ампер срабатывает определенный триггер, который нужно записать в отдельную коллекцию от этих данных, подойдет ли для этого Mongo Trigger (никогда не юзал его)?
ну, надо начать с основ - что такое триггер потом что такое ивент стрим
У меня в базе лежат определенные граничные значения для разных метрик, например, бак с топливом должен быть не менее чем 100 литров. MQTT шлет мне постоянным потоком данные о том сколько сейчас литров в баке, буквально каждую секунду. Все это я сразу же сохраняю в MongoDB через Kafka Вопрос в том, что я не хочу писать какой-то сервис который будет вытягивать события которые я сохранил и сравнивать их с граничными значениями, а хочу чтобы это происходило прямо во время Insert'a в DB Например, из Kafka приходит Event что PetrolTankValue = 99, а в граничных значениях у меня лежит что PetrolTankValue должен быть не менее 100, в этом случае мне нужно создать новый документ в отдельной коллекции на моменте когда событие о наполнении бака с топливом только попало в базу
Под триггером я подразумеваю это https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/
хорошо, тогда вот это пробуй: https://www.mongodb.com/docs/manual/changeStreams/ второй вариант, на уровне языка сделать "раздачу" из сектора памяти и стримить его куда нужно и в бд
что дальше будет происходить по факту срабатывания триггера? создастся сообщение в кафку или запаись в базу или еще чтонить?
Запись в базу только и все
Спасибо, посмотрю чем может быть полезно
тогда достаточно триггеров атласовских
триггер тут не подойдёт, потому что он написал, что не хочет потом читать из бд и ещё куда-то данные отправлять из бд, а хочет ещё сразу куда-то кроме бд отправлять
так в базу будут факты срабатывания записываться
Не совсем, я имел ввиду что не хочу читать из БД чтобы создать вот эту запись срабатывания
ааа, ну тогда да, точно триггер, жаль что они имеются только у атласа
Обсуждают сегодня