随着数字化变革的深入,实时数据处理、分析与海量数据处理需求往往同时存在,推动了不同技术的融合。流式图计算便是这样产生的“新物种”之一。
流式计算针对流式动态变化的数据流,一般动态的数据流有实时的日志流,或者数据库的变化日志,主要是为了场景中的实时应用需求。基于流式计算可以很好地提升数据计算的实效性,能够基于实时的数据进行决策分析。图计算是指将数据按照图的方式建模,数据被转为图模型之后,可以很好地呈现出数据间的关联性,因此图计算非常适用于处理海量数据。
而流式图计算则是指的是基于流式的实时数据构建图模型,进而进行图分析和计算。它是流式计算和图数据模型的交叉领域,一方面它基于流式实时的数据进行处理,另一方面它在实时数据之上构建图模型进行计算。
去年,蚂蚁开源了和清华大学共同研发的图数据库 TuGraph DB。TuGraph DB 是图数据库基准性能测试 LDBC-SNB 世界纪录保持者,性能领先第二名 7 倍以上。TuGraph 图平台的整体架构包含了图存储引擎、图数据库、离线图计算引擎,流式图分析引擎和图学习引擎。
近日,蚂蚁开源工业级流式图计算引擎 TuGraph-Analytics。流图计算引擎是蚂蚁图计算的一个子系统,属于蚂蚁图计算大家庭的一部分。和 TuGraph-DB 是兄弟产品的关系,TuGraph-DB 主要是图数据库,主要应用场景在数据的管理和查询。TuGraph-Analytics 是流式图计算引擎,偏重于流式实时图的分析和计算。两者之间在领域上是互补的关系,同时在解决业务的问题时,一般也是联动运行,比如基于 TuGraph-Analytics 进行实时数据分析,并将分析之后的数据写回到 TuGraph-DB,提供查询服务。
目前流式图计算在蚂蚁内部得到广泛应用,广泛应用到金融风控(支付风控、信贷风控、基础安全风控)、知识图谱(商户图谱、资金图谱、企业图谱)、会员社交(新春五福、亲密支付、会员增长)以及数据应用(资金基线、数据血缘、归因分析)等场景。
为了深入了解 TuGraph Analytics 的发展,我们邀请到 TuGraph Analytics 负责人潘臻轩来聊聊TuGraph-Analytics 背后的故事和技术特性。
潘臻轩(泰初)
蚂蚁集团资深技术专家,现负责蚂蚁图计算部门流式图计算团队。2012 年加入阿里集团数据平台,2016 年加入蚂蚁集团数据技术部,经历了阿里和蚂蚁实时计算从 0 到 1 的演进,从 17 年底开始负责流式图系统和团队的构建,从 0 到 1 打造了蚂蚁的流式图系统。对实时计算和图计算以及上层的应用场景有深入的理解。
流图计算价值的验证
OSCHINA:TuGraph Analytics 此前在蚂蚁内部的成长路径是怎样的?
潘臻轩:
TuGraph Analytics 在蚂蚁内部的成长路径主要分为三个阶段:
第一个阶段是:探索和落地的阶段,TuGraph Analytics 起步于 2017 年年初,当时由于实时风控场景的需求,TuGraph Analytics 团队开始探索如何基于流式计算的方式进行实时风控。
由于资金关系天然适合图模型进行描述,因此团队开始探索流式图计算方向,当时团队只有一名正式员工和一名实习生。
由于流图计算属于流计算和图计算的交叉方向,因此团队一方面在理解业务需求,一方面探索流式图计算相关的技术实现方案。在经过长达一年多的探索和实验之后,2018 年年初,TuGraph Analytics 在技术上有了一定初步的方案并在部分场景验证了方案的可行性。
在初步验证了方案可行性之后, 团队期望能够在更大规模的应用场景落地,而在当时花呗风控团队也有实时反套现的诉求。经过大家的对方案的严苛的论证,大家都认可基于流图的方案可以更好的支持实时反套现的需求。基于这样的考虑,从 2018 年 6、7 月份开始两个团队开始进入闭关阶段,期待在 2018 年双 11 大促上线,经过半年的闭关打磨,以及对多轮验证和压测,TuGraph Analytics 顺利在 2018 年双 11 顺利上线。
第二个阶段是:体系化建设和规模化运营,TuGraph Analytics 顺利支撑完双 11 之后,如何让 TuGraph Analytics 能够能快更好地支持业务上线应用,以及在有限人力的情况下如何更好地支持更多的业务是当时团队面临的最大挑战。当时团队通过对场景的分析和思考,创新性的提出了 SQL+Gremlin 融合的查询语言,通过将图模型和表模型进行深度融合,从而让业务快速完成全链路的流图计算逻辑的开发。
同时,TuGraph Analytics 从业务使用流程的痛点出发,基于流图计算能力进行延伸,不断在能力边界上突破,构建了图仿真和图探索等多种图计算的能力。另一方面,由于 TuGraph Analytics 在双 11 大放异彩的技术价值,有更多的技术中台团队开始和 TuGraph Analytics 团队一起携手构建多种多样的流图计算的应用,比如信贷风控、安全风控、知识图谱和归因分析等。通过 TuGraph Analytics 在自身体系完备性的逐步完善,以及很多兄弟团队的一起同行,TuGraph Analytics 在蚂蚁得到的广泛的应用。
第三个阶段是:核心技术深耕和技术能力输出,TuGraph Analytics 在蚂蚁内部得到了广泛应用。于此同时伴随着系统的规划化应用,场景的丰富性和业务的多样性也对 TuGraph Analytics 提出了很多新的挑战,比如在查询语言上,如何实现多查询的自动合并优化从而加速业务的执行时间,以及随着图数据规模越来越大,如何在云原生环境下实现计算存储分离的流式图存储引擎等。团队通过持续的探索,逐一攻克相关的挑战和难题。
在攻克相关的难题过程中,TuGraph Analytics 团队将其中的创新点整理成相关论文。当前基于 TuGraph Analytics 的相关论文《GeaFlow: A Graph Extended And Accelerated DataFlow System》也被数据库顶级会议 Sigmod 录用。于此同时,TuGraph Analytics 还和兄弟团队一起将核心能力输出到外部客户,在银行场景得到部署和应用。
OSCHINA:流式计算和图数据模型交叉会产生哪些技术难点?TuGraph Analytics 是怎么解决的?
潘臻轩:
流式图计算和图模型交叉会带来多个方向的难点,首先,通用流式计算在图模型的支持比较欠缺,无法支持流式动态图的计算,只能通过双流 Join 的方式来模拟图遍历。而因此会引起存储空间放大、计算性能慢等问题。而通用的图计算引擎一般偏重离线静态图数据,不支持动态图的计算和分析。
TuGraph Analytics 构建一整套的流式图的计算系统,主要是构建了基于图的流式计算框架来支持流式图的计算模型,同时围绕动态图构建了自研了流式动态图存储引擎,并且为了解决用户的易用性,创新性的实现了 SQL + 图查询语言(Gremlin/GQL)的融合语言。
OSCHINA:请详细介绍下 TuGraph Analytics 的技术架构和亮点技术设计。
潘臻轩:
TuGraph Analytics的总体架构如图所示,最下面我们基于K8S之上构建云原生的执行框架,上面是自研的流式图数据状态管理、统一的图标执行引擎引擎以及基于图模型的用户API定义,基于用户API之上,TuGraph Analytics提供了一套图表融合的流式图计算查询语言。
核心亮点: 定义了工业界首个流图计算引擎,提供一套流式图计算的API支持,并定义了图表融合的查询语言,同时自研了高性能的流式图存储引擎。
OSCHINA:团队在开发 TuGraph Analytics 的过程中,是否有重要技术路线选择的经历,可以聊聊当时的想法。
潘臻轩:
重要技术路线选择:主要是 DSL 设计上和流式图存储引擎的开发上,在 DSL 的设计上,我们从真实的场景和诉求触发,判断图表融合对实时图计算的重要性,而不是仅仅支持图查询语言或者 SQL,从而在使用体验上能够让用户即使用 SQL 处理关系型计算也能够用图查询语言处理图分析和遍历。
而在流式图存储上,我们从云原生化大的趋势入手,构建了基于云存储的 TuGraph 流式图计算引擎。但是在人力都非常有限,但是今天看都形成了我们的核心竞争力。
OSCHINA:此次开源 TuGraph Analytics 的契机是什么?
潘臻轩:
此次,开源 TuGraph Analytics 主要的契机是 TuGraph Analytics 在蚂蚁历时六年多的研发,在蚂蚁内部得到的广泛的应用,充分的验证了流图计算的技术价值。同时,当前流图在行业还处于早期的阶段,TuGraph Analytics 希望通过开源让更多的人认识和看见流图计算的价值和意义。让更多的人一起参与建设流图计算。
工业级流图数据技术尚处早期阶段
OSCHINA:谈谈 TuGraph Analytics 的技术创新之处与优势,以及 TuGraph Analytics 在其所处领域的技术水平。
潘臻轩:
核心创新之处,在图计算体系中填补了行业在工业级流式图计算方向的空白。完整的实现了一套流式图计算的系统,从而解决实时的图计算的业界难题。
优势是基于流式图计算,可以支持高吞吐超大规模的图数据规模下的实时计算。
当前该领域还处于发展的早期,在学术系统中对该该方向有一定的探索,但是偏重学术研究。目前还没有看到典型的工业界系统,TuGraph Analytics 处于行业领先水平,首先在蚂蚁应用规模广、性能强,同时相关学术论文也被数据库行业顶级会议接受。
OSCHINA:TuGraph Analytics 除了可以与 TuGraph-DB 联动互补,还能与其他数据库适配么?
潘臻轩:
当下主要考虑和 TuGraph -DB 进行深度的融合互补,未来也会考虑进一步的开放,支持更多数据库。但是由于两个系统设计支持有很多协同,所以在体验、性能上都会存在一定的优势。
OSCHINA:TuGraph Analytics 团队是如何挖掘和构建自身产品优势点的?
潘臻轩:
TuGraph Analytics团队一直秉承从实际真实场景的问题出发,同时结合第一性原理,思考系统应该如何设计和发展,以及系统在演进过程中,需要深刻洞察场景的痛点并结合系统体系化的进行解决。
OSCHINA:当下各类数据库百花齐放,业内默认的一个准则是:每一类的数据库都有其天然适配的场景与不能适配的,能否结合具体应用案例说说图计算的技术特性是如何适配到场景中去的?
潘臻轩:
图计算和图数据天生适合表达具备高度关联关系的数据模型,比如在社交网络中,想看一群有相同兴趣爱好的人,那就天生适合图计算和图数据来进行处理。可以通过图计算来进行分析和聚类,将一群有相同兴趣爱好的人关联到一起,通过图数据提供在线的查询。
具体的案例比如,在金融风控的反套现场景,由于资金网络天生就适合用图模型描述(资金交易网络),那套现行为,可以看成在资金图中的一个中环路模式,那如何识别这种环路模式就是图计算可以做的工作,而风控是天生要求时效性的场景,因此实时图计算可以快速、高效的识别资金网络中的套现环路。
OSCHINA:近期大模型成为技术热点,许多技术产品都在寻找与之结合的方向,对图数据库来说,与 AI 技术最紧密的结合点在哪里?能怎样借助 AI 的能力完善自身产品与技术生态?
潘臻轩:
对于图技术而言,AI 特别是 AIGC 技术可以很好地弥补图技术在生态上的短板,相对于 SQL 语言几十年的发展和大众的接受程度,其他领域的查询语言相对还比较小众,但是由于 AIGC 的出现,会很好地提供自然语言的查询能力,并且可以复用之前关系数据计算的生态体系。通过这样的方式可以快速的提升图计算体系的生态水位,让大家既能够享受图计算带来的技术红利,又能够方便简洁的使用图计算。