DB-GPT/examples/test_files/tugraph.md
M1n9X 759f7d99cc
feat(GraphRAG): enhance GraphRAG by graph community summary (#1801)
Co-authored-by: Florian <fanzhidongyzby@163.com>
Co-authored-by: KingSkyLi <15566300566@163.com>
Co-authored-by: aries_ckt <916701291@qq.com>
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
Co-authored-by: yvonneyx <zhuyuxin0627@gmail.com>
2024-08-30 21:59:44 +08:00

18 KiB
Raw Permalink Blame History

TuGraph

TuGraph图数据库由蚂蚁集团与清华大学联合研发构建了一套包含图存储、图计算、图学习、图研发平台的完善的图技术体系支持海量多源的关联数据的实时处理显著提升数据分析效率支撑了蚂蚁支付、安全、社交、公益、数据治理等300多个场景应用。拥有业界领先规模的图集群解决了图数据分析面临的大数据量、高吞吐率和低延迟等重大挑战是蚂蚁集团金融风控能力的重要基础设施显著提升了欺诈洗钱等金融风险的实时识别能力和审理分析效率并面向金融、工业、政务服务等行业客户。TuGraph产品家族中开源产品包括TuGraph DB、TuGraph Analytics、OSGraph、ChatTuGraph等。内源产品包括GeaBase、GeaFlow、GeaLearn、GeaMaker等。

TuGraph企业级图数据管理平台提供对关联数据的复杂、深度分析功能。TuGraph以分布式集群架构支持海量数据的高吞吐、高可用性、高并发读写和ACID事务操作。通过对数据的分片、分区支持水平扩展提供对点、边、属性、拓扑等结构的查询、过滤、索引等功能。TuGraph提供离线、近线、在线的图算法和图学习能力内置数十种算法能够对全图、子图、动态图的模式和特征进行处理通过可视化或数据服务形式与外部数据源交互。此外TuGraph提供可视化的展示和操作界面覆盖图研发和服务的全生命周期支持主流的图查询语言提供便捷的访问和开发接口能够与外部多模数据源进行导入导出、存量/增量/批量更新和备份。TuGraph还提供精美和实用的图生产环境管理监控满足企业用户的技术和业务应用需要。

TuGraph在金融风控方面的应用实践主要包括个人信贷业务、反欺诈、洗钱路径追踪等问题。利用多维交叉关联信息深度刻画申请和交易行为识别多种复杂、规模化、隐蔽性的欺诈网络和洗钱网络结合聚类分析、风险传播等算法实时计算用户的风险评分在风险行为发生前预先识别帮助金融机构提升效率、降低风险。基于TuGraph企业级图数据管理平台蚂蚁集团增加反欺诈稽核金额6%反洗钱风险审理分析效率提升90%。每天计算近10亿用户大约200亿左右边关系对疑似团伙类犯罪风险识别能力提高近10倍。此外为某银行提供的信贷图平台提升了13%的风控模型区分度为某银行完成的信用卡申请团伙欺诈分析方案运算时间缩短至原有的1/60为某银行搭建的企业风险图平台在对小微企业评级放贷问题中担保圈识别准确率达到90%以上。

1. TuGraph DB

1.1 简介

TuGraph DB 是支持大数据容量、低延迟查找和快速图分析功能的高效图数据库。TuGraph社区版于2022年9月开源提供了完整的图数据库基础功能和成熟的产品设计如ACID兼容的事务、编程API和配套工具等适用于单实例部署。社区版支持TB级别的数据规模为用户管理和分析复杂关联数据提供了高效、易用、可靠的平台是学习TuGraph和实现小型项目的理想选择。

1.2 TuGraph特性

TuGraph是支持大数据量、低延迟查找和快速图分析功能的高效图数据库。TuGraph也是基于磁盘的数据库支持存储多达数十TB的数据。TuGraph提供多种API使用户能够轻松构建应用程序并使其易于扩展和优化。

它具有如下功能特征:

  • 属性图模型
  • 实时增删查改
  • 多重图(点间允许多重边)
  • 多图(大图与多个子图)
  • 完善的ACID事务处理隔离级别为可串行化serializable
  • 点边索引
  • 混合事务和分析处理HTAP支持图查询、图分析、图学习
  • 主流图查询语言OpenCypher、ISO GQL等
  • 支持OLAP API内置30多种图分析算法
  • 基于C++/Python的存储过程含事务内并行Traversal API
  • 提供图可视化工具
  • 在性能和可扩展性方面的支持:
  • 千万点/秒的高吞吐率
  • TB级大容量
  • 高可用性支持
  • 高性能批量导入
  • 在线/离线的备份恢复

主要功能:

  • 标签属性图模型
  • 完善的 ACID 事务处理
  • 内置 34 图分析算法
  • 支持全文/主键/二级索引
  • OpenCypher 图查询语言
  • 基于 C++/Python 的存储过程

性能和可扩展性:

TuGraph DB的文档在链接,欢迎访问我们的官网

1.3 快速上手

一个简单的方法是使用docker进行设置可以在DockerHub中找到, 名称为tugraph/tugraph-runtime-[os]:[tugraph version], 例如, tugraph/tugraph-runtime-centos7:3.3.0

更多详情请参考 快速上手文档业务开发指南.

1.4 从源代码编译

建议在Linux系统中构建TuGraph DBDocker环境是个不错的选择。如果您想设置一个新的环境请参考Dockerfile.

以下是编译TuGraph DB的步骤

  1. 如果需要web接口运行deps/build_deps.sh不需要web接口则跳过此步骤
  2. 根据容器系统信息执行cmake .. -DOURSYSTEM=centos或者cmake .. -DOURSYSTEM=ubuntu
  3. make
  4. make package 或者 cpack --config CPackConfig.cmake

示例:tugraph/tugraph-compile-centos7Docker环境

$ git clone --recursive https://github.com/TuGraph-family/tugraph-db.git
$ cd tugraph-db
$ deps/build_deps.sh
$ mkdir build && cd build
$ cmake .. -DOURSYSTEM=centos7
$ make
$ make package

1.5 开发

我们已为在DockerHub中编译准备了环境docker镜像可以帮助开发人员轻松入门名称为 tugraph/tugraph-compile-[os]:[compile version], 例如, tugraph/tugraph-compile-centos7:1.1.0

2. TuGraph Analytics

2.1 介绍

TuGraph Analytics (别名GeaFlow) 是蚂蚁集团开源的性能世界一流的OLAP图数据库支持万亿级图存储、图表混合处理、实时图计算、交互式图分析等核心能力目前广泛应用于数仓加速、金融风控、知识图谱以及社交网络等场景。

关于GeaFlow更多介绍请参考GeaFlow介绍文档

GeaFlow设计论文参考GeaFlow: A Graph Extended and Accelerated Dataflow System

2.2 起源

早期的大数据分析主要以离线处理为主以Hadoop为代表的技术栈很好的解决了大规模数据的分析问题。然而数据处理的时效性不足 很难满足高实时需求的场景。以Storm为代表的流式计算引擎的出现则很好的解决了数据实时处理的问题提高了数据处理的时效性。 然而Storm本身不提供状态管理的能力 对于聚合等有状态的计算显得无能为力。Flink 的出现很好的弥补了这一短板通过引入状态管理以及Checkpoint机制实现了高效的有状态流计算能力。

随着数据实时处理场景的丰富,尤其是在实时数仓场景下,实时关系运算(即Stream Join) 越来越多的成为数据实时化的难点。Flink虽然具备优秀的状态管理能和出色的性能然而在处理Join运算尤其是3度以上Join时 性能瓶颈越来越明显。由于需要在Join两端存放各个输入的数据状态当Join变多时状态的数据量急剧扩大性能也变的难以接受。 产生这个问题的本质原因是Flink等流计算系统以表作为数据模型而表模型本身是一个二维结构不包含关系的定义和关系的存储 在处理关系运算时只能通过Join运算方式实现成本很高。

在蚂蚁的大数据应用场景中尤其是金融风控、实时数仓等场景下存在大量Join运算如何提高Join 的时效性和性能成为我们面临的重要挑战,为此我们引入了图模型。图模型是一种以点边结构描述实体关系的数据模型,在图模型里面,点代表实体, 边代表关系,数据存储层面点边存放在一起。因此,图模型天然定义了数据的关系同时存储层面物化了点边关系。基于图模型,我们实现了新一代实时计算 引擎GeaFlow很好的解决了复杂关系运算实时化的问题。目前GeaFlow已广泛应用于数仓加速、金融风控、知识图谱以及社交网络等场景。

2.3 特性

  • 分布式实时图计算
  • 图表混合处理SQL+GQL语言
  • 统一流批图计算
  • 万亿级图原生存储
  • 交互式图分析
  • 高可用和Exactly Once语义
  • 高阶API算子开发
  • UDF/图算法/Connector插件支持
  • 一站式图研发平台
  • 云原生部署

2.4 快速上手

  1. 准备Git、JDK8、Maven、Docker环境。
  2. 下载源码:git clone https://github.com/TuGraph-family/tugraph-analytics
  3. 项目构建:mvn clean install -DskipTests
  4. 测试任务:./bin/gql_submit.sh --gql geaflow/geaflow-examples/gql/loop_detection.sql
  5. 构建镜像:./build.sh --all
  6. 启动容器:docker run -d --name geaflow-console -p 8888:8888 geaflow-console:0.1

更多详细内容请参考:快速上手文档

2.5 开发手册

GeaFlow支持DSL和API两套编程接口您既可以通过GeaFlow提供的类SQL扩展语言SQL+ISO/GQL进行流图计算作业的开发也可以通过GeaFlow的高阶API编程接口通过Java语言进行应用开发。

2.6 技术架构

GeaFlow整体架构如下所示

GeaFlow架构

  • DSL层即语言层。GeaFlow设计了SQL+GQL的融合分析语言支持对表模型和图模型统一处理。
  • Framework层即框架层。GeaFlow设计了面向Graph和Stream的两套API支持流、批、图融合计算并实现了基于Cycle的统一分布式调度模型。
  • State层即存储层。GeaFlow设计了面向Graph和KV的两套API支持表数据和图数据的混合存储整体采用了Sharing Nothing的设计并支持将数据持久化到远程存储。
  • Console平台GeaFlow提供了一站式图研发平台实现了图数据的建模、加工、分析能力并提供了图作业的运维管控支持。
  • 执行环境GeaFlow可以运行在多种异构执行环境如K8S、Ray以及本地模式。

2.7 应用场景

2.7.1 实时数仓加速

数仓场景存在大量Join运算在DWD层往往需要将多张表展开成一张大宽表以加速后续查询。当Join的表数量变多时传统的实时计算引擎很难 保证Join的时效性和性能这也成为目前实时数仓领域一个棘手的问题。基于GeaFlow的实时图计算引擎可以很好的解决这方面的问题。 GeaFlow以图作为数据模型替代DWD层的宽表可以实现数据实时构图同时在查询阶段利用图的点边物化特性可以极大加速关系运算的查询。

2.7.2 实时归因分析

在信息化的大背景下,对用户行为进行渠道归因和路径分析是流量分析领域中的核心所在。通过实时计算用户的有效行为路径,构建出完整的转化路径,能够快速帮助业务看清楚产品的价值,帮助运营及时调整运营思路。实时归因分析的核心要点是准确性和实效性。准确性要求在成本可控下保证用户行为路径分析的准确性;实效性则要求计算的实时性足够高,才能快速帮助业务决策。 基于GeaFlow流图计算引擎的能力可以很好的满足归因分析的准确性和时效性要求。如下图所示 归因分析 GeaFlow首先通过实时构图将用户行为日志转换成用户行为拓扑图以用户作为图中的点与其相关的每个行为构建成从该用户指向埋点页面的一条边.然后利用流图计算能力分析提前用户行为子图,在子图上基于归因路径匹配的规则进行匹配计算得出该成交行为相应用户的归因路径,并输出到下游系统。

2.7.3 实时反套现

在信贷风控的场景下如何进行信用卡反套现是一个典型的风控诉求。基于现有的套现模式分析可以看到套现是一个环路子图如何快速高效在大图中快速判定套现将极大的增加风险的识别效率。以下图为例通过将实时交易流、转账流等输入数据源转换成实时交易图然后根据风控策略对用户交易行为做图特征分析比如环路检查等特征计算实时提供给决策和监控平台进行反套现行为判定。通过GeaFlow实时构图和实时图计算能力可以快速发现套现等异常交易行为极大降低平台风险。 实时反套现

3. OSGraph

OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具基于GitHub开源数据全域图谱实现开发者行为、项目社区生态的分析洞察。可以为开发者、项目Owner、开源布道师、社区运营等提供简洁直观的开源数据视图帮助你和你的项目制作专属的开源名片、寻求契合的开发伙伴、挖掘深度的社区价值。

3.1 产品地址

https://osgraph.com

3.2 快速开始

本地启动测试请参考:OSGraph部署文档

3.3 功能介绍

当前产品默认提供了6张开源数据图谱供大家体验包含项目类图谱3个贡献、生态、社区、开发类3个活动、伙伴、兴趣

3.3.1 项目贡献图谱

发现项目核心贡献根据项目开发者研发活动信息Issue、PR、Commit、CR等找到项目核心贡献者。

Q我想看看给Apache Spark项目写代码的都有谁

A:选择“项目贡献图谱” - 搜索spark - 选择apache/spark。可以看到HyukjinKwon、dongjoon-hyun等核心贡献者另外还一不小心捉到两个“显眼包”AmplabJenkins、SparkQA这两个只参与CodeReview的机器人账号。

3.3.2 项目生态图谱

洞察项目生态伙伴:提取项目间的开发活动、组织等关联信息,构建项目核心生态关系。

Q最近很火的开源大模型Llama3周边生态大致是什么样的

A:选择“项目生态图谱” - 搜索llama3 - 选择meta-llama3/llama3。可以看到pytorch、tensorflow、transformers等知名AI项目当然还有上科技头条的llama.cpp。比较惊喜的发现是ray竟然和llama3有不少公共开发者可以深度挖掘一下。

3.3.3 项目社区图谱

分析项目社区分布:根据项目的开发活动、开发者组织等信息,提取项目核心开发者社区分布。

Q大数据引擎Flink发展这么多年后的社区现状如何

A:选择“项目社区图谱” - 搜索flink - 选择apache/flink。可以看到项目关注者主要来自中、美、德三国而Alibaba组织是代码贡献的中坚力量。

3.3.4 开发活动图谱

展示个人开源贡献根据开发者研发活动信息Issue、PR、Commit、CR等找到参与的核心项目。

Q大神Linus Torvalds最近在参与哪些开源项目

A:选择“开发活动图谱” - 搜索torvalds。果然linux项目是torvalds的主要工作不过llvm、mody、libgit2也有所参与同时也看到他在subsurface这种“潜水日志管理工具”上的大量贡献果然大佬的爱好都很广泛。

3.3.5 开源伙伴图谱

寻找个人开源伙伴:找到开发者在开源社区中,与之协作紧密的其他开发者。

Q:我想知道在开源社区有没有和我志同道合的人?

A:选择“开发伙伴图谱” - 搜索我的ID。让我震惊的是有那么多陌生人和我关注了同一批项目这不得找机会认识一下说不定就能找到新朋友了。而和我合作PR的人基本上都是我认识的朋友和同事继续探索一下朋友们的开源伙伴开源社区的“六度人脉”不就来了么。

3.3.6 开源兴趣图谱

挖掘个人开源兴趣:根据参与的项目主题、标签等信息,分析开发者技术领域与兴趣。

QGitHub上最活跃的开发者对什么技术感兴趣

A:选择“开源兴趣图谱” - 搜索sindresorhusGitHub用户榜 No.1。整体来看sindresorhus对node、npm、js很感兴趣另外他发起的awesome项目足足30W星令人咋舌当前的开源兴趣数据主要来自项目有限的标签信息后续借助AI技术可能会有更好的展现。

3.4 未来规划

未来将会有更多有趣的图谱和功能加入到OSGraph

  • 简单灵活的API设计让图谱无限扩展。
  • 自由高效的画布交互,无限探索数据价值。
  • 图谱URL支持嵌入Markdown制作我的开源名片。
  • 基于AI技术的项目主题标签分析。
  • 多人多项目联合分析,图谱洞察一键可达。
  • 更丰富的数据展示与多维分析。
  • 更多功能,与你携手共建……

4. ChatTuGraph

ChatTuGraph通过AI技术为TuGraph赋能可以为图业务研发效能、图产品解决方案、图数据智能分析、图任务自动管控等领域带来更丰富的应用场景。 目前ChatTuGraph通过图语言语料生成借助大模型微调技术实现了自然语言的图数据分析构建Graph RAG基于知识图谱实现检索增强生成以降低大模型的推理幻觉以及通过多智能体技术Multiple Agents System实现图数据上的AIGC、智能化等能力。