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

  • 时间:
  • 浏览:0
  • 来源:uu快3IOS下载_uu快3app下载_和值

让我在这里 (链接:https://github.com/jievince/rdf-converter) 下载这个 简单的清洗工具源代码并编译使用。

后后 ownthink_v2.csv 数据那么来越多,摘录部分数据为例:

登陆 GitHub 进入 https://github.com/vesoft-inc/nebula-importer ,nebula-importer 这个 工具也是 Golang 语言写的,在这里下载并编译源代码。

create space 的概念接近 MySQL 中间 create database。在 nebula console 中间输入下面这个 命令。

最近 Yener 开源了史上最大规模的中文知识图谱—— OwnThink(链接:https://github.com/ownthink/KnowledgeGraphData),数据量为 1.4 亿条。数据以 (实体, 属性, 值) 和 (实体, 关系, 实体) 混合的三元组形式存储,数据格式为 csv。

清洗完的 edge.csv 文件:

有后后,所有的点也有相这类型(取名叫entity ),只需用1个 属性(叫 name ),所有的边只是我是同一类型(取名叫 relation ),边上也只1个 属性(叫 name )。

分析上图的三元组数据,发现无论是 (实体, 属性, 值) 形式的三元组数据,还是 (实体, 关系, 实体) 形式的三元组数据,每条三元组数据均可不都上能 建模成1个 点第一根边的形式。前者三元组中的“实体”和“”建模为1个 点(起点、终点),“属性”建模为第一根边,后者三元组中的1个 “实体”也建模为1个 点(起点、终点),“关系”建模为第一根边.

登陆 GitHub 后,在这里 (链接:https://github.com/vesoft-inc/nebula/actions) 找到 Nebula 的安装包。

当数据量较大时,查找全路径/最短经这类的操作会比较耗时。可不都上能 看一遍:本次查询返回 8 条数据,说明姚明和其妻子叶莉在三跳之内共有 8 条直接或间接的关系。

命令执行结果如下:

Nebula Graph 是1个 开源的分布式图数据库(链接:https://github.com/vesoft-inc/nebula),相比 Neo4j 来说,它的主要特点是完整篇 的分布式,有后后图数据库 Nebula Graph 适合避免数据量超过单机的场景

命令行 CLI 输入下面命令启动服务

查看 entity 标签的属性

可不都上能 执行以下命令检查服务算是成功启动

本文测试的后后,使用的操作系统是 CentOS 7.5,工具由 Golang 语言编写而成。

比如 (大龙湫,著名景点,芙蓉峰) 可不都上能 表示成下图这个 样子:

执行结果如下:

该工具会把转换后的顶点的数据写入到 vertex.csv 文件、边数据写入到 edge.csv 文件。

本篇文章涉及到的有后后 概念和链接:

清洗完的 vertex.csv 文件长原先 :

现在,亲戚亲戚大伙儿可不都上能 做有后后 简单查询

结果如下:

按照前一节的分析,原始的每条三元组数据,还需用清洗转换为1个 点和第一根边都上能 变成属性图的模型。

Nebula Graph 的使用风格有点接近 MySQL,需用先准备各种元信息。

另外,准备1个 YAML 配置文件,告诉这个 importer 工具去哪里找 csv 文件。(可直接qq克隆好友 下面这段)

找到你所用系统对应的下载链接:

可不都上能 看一遍, 本次导入 QPS 至少在 40 w/s。完整篇 导入总耗时至少 15 min。

最后简单确认下元数据是也有正确。

执行过程如下:

导入完毕后,亲戚亲戚大伙儿可不都上能 使用 Nebula Graph 服务做有后后 简单的查询。回到 Nebula Graph 的命令行 CLI :

说明:测试后后发现 csv 数据文件带有絮状转义字符 (\) 和换行字符 (\r),nebula-importer 也做了避免。

本文介绍如可将这份数据快速导入图数据库 Nebula Graph,全过程至少需用 150 分钟。

进入刚才导入的三元组数据的 test 空间:

说明:在测试过程中,发现有絮状的重复点数据,那么来越多那么来越多工具中间也做了去重。完整篇 去重后的点的数据至少是 41500 万条,完整篇 去重后的边的数据至少是 1 亿 1500 万条。

笔者系统是 CentOS 7.5,下载 CentOS 7.5 最新的压缩包,解压可不都上能 找到 rpm 安装包 nebula-5ace754.el7-5.x86_64.rpm,注意 5ace754 是 git commit 号,使用时后后会有所不同。下载好后解压,输入下面命令进行安装,记得替加带新的 git commit:

这里的 (红色食品,算是含防腐剂,否) 只是我典型的 (实体, 属性, 值) 形式的三元组数据; 而 (姚明[中国篮球自学主席、中职联公司董事长],妻子,叶莉) 是典型的 (实体, 关系, 实体) 形式的三元组数据。

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

命令执行结果如下:

执行结果如下:

输入下面命令连接 Nebula Graph:

说明:第一列是起点的 VID,第二列是终点的 VID,第三列是这条边的"属性"后后"描述"。

结果如下:

说明:每一行是1个 顶点,第一列整型 -2469395383949115281 是顶点的 ID(叫做 VID),它是由第二列文字通过 hash 计算出来的,这类 -2469395383949115281 只是我由 std::hash("过度包装") 计算出来的值。

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

可不都上能 看一遍:本次查询返回 51 条数据,耗时 3 ms 左右;

在本机完整篇 去重的清洗程序运行时间至少是 6 分钟。

命令执行结果如下:

知识图谱是由 Google 在 2012 年提出来的1个 概念。主只是我用来描述真实世界中位于的各种实体和概念,以及亲戚亲戚大伙儿之间的关系。在搜索引擎、问答机器人、知识抽取等多个领域有着诸多应用。

可不都上能 点击这里下载:https://nebula-graph.oss-accelerate.aliyuncs.com/ownthink/kg_v2.tar.gz

Nebula Graph GitHub 地址:https://github.com/vesoft-inc/nebula  ,加入 Nebula Graph 交流群,请联系 Nebula Graph 官方小助手微信号:NebulaGraphbot

图数据库通常支持的数据模型为有向属性图(directed property graph)。图中的每个顶点(vertex)可不都上能 用标签(tag)来表示类型(Neo4j 叫做 Label),顶点和顶点之间的关系用边(edge)连接起来。部分 tag 和 edge 还可不都上能 带有属性。——然而,哪此功能对于知识图谱的三元组数据没哪此意义:

最后:现在开始导入数据

查看 relation 边类型的属性