我们有32台核心Windows Server,96 GB RAM和5TB HDD
方法1(使用Oracle SQLLDR)
大约需要66小时。
方法2(使用MongoImport)
大约需要65小时。
在性能上没有显着差异。
我们需要处理700亿条记录,请提出更好的方法来优化性能。
我们正在从oracle数据库中获取,在我们的应用程序中进行处理并将输出存储在另一个数据库中。这是我们在Oracle数据库上执行的现有过程,但是很耗时,因此我们决定尝试MongoDB来提高性能。
我们做了一个POC,在这里我们并没有什么大的不同。由于硬件原因,我们认为它可以在服务器上运行,因此我们在服务器上进行了POC,得到了上述结果。
我们认为MongoDB比Oracle数据库更健壮,但在比较统计数据后未能获得理想的结果。
请找到生产服务器与MongoDB相关的详细信息:
MongoImport命令
mongoimport --db abcDB --collection abcCollection --type tsv --file abc.tsv --headerline --numInsertionWorkers 8 --bypassDocumentValidation
有线老虎配置
存储: dbPath:C:\ data \ db 日志: 启用:false wireTiger: engineConfig: cacheSizeGB:40
通过进程日志详细信息来计算大约计算时间,以便使用Oracle进行进程执行,并使用MongoDB进行进程执行。
在生产服务器上执行的带有下划线的POC用于比较Oracle(SQL Loader)与MongoDB(MongoImport)的性能
由于我们将独立的MongoDB实例用于POC,因此我们尚未在生产服务器中创建任何分片。
如果使用MongoDB获得理想的结果,那么就得出有关迁移的结论。
提前谢谢您。