将数据从SQL导入MongoDB。全有或全无

时间:2015-12-18 16:12:13

标签: mysql node.js mongodb dbmigrate

我有以下架构: enter image description here

我将数据从SQL数据库导入到mongodb中。我使用导入器将数据迁移到mongodb,mongodb通过API向网站提供数据。

导入可能需要几分钟,如果失败,我希望能够回滚(能够回滚多个导入会很棒)或删除未提交行的数据库/集合(如果你把它想象成SQL事务)。

我尝试将所有内容导入到事务集合中,成功时将数据移动到正确的集合中。这需要花费很多时间才能保持高效。我还尝试了导入临时数据库然后交换它们的解决方案。但是如果有人,我会遇到问题。在db-copy之后但在导入完成之前在网站上注册新用户(交换时该用户将丢失)。

如何以安全的方式执行导入并且没有最基本的并发问题?

修改: 澄清解决方案: 我将在一个cron工作中运行进口商,至少每天一次。我目前保留最新同步的时间戳,并选择比SQL-db更新的所有内容。随着时间的推移,事物将自动出现在SQL-db中。

在导入结束时,我运行一个下载程序,从SQL db中的URL下载所有图像。

我不想在下载图片之前开始新的同步,因为这可能会导致奇怪的行为。

1 个答案:

答案 0 :(得分:0)

在这种情况下,你需要在非常不同类型的数据库之间移动数据,你会倾向于想要一些真正可靠,强大,而且最重要的是, 主要关注的是传输数据并做得好。 Node.js很棒,但我强烈建议您找一些专注于传输/映射/等的工具。无论使用何种语言/技术,都可以使用它。没有什么关于node.js,就像我喜欢它一样,特别推荐它用于这种事情(例如,它的最佳特性不是必然使它适合这种转移/迁移)。

最好找一个处理此类事情的成熟完善的库:)

我的研究中出现的一些工具/资源:

如果人们可以在评论中提出更多建议,那就太爱了。)