使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink

本文由 Nebula Graph 实习生@王杰贡献。

最近 @Yener 开源了史上最大规模的中文知识图谱——OwnThink(链接:https://github.com/ownthink/KnowledgeGraphData ),数据量为 1.4 亿条。


这是一个从原来 https://nebula-graph.com.cn/posts/import-ownthink-knowledge-graph-data-to-nebula-graph/ 中分离出来的主题

你好!
请教下,我数据库里的数据怎么导入Nebula?
比如我数据库有如下结构:
t_person
id name organization
1 张三 浙江大学

t_paper
id title person_id person_name organization
1 xxx研究 1 张三 浙江大学

create tag t_person(name string, organization string); // id作为vertex的vid
create tag t_paper(title string); // id作为vertex的vid
create edge e_published_paper(); // 边的源点id和目标点id分别是t_person的vid和t_paper的vid
image

1 个赞

非常感谢! :+1:

1 个赞

如果我想通过paper来关联person与person之间的关系呢?

表结构不用调整吗?

如果是查询共同作者,直接从paper开始查就可以了

其他需求可以用不同的查询语句来做

谢谢,另外数据格式是这样吗?
顶点:
1 张三
2 李四
11 大数据研究
12 AI研究

边:
1 11 e_published_paper
2 12 e_published_paper

1 name 张三
1 organization 浙江大学

嗯对,人和论文作为点,发布关系作为边

顶点的属性呢?
也放在边里吗?

1 name 张三
1 organization 浙江大学

点的属性放点里

怎么放?

1, 张三, 浙江大学
这样吗?

对。

目前博客中导入结束后的查询语句需要修改
Nebula Graph v2.0.1 Nebula Graph Console v2.0.0GA
GO FROM hash(“姚明[中国篮球协会主席、中职联公司董事长]”) OVER relation YIELD relation.name AS Name, $$.entity.name AS Value; →
GO FROM hash"姚明[中国篮球协会主席、中职联公司董事长]" OVER relation YIELD relation.name AS Name, $$.entity.name AS Value;
但是会报
[ERROR (-7)]: SyntaxError: syntax error near `" OVER r’
正确的查询语句是
GO FROM “姚明[中国篮球协会主席、中职联公司董事长]” OVER relation YIELD relation.name AS Name, $$.entity.name AS Value;
但是返回empty set;

能否更新一下文中的查询语句,非常感谢 :smile:

@jievince 你这个用的什么版本

我用的是nebula 1.x版本, 那时候只支持int64类型的vid.

你现在用的2.0, 应该用的默认的vid类型:string, 而hash函数会返回一个int类型的vid, 所以报错了. 你导入姚明这条数据用的insert语句是啥呢?

语句的问题已经解决了 感谢
我是参考这篇文章 导入了清洗后的ownthink数据
然后想直接进行查询操作 返回了empty 没有进行insert操作

浙ICP备20010487号