gpt4 book ai didi

java - 将数据从 MySql 转储到 MongoDB

转载 作者:行者123 更新时间:2023-11-30 22:59:40 26 4
gpt4 key购买 nike

有一张表event_logs表,里面大概有1600万条记录。数据库是MySQL。数据库存储在谷歌云中。

我的任务是将这些数据转储到 MongoDB 中。在转储数据之前,我需要将每一行转换为 JSON 文档。

表架构问题

1.表中没有auto_increment_id,也没有主键

尝试过以下方式

1.在 Java 中使用 JDBC 驱动程序在 ResultSet 中流式传输结果,但问题是前 300k 个结果花费的时间较少,之后从数据库服务器获取结果需要很长时间,为什么??

2.将查询拆分为多个查询并使用限制(如限制 1000000,100000),但问题是如果行号从 1000000 这样的大数字开始,则需要很长时间才能获得结果。看起来 MySql 仍在从头开始,即使我将行号设置为 1000000 并将结果抛出到这个数字。

请提出从 MySql 复制到 MongoDB 的有效方法的解决方案

最佳答案

首先您可以尝试以这种方式设置 ResultSet 获取大小:

...
Statement statement = connection.createStatement();
statement.setFetchSize(2000); // perhaps more...
ResultSet resultSet = statement.executeQuery("YOUR QUERY");
...

或者您可以只导出您的 MYSQL 数据 (CSV/XML),然后使用此 import-export-tool 导入它们之后可以通过解析 CSV 文件将每一行转换为 JSON 文档

您也可以尝试使用此参数创建语句:

Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);

关于java - 将数据从 MySql 转储到 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24652243/

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