01 | 市场需要图数据库领域新书
自从开始写公众号,成为图数据库的一个小小布道者,我就陆续有收到几家出版社的邀请,写一本关于图数据库的书。我是直接坦然、也坦诚的拒绝的。主要是因为在从业的几年,写的一系列文章,大部分都是《图数据库》(人邮版)的读书笔记,其余的则是一些行业的思考和落地。而这些内容,是远远没有构成一个完整的知识体系,也远远达不到写书的标准的。
但是确实,出版社和编辑的嗅觉是非常敏锐的,随着图技术的兴起,市场上是迫切的需要一本书,来更全面、完全的介绍图数据库相关技术、架构、原理和应用等等。
我很开心收到了嬴图团队(Ultipa)的赠书,还有Ricky 孙总的签名。首先快速翻看了目录,相比于人邮版(由美国作者Ian Robinson等人写的以Neo4j数据库和Cypher查询语言为例的)《图数据库》更重概念和入门,这本书从目录上就能看出满满的诚意,更加的侧重图技术原理和深入,非常适合图数据库从业者、或想要深入学习图数据库的读者。书中从图的历史开始,然后进入原理和高性能架构设计,再介绍了图算法和扩展性,之后是图数据库和图计算的应用,最后以系统优化和评测结束。个人觉得只看目录,就是一本值得深入学习的好书。
02 | 图数据库就是终极数据库
我很认同孙总的一句话:图最大程度还原了人的思维和思考方式。不管是学习、工作、生活中,我们的大脑总是在不经意间记录着大量的数据以及数据之间的关系,而思考,就是对这些数据的一种查询。关于人类思维,孙总引用了《尚书·大禹谟》中的一个成语「无远弗届」,意思是没有思维到不了的地方。如果把大脑类比成图数据库,那大脑除了存储能力,也具有超深度的图关联、图遍历、图搜索的能力。
贴近大脑思维的数据库就是终极数据库么?非也。
我们首先说下数据。随着信息技术和互联网的飞速发展,我们进入了大数据时代。从数据驱动、商业智能,到人工智能,数据的价值被不断挖掘,并帮助企业通过数据获得了巨大的经济利益。在更高层面,数据也受到了巨大的重视。2020年4月9日数据作为一种新型生产要素写入文件中,与土地、劳动力、资本、技术等传统要素并列为要素之一。
数据的重要性不言而喻。
本书的主创,也是Ultipa 创始人兼CEO 的孙总是一位连续创业者,过去二十几年一直在硅谷和中关村从事高性能计算与存储技术、产品研发相关工作,也是业界知名高性能计算与存储系统专家、大数据与云计算专家。
在书中,孙总回顾了近40年数据技术(包含关系型数据库和大数据)的发展,总结了其中2个核心的问题,烟囱系统、浅层计算。
烟囱系统导致了系统之间通信和数据共享的困难。从公司层面,系统不打通就导致无法进行全盘决策和分析。近些年,很多企业重金投入到企业数字化转型中,而数据是数字化的基础,数字化转型的第一步往往都是先进行数据连接。从研发层面,任何一个新的业务需求、或者需求的变动,都需要在数据库层面进行一整套复杂的开发流程;而关系型数据库并不适合进行大量的连接查询,大数据量的多表查询经常因耗时过长、系统资源负载太多而导致系统崩溃或者查不到结果。
浅层计算,是因为无论关系型数据库,还是后来的大数据、数据仓库、数据湖都只是在存储能力和计算能力的升级,并没有关注到数据的核心价值。想要进行数据价值的挖掘,不可避免地需要对业务敏感的专业人员,进行大量的验证、计算,才能得到结果。而这些基础设施和过程,必然带来了巨大的资源成本、人力成本、时间成本。
对此,我深有感受、也深恶痛绝,却又深感无奈。
而图数据库,尤其是实时图计算技术,可以通过对多源、多维的数据进行深度的下钻、关联和归因分析,通过关系的挖掘,进行深度计算,充分提高了查询和计算的效率,而且打破了系统和数据之间的藩篱。
正是因为图数据库可以天然的解决现在数据技术领域的核心问题,对数据的关联、数据的价值进行最深层的挖掘,同时还可以减少业务系统复杂度,实现资源、人效的提升,所以我才认为,也认同图数据库会是终极数据库(此处不谈图数据库本身面临的挑战)。
03 | 图数据库知识体系构建
之前提到我个人是因为知识体系不健全,所以不敢写书误人子弟。那我理想中的图知识体系是什么样的呢?
《图数据库原理、架构与应用》一书给出了完美回答。这绝对不是恭维,而是自己的深刻认知。
之前从事图数据库开发的时候,我们的产品架构使用了非原生图,底层存储依托Cassandra、RocksDB、HBase等存储,而查询上只是实现了Tinker Pop的API支持了Gremlin。随着对市场和客户需求的更加了解,我充分认识到其中的一些问题,也越发地认识到自己的不足。
第一,原生存储非常必要。非原生的存储,不仅在查询中需要浪费一定的时间去底层存储寻找数据,也可能会引入一个无法维护的系统。这在性能和商业上都是一个巨大的缺陷。
第二,图查询不是Gremlin。我至今无法忘怀在客户现场查询Gremlin的窘迫,Gremlin实在不是一个好用的查询语法。在图技术发展中,更人性化的查询语言,是充分必要条件。
第三,图算法不等于图查询。图算法,更贴近一类业务需求抽象,常见的例如连通性、社区识别等等。这些,我之前关注甚少,但是只有理解图算法,才能更好地解决业务需求。在书中进行了整体的介绍。
第四,可扩展性。单机(或伪分布式)数据库是必然不满足持续增长的业务需求的,扩展性是图数据库场景必须也一定要解决好的问题。
第五,图在真实场景中的应用。如何解决实际的业务问题,问题中用到哪些算法,对图数据库的厂商提出哪些更加苛刻的要求和技术挑战?只有真实的需求才能推动技术的不断进步。
这些问题,是我真实面临的。如果作为读者或从业者的你也认同,我非常强烈的建议,可以认真读一读《图数据库原理、架构与应用》这本书。在此我就不做展开了,因为还没看完。
04 | 寄语
最后引用《荀子·天论》中一句话,与君共勉。
“”君子敬其在己者,而不慕其在天者,是以日进也。
(文/王建奎)