高手问答第 233 期 ——?图数据库的设计和实践

xplanet 发布于 09/24 07:29
阅读 4K+
收藏 17

随着抖音、小红书等社交内容平台的“爆红”,诞生了一种基于社交关系网路的推荐需求,而以垂直领域作为切入点的知识图谱过去两年的“爆火”,加上传统数据库在处理社交推荐、风控、知识图谱等方面的性能缺陷,图数据库的研发应运而生。

图数据库是一种非关系型数据库,用以解决现有关系数据库的局限性。它是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。正是图数据库记录关系这种特性,它的典型使用场景便是基于社交关系网络的社交推荐,eg:抖音的视频推荐;银行保险业务的风控、知识图谱、图结构引入 AI 训练模型、区块链、IoT 等则是图数据库的其他应用场景。

OSCHINA 本期高手问答(9 月 24 日 - 9 月 30 日)将以「图数据库的设计和实践」为切入点展开讨论,包括:「图数据库的存储设计」、「图数据库的计算设计」、「图数据库的架构设计」,除了上述三个范围,你也可以将讨论的内容外延到图数据库整个领域,包括图数据库的现状、应用场景等等, 还可以专注于开源的分布式图数据库 Nebula Graph 的源码、实践等细节。为此,我们邀请到了嘉宾陈恒@dangleptr 来和大家一起探讨图数据库。

嘉宾简介

陈恒,开源的分布式图数据库 Nebula Graph 技术总监,图数据库领域专家 & HBase Committer。北京邮电大学硕士,曾就职于蚂蚁金服(P8 级别),猿题库、网易等公司,一直从事基础设施相关研发工作。

为了鼓励踊跃提问,人民邮电出版社会在问答结束后从提问者中抽取 5 名幸运会员赠予《深入浅出 MySQL:数据库开发、优化与管理维护(第3版)》一书。

购书地址:https://item.jd.com/12574719.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就图数据库的存储和实践等相关问题向@dangleptr  积极提问,直接回帖提问即可

加载中
0
钛元素
钛元素

@dangleptr 恒大你好,我对图数据库不是很明白,是否可以这样理解:它可以被认为是mysql中的一种数据库引擎,具备特殊的查询功能,以及特殊的数据结构?谢谢。

sixliu
sixliu
你可以这样理解,原先这些数据都是用关系数据库存的,分别为主体表和关系表,但是在应用使用时查询性能,比如查n度关系。所以为了提升查询使用那么图天然符合,节点(主体)和边(关系)。比如说要查A的2度关系,那么通过id直接key匹配到A,然后再获取到路径<=2的节点
dangleptr
dangleptr
不是特别准确, 图数据库是为了网络结构的数据(比如社交网络,资金网络等)而专门设计的一类数据库。 这类的数据库有着自己独特的数据组织形式, 以及自己独特的查询语句。 它并不是mysql中的一种存储引擎, 而是一个独立的产品,就像HBase与Mysql的关系一样。
0
红薯
红薯
能评价一下 #arangodb# 吗
dangleptr
dangleptr
我对于arangodb了解的也并不多, 我们客户有使用这款产品的, 听他们介绍这是一款多模数据库, 底层还是关系数据库的数据组织形式, 只不过在上面封装了一层graph的接口, 性能存在比较大的问题。
0
5G加ios
5G加ios

@dangleptr   Mysql分表和分区的区别 , 怎么思考什么时候应该使用mysql 分表  ,或是使用mysql分区?

0
5G加ios
5G加ios

 @dangleptr   Nebula 和 Neo4j 的图数据库的优势和劣势? 为何要新开发使用Nebula ??

dangleptr
dangleptr
Neo4j 是目前市面上知名度最高的图数据库, 是一款非常优秀的产品。 但是开源的Neo4j最大的问题在于它是一款单机数据库, 扩展能力存在比较大的问题。 Nebula 是在互联网公司的长期实践中诞生的一款产品, 相比于Neo4j, nebula最大的特色便是分布式的架构, 扩展性要好很多。
0
wongkimshing
wongkimshing
可否评价一下#OrientDB#?之前用过,感觉还不错,但某些场景性能特别差,例如count的时候
dangleptr
dangleptr
看起来也是一款多模数据库, 与arangodb类似?
0
crf1111
crf1111

@dangleptr 你好,最近在开发分布式任务处理系统,使用到了有向无环图(DAG)的概念。请问,图数据库目前主要用于哪些应用场景。

 

对于`nubula`,目前提供了几种client库,是否能兼容python-networkx中的Graph对象?

dangleptr
dangleptr
图数据库主要应用于网络结构数据的存储与查询, 比如在社交关系中, 查找一个人的N度好友(可以带一些过滤条件), 用传统的关系数据库来搞,不仅性能不能满足要求, 还会使用很复杂的sql描述, 对于用户十分不友好。 而在图数据库中, 这样的查询就是一条语句而已。 当前nebula提供了go/java/c++ 的client, 对于其他语言可以直接使用thrift 生成相应的接口
0
书生小兰
书生小兰
@dangleptr 我司是传统软件行业,图数据库适合erp的应用场景吗?
0
不好好上班天天发动弹
不好好上班天天发动弹

@dangleptr 文档太少了,缺少自己的可视化操作及展示,目前我们用的是neo4j 因为他文档比较多。

dangleptr
dangleptr
谢谢您的反馈, 目前我们在尽力完善我们的文档, 有些问题也可以直接加我们的微信群直接提问。
0
domicc
domicc

Neo4J 怎样 求评价

NebulaGraph
NebulaGraph
可以参见 dangleptr 上面对 Nebula 和 Neo4j 优劣势对比的回复 Neo4j 是目前市面上知名度最高的图数据库, 是一款非常优秀的产品。 但是开源的Neo4j最大的问题在于它是一款单机数据库, 扩展能力存在比较大的问题。 Nebula 是在互联网公司的长期实践中诞生的一款产品, 相比于Neo4j, nebula最大的特色便是分布式的架构, 扩展性要好很多。
0
Javen-IJPay
Javen-IJPay
MySql与MariaDb两者如何选择?后者是不是性能更优呢?甲骨文收购Mysql是否有闭源的潜在风险。
返回顶部
顶部
天津时时彩