在Java中将数据从MySql传输到NoSql时使用文件作为中间层



我目前正在使用Java作为编程语言进行将数据从MySql迁移到NoSql的项目。以下是其中涉及的过程:

  • 读取MySql数据并以Json格式写入文件
  • 读取Json文件并写入NoSql
  • 如果在上述任何进程中发生任何错误,则写入错误日志

但是,可以在不使用文件作为中间层的情况下进行迁移。我发现很多工具和论文都是在上面的设计中完成的,所以我就照着做了。使用文件作为中间层而不是直接迁移有什么好处吗?

直截了当地回答这个问题:是的,有好处,但这取决于您的整体实现。

这里有几件事需要考虑(关于为什么它可能是一种资产)

  1. 故障时的完整性。根据进程的运行方式,如果在传输过程中发生了可怕的事情,拥有这些文件可以显示问题发生的位置/原因
  2. 如果数据库在物理上是分开的,那么文件将为您节省服务器之间的大量开销流量
  3. 通常,调试文件比调试进程更容易。与在运行时跟踪相同的错误相比,在导出到可读性较高的文件时很容易发现问题

反对原因:

  1. 文件会占用您可能不想使用的额外空间
  2. 总体速度较慢(因为这实际上需要读取数据库、保存到文件、从文件加载、写入数据库)
  3. 它增加了一个额外的失败点。您必须对数据库进行读写操作,并将其转换为可用的格式,而不管文件实现如何。然而,使用文件的附加层增加了失败的风险(如文件丢失、损坏、过大等)

由于存储和带宽在您的情况下是一个问题,因此我建议您这样做。如果您在传输过程中有足够的存储空间来容纳文件(例如,它们是临时的),则使用文件进行传输,因为这样可以节省带宽。之后删除文件可以减少存储问题。

相关内容

  • 没有找到相关文章

最新更新