腾讯云数据库副总监:图数据库好在哪?该用在哪?
来自:DBAplus社群
本文根据邵宗文老师在〖2019 Gdevops全球敏捷运维峰会-广州站〗现场演讲内容整理而成。
讲师介绍
邵宗文,腾讯云数据库产品副总监。十余年数据库从业经验,2009年加入腾讯,曾负责腾讯网、新闻客户端、快报、视频、财经、体育等数据库平台,部署、规划及运维支持工作。06-09年曾任新浪数据库专家、数据库平台主管,有非常丰富的海量大数据经验。
分享概要
1、图数据库市场分析
2、图数据库应用场景
3、图数据库的优劣
大家好,非常荣幸今天跟大家分享图数据库的场景及展望。首先我想做一个调查,在座有哪些同学用图数据库的?看来就只有几个同学使用了,那我这次的分享会比较有价值,能让大家知道图数据库到底是什么,以及图数据库能做什么。
一、市场分析
首先大家可以看一下,这是一个调研报告,目前世界一百强企业使用图数据库的比例。金融行业用图数据库的特别多,因为金融反欺诈、金融风控可以用图来降低损失。第二个行业是软件,像Oracle、SQL Server里面都会带有一些图数据库的功能。另外像零售,物流,电信行业也会用图数据库解决一些成本问题或是物流的最短路径问题。还有一些医疗行业,比如一个患者可能有很多疾病,可能有些药之间会有相互作用,还有吃的饮食和药也会冲突,这些用图数据库都能比较好地去分析处理。
然后我今天主要会围绕图数据库的潜在市场是什么样,以及相关场景,包括图数据库的优劣,跟传统数据库有什么样的差别做分享。
这个是各种数据库软件评比网站DB-Engines的一个走势图。大家可以看到,在里面图数据库的增速从2013年开始一直是最快增长的数据库分类,像数据库顶尖大会如VLDB也是图数据库的相关论文数能排到第二。
图数据库增长非常快,并且还有很多细分领域,标红的是研究比较深入或者用得比较多的,作为研发同学或者技术同学也想知道这么多细分的数据到底我学哪一个会比较好?或者哪个对我就业或者个人提升有价值?
这是一个github的starts数,包括软件的版本更新进展。
像Neo4J已有千万级的下载量,增速非常快,有星星之火可以燎原的势头。
同时大家可以看到数据库的巨头也在加大对图数据库的投入,从2017年亚马逊发布了图数据库Neptune,SQL Server也是在2017年做了rc1发布,引入了图数据库的支持,还有Oracle、华为、阿里云蚂蚁金服都做了图数据库。腾讯也在近期推出了图数据库引擎柏拉图(Plato)。
Plato:https://github.com/Tencent/plato
看到国内外巨头都在抢滩图数据库这个阵地,图数据库的机遇是在什么地方呢?它其实有点跟大数据行业的发展比较接近,像大数据的行业规模增长从2017年170亿到现在900多亿,增速是非常快的。在非关系型数据库里面,复合增长率也是将近40%左右。
同时我们也看到国内的大数据增长势头也是快于国外,我们能看到在目前存量市场的数据量随着5G或者随着后面相关的数据越来越多,这个需求量会急剧上升。
大数据整体硬件成本将近30%,每个企业都会有自己的成本考虑,包括腾讯也是,我们之前推的柏拉图就是为了降低成本,估计很多其他企业也会出于对硬件成本的考虑会尝试用图数据库来替代。
随着万物互联,数据爆发带来了图数据库的增长机会。随着非结构化数据数据越来越多,所以这块大家不用担心说学了图数据库没有用武之地。
二、应用分析
刚才说的都是一些市场的机会,我们在一个行业,一个公司,我如何来用图数据库呢。可以参考下图数据库像Neo4J自带直观性的展示,一图胜过千言万语,很快速能知道各个人的属性关系以及联系。
刚才说了一些图数据库的场景,我们来看一下到底图数据库有什么特点。
首先它提供了一个更好的交叉性能,原来可能大家发现在几百万、几千万的join操作还能勉强跑下来,随着现在万物互联,可能随便一个手环、智能手表都有上亿人的设备,你要跑一些join操作基本跑不出来了,图数据库其实可以很好解决这样的问题。
第二,图数据库也可以找到更多的关系,包括物与物、物与人、人与人之间的关系,这也是传统数据库无法提取的问题。还有一些结构的灵活性,比较好添加这种Schema。
在图数据库用比较多的先是社交跟金融领域,社交领域用在什么地方?比如好友推荐,看过了这本书或者看过了这个电影,然后其他也看过这个书和电影的人都会看哪些书比较多,可以把对应的书和电影推荐出来。
同时一些网络的运维IT服务可能有设备上万台,车联网之后可能汽车也会上千万辆,汽车与汽车之间,人与汽车之间的关联也会越来越多,还有金融风控,及时找到欺诈、诈骗等相关的异常。
金融风控在传统数据库无法很好解决的问题,比如员工和亲属、员工与客户、客户之间的关系,还有业务合规的关系,这些都是非常复杂的关系。
可能用这个图看得比较明显,通过这个图我知道这个客户对公、对私、对员工及相关的管理,纬度特别多,很多统计数据出来。如果用传统的数据库找里面的规律很难找,图数据库可以很简洁明了地知道都集中在哪几个类似客户上或者有员工频繁会跟他的亲属进行转账关系或者有一些深度资金往来,这样可以显示出非常大的价值。
这是另外一个基于隐藏的例子,有些人幕后黑手控制了很多公司或者控制了很多集团,你通过图数据库可以看到具体是某一个人或者某一个真正的公司在控制、操纵相关公司的行为。
这是一些黑产的例子,像一些挖掘的效果及担保关系挖掘效果,可以快速知道这个人有没有问题,或者这个黑产有没有一些集中的特征。
另外我再举个例子,比如办一个活动,我需要找出一些潜在对这个活动议题的兴趣爱好者,通过这种图可以很好知道用户所匹配的相关信息,如谁参加过类敏捷大会或者IFOQ的,可能会来参加腾讯数据库技术大会。
上面的截图案例是通过cypher语言实现的,通过兴趣、参会来找特征。
我们另外也想知道这些活动或者领域里哪些是被大家关注的专家、公众人物或者所谓的超级大V,可以通过图快速知道集中在某些人身上,我们可以快速找到这些专家帮我们做评价或者做相关的事情,这也是图数据库所擅长的事情。
三、优劣对比
说了那么多,大家可能比较感兴趣了,那我们接着讨论图数据库的学习成本。我做一下简单介绍,图数据库可能能做到像一些单向、双向的关系,如我可能喜欢这本书,别人还有谁喜欢这本书,喜欢这本书的人都有谁,这类人还会经常看其他什么书,图数据库很容易分析。另外,图数据库可以做在线可视化。
但目前的缺陷还是有不少,如大量导入的时候可能基于事件、条数太多,会产生性能不足。另外不适合做二进制文件导入。同时并发性能也比较弱,像MySQL在调优情况下能跑到每秒上百万的请求,而图数据库可能停留在几千。
另外图数据库比起MySQL来说相关的书籍会偏少,不利于大家快速学习掌握。有一些书是翻译的两三年前的书,所以在学习资源上明显弱于MySQL的书。另外一些文档还有在线问题的回答也是明显少,大家只能通过谷歌上可能搜到一些,但在国内相关检索的内容偏少。
这是一个用Neo4J举的例子,大家可以在官网链接上找到,在图的领域里可能你看到的是比较是和MySQL的交互关系。
原来我们要查询这张表里的字段,右边的其实也是差不多,满足这个条件反馈一个什么样的字段。第二个可能稍微有一些排序,它其实也支持一些排序的操作,其实感觉差不多。第三个是基于一些like的操作,也有不错的效果。
看看接下来的,左边可能大家经常会发现这样的SQL越多之后,数据里面的关系会越来越乱,有的可能一个屏幕的SQL都写不下。右边,我刚才说了它显示得像在描述一句话,比如我有什么产品,然后它的订单被哪些人所购买,之后的产品名或者公司名,就是这种比较偏朴实一点的,相当于这种描述语。右边是这样的,你可以匹配这种相关的语言,比之前的数据库简化很多。
四、未来展望
为什么推图数据库以及图数据库对我所在行业有什么帮助,大家应该通过上述整体内容有一个大概的了解,并且大家也看到了各个行业比较领先的公司已经在用图数据库做各种创新,提升他们的服务品质或者整体公司的影响力,所以希望能有更多技术同学一起来学习图数据库。
>>>>
Q&A
Q1:老师,刚刚你介绍了很多关于图数据库,有很多收获。想问一下,图数据库分布式概念或者高可用相关的有没有分享?
A:如果看Neo4J单机版也是能跑到40亿的顶点和边,你用分布式是想解决单机容量不够的问题还是解决高可用的问题?因为高可用,可能目前用图的业务很少有真正跑在生产环节,更多是偏一些数据分析、偏非实时,做一些统计性的,所以我不知道你的担心是它的单机扛不住还是高可用?
追问:都有可能,一个是单机的性能情况,一个是高可用问题。
A:单机的话,类似于我们现在的新硬件,比如在云上服务器的内存普遍单机能达到700多G内容,我相信大部分的企业单机配置其实都能cover它的数据量。之前如果担忧单机性能扛不住,用云就可以解决问题。高可用性的问题,可能这块确实目前也是一个问题,就是运维这个图数据库诊断定位还是有很多欠缺,包括怎么把一些相关的数据做实时的导出和恢复,这块都挺有难度的。现在刚刚起步,需要大家一起来推动,所以使用的人数越来越多,可能参与的人一起去贡献稳定性、贡献备份、恢复等等,人的能力也会越来越多。你可以看一下我们开源专柏拉图的数据库,帮助我们不断地完善。
Q2:刚才提到多表查询,在上面我也看到图数据库有一个非常大的优势就是把这东西展现得非常简单和明显,多表查询的时候图数据库的性能怎么样?
A:它本身的设计,比如它所有关系已经建好,传统数据库做大量join时会产生很多大的临时表,导致吞吐变得很慢,图数据库会做天然的嵌套,所以我感觉图未来在数据越来越大爆发式的情况下它的优势会越来越明显。
Q3:老师,我想问一下图数据库知识图谱的时候,它的查询前后查找,这两个性能的对比哪个好?
A:这得看各自业务的情况,这也不太好说。
追问:我们之前在显示上就很危险,对用户显示得很好,在性能上神经网络如果太深了,那性能就好慢。
A:你说的是基于AI跟图的差异是吧?上次好像分享的时候有人也说基于AI的图,如果真去研究AI,它基于数据,它需要大量的数据训练模型,得到这个模型之后再拿一些测试题来反馈出你要的玩法。图非常实时,你的东西就在整个结构体系里,快速所见即所得,不需要花很多时间训练,而且不断升级模型,所以它很灵活。当然在一些精度要求下,可能它比AI效果更好,因为它直接反应真实数据,你这还是在数据跟数据间找规律的模型。
Q4:我想问一下图数据库的执行速度,比如我定位前后查找的数据,我有一个GB。
A:这只能看你具体的数据量和查询句式,这没办法,我也不清楚你的硬件,所以这很难回答到底能执行多快,只能是你自己去试。我个人建议,以前图数据库为什么很难大家用起来,就是因为它需要太多的大内存还有大容量。现在随着云的到来,这种大内存大容量可以触手可及。可能你就是想分析一两个月用,可能用完就退了,其实可以很好解决成本问题。我感觉有了云之后,图数据库的就越来越方便,更方便大家使用,看到效果。因为有效果之后,能帮助企业更快地找到怎么及时收获、体现效果,反正我感觉这是很有帮助。
长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢