在将数据从 MySql 传输到 Java 中的 NoSql 时使用文件作为中间层
Using file as middle layer while transferring data from MySql to NoSql in Java
我目前正在做我的项目,使用 Java 作为编程语言将数据从 MySql 迁移到 NoSql。以下是其中涉及的过程:
- 读取 MySql 数据并以 Json 格式写入文件
- 读取 Json 文件并写入 NoSql
- 如果上述过程中出现任何错误,写入错误日志
但是,可以在不使用文件作为中间层的情况下完成迁移。我发现很多工具和论文工作都是在上面的设计中完成的,所以我就照做了。使用文件作为中间层而不是直接迁移有什么好处吗?
直截了当地回答这个问题:是有好处,但这取决于您的整体实施情况。
这里有几点需要考虑(关于为什么它可以成为资产)。
- 失败时的完整性。根据进程的运行方式,如果在传输过程中发生了一些可怕的事情,让文件向您显示 where/why 发生了问题。
- 如果您的数据库在物理上是分开的,那么文件将为您节省大量服务器之间的开销流量。
- 通常调试文件比调试进程更容易。与在运行时跟踪相同错误相比,导出到可读性稍强的文件时很容易看到问题。
反对理由:
- 文件占用额外空间 space 您可能不想使用。
- 整体速度较慢(因为这实际上需要读取数据库、保存到文件、从文件加载、写入数据库)。
- 它增加了一个额外的失败点。无论文件实现如何,您都必须读取和写入数据库,并转换为可用格式。然而,使用文件的附加层增加了失败的风险(例如丢失文件、损坏、太大等)。
由于存储和带宽是您所关心的问题,因此这是我的建议。如果您有足够的存储空间来容纳传输期间的文件(例如,它们是临时的),则使用文件传输,因为它会节省您的带宽。之后删除文件可以减少存储问题。
我目前正在做我的项目,使用 Java 作为编程语言将数据从 MySql 迁移到 NoSql。以下是其中涉及的过程:
- 读取 MySql 数据并以 Json 格式写入文件
- 读取 Json 文件并写入 NoSql
- 如果上述过程中出现任何错误,写入错误日志
但是,可以在不使用文件作为中间层的情况下完成迁移。我发现很多工具和论文工作都是在上面的设计中完成的,所以我就照做了。使用文件作为中间层而不是直接迁移有什么好处吗?
直截了当地回答这个问题:是有好处,但这取决于您的整体实施情况。
这里有几点需要考虑(关于为什么它可以成为资产)。
- 失败时的完整性。根据进程的运行方式,如果在传输过程中发生了一些可怕的事情,让文件向您显示 where/why 发生了问题。
- 如果您的数据库在物理上是分开的,那么文件将为您节省大量服务器之间的开销流量。
- 通常调试文件比调试进程更容易。与在运行时跟踪相同错误相比,导出到可读性稍强的文件时很容易看到问题。
反对理由:
- 文件占用额外空间 space 您可能不想使用。
- 整体速度较慢(因为这实际上需要读取数据库、保存到文件、从文件加载、写入数据库)。
- 它增加了一个额外的失败点。无论文件实现如何,您都必须读取和写入数据库,并转换为可用格式。然而,使用文件的附加层增加了失败的风险(例如丢失文件、损坏、太大等)。
由于存储和带宽是您所关心的问题,因此这是我的建议。如果您有足够的存储空间来容纳传输期间的文件(例如,它们是临时的),则使用文件传输,因为它会节省您的带宽。之后删除文件可以减少存储问题。