Правильный ответ на этот вопрос, вероятно, выйдет за рамки поставленного вопроса, но такие вещи, как рабочая нагрузка (много данных, большой объем? Топология сети), SLA (как быстро, как часто, насколько надежно, могут у вас есть время простоя?) и синхронность (см. Теорема о крышке пивоваров ), кардинально изменит то, что является или не является разумным в качестве подхода.
Наивный ответ может быть таким простым, как «записывать данные в CSV один раз в день, а затем передавать их в Монго с помощью сценария».
С другой стороны медали есть инструменты и библиотеки ETL, которые, я уверен, специализируются на перемещении больших и больших объемов данных как можно быстрее между двумя вашими механизмами хранения. На самом деле, я считаю, что есть драйвер ODBC для mongo , который вы можете найти в продуктах Microsoft, Oracle, Open Source и всего, что между ними.
Счастливым промежуточным звеном может быть просто легковесное приложение или скрипт, работа которого заключается в том, чтобы запускать документы один за другим (или в пакетном режиме) из очереди до тех пор, пока она не опустеет. Приложение читает sql, пишет mongo и обрабатывает любую логику распределенных транзакций, которую вы можете захотеть навязать.