在数字化转型的浪潮中,尤其是当我们进入到大数据的高级阶段,也就是深数据时代以后,图数据库以其在处理复杂数据关系方面的独特优势,正逐渐成为金融等行业的重要底层技术工具。银行业作为数据要素密集型行业,很多银行很早开始了对图数据库的尝试、探索和实践。
据我们调研交流,多数银行对图数据库的学习和认知基本都是最老牌的Neo4j社区版开始,像招行、平安这样的数字化转型在同业领先的少数银行,甚至采购了商用版Neo4j,个别国有大行这两年还采购了2017年开始商业化的TigerGraph,其他进入业务管理应用实践的银行,有的采购的是互联网大厂科技输出的自用产品,有的采用的是国内其他的一些不甚知名的独立品牌,但多数的银行尤其是中小银行基本还停留在知识图谱项目+社区免费或开源套壳图数据库底座的阶段。总体看,市场情况比较复杂,各家银行认知情况和实践程度差异比较大。
就像2023年ChatGPT刚出来国内就开始上演百模大战,在国内图数据库和图计算技术(本文合称为“图技术”)研发及运用领域,这种类似情况早在十年前就开始了,只是应用领域主要是2B,尤其是2大B,很多人不甚清楚而已。自从Neo4j于2011年推出免费社区版(注:社区版并非开源版本,Neo4j 从来没有把核心层代码开源,而社区版所谓的开源内容仅限于服务层、接口层代码),特别是2012年google提出知识图谱概念,图技术在互联网领域快速运用,并逐渐向金融、政府、产业等大型用户场景快速扩散。在大模型技术突破和基础大模型产品问世之前,知识图谱一直是一枝独秀,代表着人工智能技术运用的主流路径。到现在,多数人还把图技术混同于知识图谱,其实知识图谱只是图技术的应用场景之一,更多的应用场景正在逐渐被挖掘出来。Gartner2021年的一份报告表示,图技术在数据分析领域会被广泛运用,在 2025 年将有 80%的创新型智能分析场景中运用到图技术。
目前图技术产业链生态总体看不太健康,市场比较混乱,不少金融用户走了弯路甚至踩了坑。无论是上游的图技术厂商,还是下游的图技术应用企业,基本都缺乏底层技术自研能力,图存储和图计算引擎要么是非原生的、多模式的,要么是基于Neo4j社区版或开源的 Janusgraph、ArangoDB 进行套壳改造而来的。就是看似无所不能、四处出击的互联网大厂们,基本也是自身场景特征和自主可控的需要,基于传统关系型数据库或Apache Spark等大数据框架搭建的技术架构(知乎上有不少文章可供阅考)。放眼过去,真正从第一行代码开始进行内核开发、架构创新并且实现工程化的,寥寥无几,而拥有高密度、高并发硬件加速性能的更是凤毛麟角,嬴图XAI就是在大量真实而复杂的金融场景中得到技术性能验证,并且拥有众多首创性解决方案能力的,金融级高性能图技术引擎产品。关于这一点,我们都能通过过去几年的产品研发实践、用户测试场景、技术创新运用中一一证明,而不是自话自说、自吹自擂。
01 | 为什么Neo4j在金融场景中基本沦为入门级的玩具
必须承认,Neo4j作为最早的、开创性的原生图数据库产品,对于带动图技术认知和应用起到了先驱者的作用,其知名度是最高的,当然这和最早发布免费社区版有很大关系(不少人的认知还停留在根据Github社区中的热度排名来评判产品好不好的阶段),另外其工具链条和技术文档也非常的成熟和完善。其真正的问题和面临的挑战在于,随着数据规模的量级增长和数据关系探索的需求深化,技术架构老化及其导致的性能瓶颈制约问题变得日益突出,难以满足金融级别的大规模数据在深度查询、复杂计算、实时交互等方面的数据处理需求。据我们的观察和银行同业技术交流反馈,在金融领域,Neo4j基本沦为了科技、研发人员学习图数据库技术的入门、实验室级别的玩具,难以堪当金融机构IT基础设施大任。
很多人都知道,Neo4j免费提供的社区版只能单机部署,而且只提供几种基础算法,只有采购商用版才提供集群化部署和算法库。银行用户利用社区版只能做一些小规模数据的探索和离线分析。出于业务稳定运行等方面的现实考虑,即便是中小银行,也无法真正以此为技术底座去开发搭建生产级上层应用系统。即便采购的是集群部署的分布式商用版,计算性能也基本相当拉跨,甚至因为其架构设计问题迟迟无法解决,很多情况下查询时效性还不如单机版,对此,我们曾在一家银行项目实践过程中亲身感受过。究其原因,从能观察到的情况看:
其一、从底层内核看,Neo4j的开发语言难以实现高并发。Neo4j中j就是指Java。顾名思义,其产品内核是用Java语言开发的。从底层内核的角度来看,Neo4j的设计和实现在一定程度上受限于其采用的Java语言。Java虽然是一种强大的通用编程语言,适用于构建可移植和面向对象的应用程序,但它在处理性能密集型任务时可能不如更接近硬件的语言高效。在编程