Есть несколько ограничений, которые необходимо понять, прежде чем приступить к решению здесь.Наиболее актуальным из них является латентность.Насколько устаревшими могут быть ваши данные?
Вы почти наверняка ищете здесь какое-то решение для обратной записи, вынимаете данные из MongoDB и записываете их в свое хранилище данных.Вопрос в том, насколько далеко может находиться ваше хранилище данных MongoDB?Многие решения, основанные на модели извлечения-преобразования-загрузки (ETL), работают по ночам, чтобы минимизировать влияние на онлайн-систему.Некоторые могут делать то же самое на почасовой основе, но будут иметь большее потенциальное влияние на работающую систему.
Поддержка транзакций за транзакцией, вероятно, не требуется для аналитической системы.Вы действительно хотите избежать этого, если можете, поскольку это создает гораздо большую нагрузку на обе системы, чем это обычно оправдано.
Чтобы ответить на второй вопрос, да, как только вы начнете в зависимости от схемы, она должна быть стабильной.Он не обязательно должен синхронизироваться с вашей целевой схемой, но ваш процесс ETL должен учитывать оба этих фактора и должен быть изменен в любое время, когда один из них существенно изменится.Быть «без схемы» не означает, что схемы нет, это просто означает, что схема не обеспечивается программным обеспечением, а обеспечивается зависимостями от системы.