首页 >> 大全

图数据库选型

2023-10-24 大全 22 作者:考证青年

做图谱不可避免需要到图数据库,但是如何选择一个适合的图数据库,是一个问题,这篇文章是基于前人做的对比评测,希望能让大家对目前主流的图数据库由大致了解。仅为一家之言,如有偏驳,请指正。

文章会出现横向扩展和纵向扩展概念,横向扩展也叫水平扩展,用更多的节点支撑更大量的请求,如成千上万的蚂蚁完成一项搬运工作,也就是多增加几台服务器一起服务。纵向扩展也叫垂直扩展,扩展一个点的能力支撑更大请求,如蜘蛛侠逼停火车,也就是把服务器换成性能更好的机器。

美团评测 1.1前言

美团图谱业务数据量点边总数可达千亿以上,吞吐量可达数万QPS(每秒查询率),结合业务现状,制定了选型的基本条件:

1.开源项目。

2.支持集群模式,具备存储和计算的横向扩展能力。

3.具备毫秒级多跳查询能力。

4.具备批量导入数据能力。

但Neo4j、、等一些数据库不支持多节点,不能横向扩展存储。无法满足大规模图谱数据的需求。对比实验选择了(原阿里团队创业开发)、(原团队创业开发)、(百度团队开发)。

1.2硬件配置

数据库实例:运行在不同物理机上的容器

单实例资源:32核心、64G内存,1TB SSD存储。【Intel® Xeon® Gold 5218 CPU @ 2.30GHz】

实例数量:3

1.3测评数据集

实体情况:4类实体、总数26亿

关系情况:19类关系、总数177亿

数据格式:csv

1.4导入测试结果

1.4.1数据分析

:数据存储分布方式是主键哈希,各节点存储分布基本均衡。导入速度快,存储放大比最优。

:数据存储分布为三元组谓词,同一种关系只能保存在一个数据节点上,导致存储和计算严重偏斜。

:导入数据,先写满了一个节点1000G的磁盘,造成导入失败,无法导入全量数据。存储放大比最大,同时有严重的数据倾斜。

1.5实时写入测试

1.5.1数据分析

:数据存储分布方式是主键哈希,各节点存储分布基本均衡。写入请求可以由多个存储节点分担,因此响应时间和吞吐量大幅领先

:数据存储分布为三元组谓词,同一种关系只能保存在一个数据节点上,吞吐量较差。

:存储后端基于HBase,实时并发读写能力低于()和(),因此性能最差。(这里的、均为数据仓库)

1.6 数据查询测试

N跳返回ID

N跳返回属性

1.7讨论

有人提到的数据仓库HBase表需要做预分区。经过预分区处理之后,使用比美图评测较差的配置,单task顶点都有几千的QPS(每秒查询率)。

2.腾讯云评测 2.1前言

比较对象:Neo4j,Neo4j是目前业界广泛使用的图数据库,包含社区版和商用版本,测评使用的是社区版。,是百度基于改进而来的分布式图数据库,具有良好的读写性能。,原阿里团队开发,数据负载均衡,读写速度快。

2.2测试硬件配置

2.3性能对比

使用不同量级的图从入库时间,一度好友查询,二度好友查询,共同好友查询几个方面进行对比。

2.4讨论

Q:数据集是什么?

A:腾讯云所用的数据集为内部脱敏关系数据,分布如下(将50度以上的结果截断)。

Q:neo4j延迟怎么会这么慢?1000w条边,260G内存,都可以全缓存,为什么一度查询需要6s?

A:测试neo4j的时候使用推荐内存大小,但是测试几次仍稳定在6s左右,可能解释说查询时间是指图中的37ms,实验中记录的都是控制台显示结果的时间,故记录6s

3.Neo4j性能测评 3.1前言

测试的查询和修改均为查询出一条边和修改一条边,并且数据的量级也是基于边的关系,而节点是从这些边中抽取出来之后加上随机属性。以下结果都是基于一度查询,并没有做复杂查询。

3.2 测试配置

3个节点,每台配置差不多

CPU: Intel(R) Xeon(R) 4114 CPU @ 2.20GHz

内存:total:256G,:249G

磁盘:size:12T,Avail:12T

数据:通过随机函数随机生成的通话记录数据

3.3测试方法

使用neo4j框架,每次查出相应的关系数据然后,根据关系数据现在的值对其进行更改,然后保存,查询为一条一条地查询,但是保存为每一个事务批次保存100条数据。每次查询与保存的之前和之后都获取时间戳,然后进行相减,对产生的时间段进行累加。

3.4 100万关系数据测试

导入数据时间:

数据节点:1,967,、1,000,、7,870,

:1.02GB

1.没有索引的情况下:

2.有索引查询3级好友:

3.5一千万关系数据测试

导入数据时间:

数据节点:18,260,、10,000,、18,260,

Peak usage:1.21GB

1.没有索引的情况下:

2.有索引查询:

数据大小:

3.6一亿关系数据测试

导入数据时间:2m 52s 428ms

数据节点:136,004,、100,000,、544,019,

Peak usage:2.52GB

1.没有索引的情况下:

2.有索引查询:

数据大小:

3.7十亿关系数据测试

导入数据时间:19m 57s 543ms

数据节点:586,648,101 nodes、1,000,000,、2,346,592,

Peak usage:7.56GB

1.没有索引的情况下:

2.有索引查询:

数据大小:

3.8结果对比图:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了