gpt4 book ai didi

mysql - 如何将mysql中存储的300-400k数据拉取到mongoDB

转载 作者:行者123 更新时间:2023-11-29 16:31:33 26 4
gpt4 key购买 nike

我正在开发一个spring boot API来从远程mysql数据库表中提取数据。该表每天包含 300k - 400k 数据。我们现在需要将这些数据迁移到 mongoDB。我尝试了 GridFS 技术将收集的 json 文件存储到 mongoDB 中。我能够在本地机器上做到这一点。但是当我在实时服务器上尝试此场景时,JVM 抛出错误:

2018-12-18 17:59:26.206 ERROR 4780 --- [r.BlockPoller-1] o.a.tomcat.util.net.NioBlockingSelector  : 

java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.ArrayList.iterator(ArrayList.java:840) ~[na:1.8.0_181]
at sun.nio.ch.WindowsSelectorImpl.updateSelectedKeys(WindowsSelectorImpl.java:496) ~[na:1.8.0_181]
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:172) ~[na:1.8.0_181]
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) ~[na:1.8.0_181]
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97) ~[na:1.8.0_181]
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339) ~[tomcat-embed-core-8.5.14.jar:8.5.14]

2018-12-18 17:59:27.865 ERROR 4780 --- [nio-8083-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [/datapuller/v1] threw exception [Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: GC overhead limit exceeded] with root cause

java.lang.OutOfMemoryError: GC overhead limit exceeded

我尝试通过从控制面板打开 java 实用程序来使用 -Xmx3048m 超出堆大小。但结果相同。接下来我应该做什么来解决这个问题。我没有在这里发布代码,因为我希望一切都很好,因为它在本地计算机上运行正常,有 60k 到 70k 记录数据。

最佳答案

最高效的方法始终是绕过所有这些抽象。

由于您没有锁定到 Sprint Boot,我建议您通过 mysqldump 将数据转储为 csv,或者通过 mysqldump,或者

echo 'SELECT * FROM table' | mysql -h your_host -u user -p -B <db_schema>

然后您可以将此 csv 导入到 MongoDB。

 mongoimport --host=127.0.0.1 -d database_name -c collection_name --type csv --file csv_location --headerline

https://docs.mongodb.com/manual/reference/program/mongoimport/

关于mysql - 如何将mysql中存储的300-400k数据拉取到mongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com