gpt4 book ai didi

javascript - 从 MySQL 导出到 Neo4j

转载 作者:行者123 更新时间:2023-11-29 06:43:21 25 4
gpt4 key购买 nike

我有这样的问题。
我在 mysql 中有一个大数据库 - 维基百科的所有页面。
我想构建所有页面的图表(近 100 万页是真实页面,而不是重定向等)和指向其他页面的链接。
因此,为此我想使用 neo4j。我试着用这样的代码来做到这一点

    var neo4j = require('neo4j');
neo4j = new neo4j.GraphDatabase('http://localhost:7474');

var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '******',
database: 'wiki-wizualizer'
});
connection.connect();

var numberOfPages = 0;
// Number of pages from DB
connection.query("SELECT COUNT(1) AS number FROM page WHERE page.page_is_redirect = false AND page.page_namespace = 0", function (err, rows, fields) {
numberOfPages = rows[0].number;

var per_page = 10;
var n = numberOfPages;
var k = 0;
for (var i = 0; i < parseInt((n + per_page - 1) / per_page) && i < parseInt((numberOfPages + per_page - 1) / per_page); i++) {
// Query for selecting vertices
var q = "SELECT page.page_id AS page_id, page.page_title AS title FROM page " +
"WHERE page.page_id > " + per_page * i + " AND page.page_id <= " + per_page * (i + 1) + " AND page.page_is_redirect = false AND " +
"page.page_namespace = 0 ORDER BY page_id LIMIT " + per_page;
connection.query(q, function (err, rows, fields) {
// Progress
console.log('' + (k / parseInt((n + per_page - 1) / per_page) * 100).toFixed(2) + '%');
k += 1;

for (var j = 0; j < rows.length; j++) {
var node = neo4j.createNode({title: rows[j].title}); // instantaneous, but...
node.save(function (err, node) {
});
}
});
}
});
connection.end();

但它需要太多时间(它每分钟只创建 700 个顶点)。
我将所有数据(MySQL 和 neo4j)存储在单个硬盘上。
有没有办法让它更快?
如果我将 neo4j 移动到 SSD 会有帮助吗?

最佳答案

checkout :http://neo4j.org/develop/import

尤其是CSV 批量导入器应该可以帮助您轻松生成代表您的节点和关系的 csv 文件,然后直接导入它们。

有关使用密码导入数据的更多信息,请查看:http://jexp.de/blog/2013/05/on-importing-data-in-neo4j-blog-series/

关于javascript - 从 MySQL 导出到 Neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20105645/

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