【世界聚看点】FinBench:金融场景下的图系统选型

来源:DataFunTalk时间:2023-05-03 22:38:03

导读 FinBench,全称 Financial Benchmark,是蚂蚁集团基于业务实践总结出来并在 LDBC 组织下多厂商共同建设的金融图场景系统基准评测,本次分享题目为《FinBench:金融场景下的图系统选型》,该文章内容基于 TuGraph 社区 MeetUp 演讲实录整理。

全文目录如下:

1. FinBench Background


(资料图)

2. FinBench Scenarios

3. FinBench Design

4. FinBench Chokepoints

5. Progress and Plans

分享嘉宾|戚仕鹏 蚂蚁集团 FinBench 开源项目负责人/LDBC Steering Committee Member

编辑整理|付欣岚 中国农业银行

出品社区|DataFun

01

FinBench Background

首先来介绍一下 FinBench 的背景。

1. Why Benchmark?

不同的数据库具有不同的特性表现,例如查询语言有 Cypher,Gremlin 等,图模型有语义的 RDF 和属性图,计算场景上分为 TP、AP、HTAP,数据库的场景和功能都是多种多样的。用户选择使用哪一个数据库与怎样构建整体的业务解决方案,这两个问题相生相成,业务方和用户很难严谨地对比这些数据库。

Benchmark 提供了一个真实的场景,有一些特殊的数据 pattern,或者计算测试 case 的 pattern,帮助去测试系统,来验证这些系统的功能的正确性、性能、稳定性等。比如 TPC-C 是在关系型数据库(RDBMS)领域中比较经典的一个 Benchmark,它描绘了一个供应链/零售场景去对系统进行测试。

2. Benchmarks by TPC for RDBMS

发展比较早的 TPC 是关系型数据库领域的 Benchmark 组织,其下的 Benchmark 有 TPC-C、TPC-H 和 TPCx-AI 等。比如 TPCx-AI 是专门面向端到端的以 AI/ 数据分析为核心的一个 Benchmark。TPC 通过定义各种各样的 Benchmark,同时对外提供 audit 服务,能够从功能、性能、开销、性价比等多方面对各个数据库进行对比。

3. Linked Data Benchmarks by LDBC

新兴的图领域,有一个类似 TPC 的组织叫做 LDBC,全称为关联数据委员会。在之前,LDBC 已经定义了比较多的 Benchmark,比如 SPB 是用于 RDF 数据库的 Benchmark。还有 Graphalytics 包含了一些标准的图算法,主要是面向 AP 系统作图计算分析系统的 Benchmark。大家了解最多的可能是 SNB,它用社交网络的场景来对基于属性图的 GDBMS 进行测试的 Benchmark。在与蚂蚁集团内部的金融场景进行总结对比之后,我们认为金融场景和 SNB 的社交场景有一定的差别,所以在去年向 LDBC 提出提案,现在与多家厂商一块共同建设这个 Financial Benchmark,能够模拟金融场景对 GDBMS 进行测试。

4. Data Processing Pipeline

在数据处理流程中,往往会有一个偏 TP 的、在线的系统,有实时的数据写入,处理偏 TP 的查询/数据写入。对于相对复杂的图分析,通过某种方式把数据从 TP 系统 ETL 到另外的 AP 系统中,跑一些分析迭代类的算法。还有一些情况下的较复杂的查询,相比于全图分析计算复杂度没有那么高,但由于某些原因不能在 TP 系统中进行查询,那么就会构建第二个 AP 系统去处理 。此系统处理的查询往往比 TP 复杂,但又没有到全图迭代级别的计算,这就是 SNB 中 BI 和 Interactive workload 的区别。在 FinBench 中,我们也分别总结出了两个 FinBench workload,一个 Transaction workload 是今年着力建设的 workload,另一个 analytics workload 是计划未来建设的工作。

--

02

FinBench Scenarios

1. Risk Control Scenario: Transfer Cycle

这部分从几个比较典型的场景切入来介绍 FinBench 的设计理念。

第一个场景是风控场景。 为了做交易风控,我们往往会构建一个图,其中点是账户,比如有个人账户或者公司账户等等,账户往往会有账户信息、状态信息等等。边是账户到账户之间的转账关系,转账关系上会有常见的业务属性,比如这笔转账是什么时候发生的,转账金额是多少。有这么一个建模的图之后,业务人员就可以在这个图上进行风控策略的设计,比如可以通过转账行为或者关联账户的情况判断一笔交易是否存在一定的风险。这是在风控场景下的图建模。

上图中右侧是一个转账环的例子,这个转账环就是一个业务层面的风控策略对应在图上的特征。

这里在业务流程上,业务人员会遇到一个问题:有一个转账边要写入的时候,业务人员首先检测是否存在一个转账环,当转账环构成(这笔交易可能会涉及到一些危险场景)时,希望终止这笔交易,同时把相关的账户状态标记为一个异常的状态,给业务的下一个流程进行反馈。直接处理这类查询的结果是,即使检测到风控策略命中了,转账也已经写入到 db 里面了,我们不希望这样的事情发生 。如果不把转账关系直接写入到 db 里面,就需要把风控策略对应的图上的特征做翻译,比如先假设当前的交易不存在来检测这笔交易发生之后是否形成一个转账环,业务人员需要在这里对风控策略做“翻译”后再去检测这个图上特征,以满足风控需求。

2. Read-Write Query: Transaction-Wrapped Strategy

针对上述场景,我们提出了 Read-Write Query,从业务层面来解释就是用 Transaction(事务)包裹的风控策略。这类 Query 把风控策略、转账边的写入都放在一个 Transaction 中。具体例子比如,在 Transaction 内先检测涉及到的相关账户是否状态异常,如果状态异常,那这笔交易肯定是有问题的,就把这个 Transaction 直接退出,对应的交易就被驳回了。如果涉及到的账户状态都没有问题,则进行下一步,在这个 Transaction 中把转账边写入,再去分析是否命中业务 pattern,如果命中 pattern,那么交易有问题,就把这笔 Transaction 退出,随着 Transaction 的退出,这笔交易自然也不会写到 db。同时会开启一个新的 Transaction,把相关账户的状态标记为有问题。如果转账关系写入后发现业务 pattern 并没有命中,那么就提交 Transaction,交易边可以顺利的写入到 db。这就是为了方便业务人员写风控策略而做的 Read-Write Query 设计。

3. Risk Control Scenario: Fund tracing from Loan

上图展示的是一个模拟资金追踪溯源的场景。图上特征是贷款发放后,把一定时间范围内的资金去向相关的交易边过滤出来,比如示例中红色边就是相应时间窗口之外的交易边,在分析过程中就要过滤掉。示例中,将黑色的交易边过滤出来之后,根据各级账户各条边上的交易金额,与上一级账户的资金流输入金额进行比例计算。

这类图上的计算有两个重要的特征,第一个点在遍历时的过滤上,我们称之为 recursive filtering。它是在筛选一条路径的时做一个递归的判断,假设存在一条路径,这个路径上的时间顺序是 e1e2>e3>..>ei,另外时间窗口上,上一跳跟下一跳的时间要落在一个时间窗口之内(如时间差不超过一天)。第二个点是在计算上,在计算上明显的特征是在路径上基于当前边回溯计算到上一跳(上游边)资金浓度的特征。这是贷后追踪贷后资金浓度计算的典型场景在图上特征的总结。

--

03

FinBench Design

接下来,介绍 FinBench 的主体设计。

1. A Glance of FinBench

在 data 特性上,数据模型仍是关联数据建模(点由边去进行连接),点边都具有一些属性。边上有一个特性叫做 Edge Multiplicity,指的是在相同的起点和终点之间可能会存在多条重复边,数据分布上有大点。在测试集上的特性有图上遍历、Read-Write Query,基于时间的数据管理等。在负载上,模拟真实世界的负载来对系统进行测试,同时提供不同规模的负载。

在 Benchmark Suite 建设上,主要有四个组件分别是 DataGen,Driver,Reference Implementation 以及 ACID Suite 。DataGen 的主要功能是生成测试数据,包括存量数据和增量数据,存量数据 由测试系统进行批量载入,增量数据会交给 Driver,由 Driver 分析后以 Query 的形式发到测试系统,由测试系统接收这些数据进行写入。ACID 测试是相对比较独立的对测试系统进行测试。

2. Data Schema Design

图模型建模上目前主要是有五类点,虚线边代表的是 Edge Multiplicity。

3. Data Distribution Design

数据分布上,我们对一些真实的线上系统存储的数据做了一个侧写,从侧写的结果来看,有如下共性结论,average degree 即平均的度数大概是分布在 1 到 3 之间,平均是2。大点的度数基本上是在百万级别,也就是有百万条边。整体图上度数的分布符合 PowerLaw 幂律回归的特征。同时我们也对有时间戳的边的时间分布做了分析,可以看到这些边在时间上的分布是符合现实生活中的预期的,基本上分布在早中晚高峰。

4. Transaction Workload

Transaction Workload 有四种 query:Complex Read Query,Simple Read Query,Write Query,和 Read-Write Query。 Complex Read Query 相比 Simple Read Query 的计算会稍微复杂一点,它是从典型的风控或者商业分析的场景中总结出来的。Simple Read Query 往往是一些比较简单的查询。Write Query 是数据的写入,包括插入、更新、删除。Read-Write Query 总结出来了三个 query,是 FinBench 的一个亮点。

① Transaction Workload:Read-Write Query

Read-Write Query 的设计如上图所示,前面已经通过业务上的例子详细介绍过了,这里就不再展开介绍。Read-Write Query 由不同的 Read Query 和 Write Query 组成,将这些 Complex Query 包裹在一个 transaction 中,来满足风控业务人员的需求。

② Transaction Workload:Temporal Window

第二个 FinBench transaction workload 的特性是 Temporal Window。在做数据分析或者过滤时,我们往往会关注更靠近当前时间的数据,这就是一个时序窗口。在图上的表现是,在做查询的时候对边上的时间做起始时间到结束时间的过滤约束。在具体的业务实践中,大家往往会选择做优化,比如存储分级把冷数据热数据做分开存储,或者做 TTL 把一些过期的数据做淘汰。

③ Transaction Workload:Special Patterns

这是 FinBench 总结出的一些比较特殊的 pattern,比如左上角是一个转账环,右上角是一级二级账户的呈树状结构转账关系。下面是一个担保链,比如对企业做担保关系的穿透。

④ Transaction Workload:Recursive Path Filtering

这是在贷后追踪场景中,有 Recursive Path Filtering 的特征,在上文也做了具体的介绍,不再赘述

5. Load Pattern in Real System

这里是对负载设计的总结。我们对一些业务系统做了持续长达一个月以上的监测,发现负载的波动遵循着以天为周期的变化。同时我们也对点边的负载做了分离的分析,可以看到点边的负载以及读写的负载也是存在差异的。

6. Load Pattern (Driver Design)

Driver 设计上,Driver 向测试系统发出查询请求,将有不同的 query 按照一个策略混合在一起发给测试系统,FinBench 中有 n+2 个 stream,一个 stream 用来单独地发 Complex Read Query,一个 stream 用来发 Read-Write Query,n 个 stream 用来发写的 Query,来保证读写的比例是平衡的。在负载规模的控制上,Driver 基于 TCR 参数保证系统能够在不同的负载下得到测试。

7. ACID Test Suite

ACID 测试在工业界或者学术界都是一个比较标准成熟的设计。 原子性和隔离级别的测试都是基于 Fail Case 进行测试的。Durability 测试上,ACID Suite 分别对系统做 graceful(有缓冲时间/宕机)和 ungraceful(无缓冲时间/宕机)的情况来分别对系统进行测试。Consistency 上的测试和 Durability 结合在一起进行测试。

--

04

FinBench Chokepoints

1. Chokepoints in FinBench

Chokepoint 是 LDBC 在创立之后就一直在宣传的一个概念,指的是在 Benchmark 设计过程中,对问题场景总结出来的一些技术上的挑战,这也是数据库的开发人员需要去考虑进行优化的方向。这里列出了 FinBench 的一些 chokepoint。

2. Examples of Chokepoints in FinBench

接下来展开介绍其中两个 chokepoint。

比如贷后追踪的 Recursive Path Filtering 的过滤特征是这样的。现有的查询语言事实标准 Cypher 在表达这个过滤的 pattern 时没有很好的表达能力。我们希望的是,查询语言在这个场景下能够有好的表达能力。这里有一个例子,是某个实验室正在做的尝试去改善的 Cypher 的一个扩展,尝试从一些关键字上去解决表达的问题。

在存储上,我们在边上都是有时间戳属性的。为了保证在对时间进行过滤的时候数据访问有比较良好的局部性,我们可以做一些优化,比如在存边的时候把时间戳作为边上的一个 ID,对这个边进行排序存储,那么在数据访问的局部性就会比较好。

Read-Write Query,其表现是一个 Complex Query 并上一个比较短的 Write Query,在表现上来说,它大部分的时间可能是在读,小部分时间是在写,针对 Read-Write Query 的情况,可以做一些优化。比如把前一个 Read-Write Query 的读和下一个 Read-Write Query 的读并行起来,并行后可能会出现最终在写入数据的时候有一些竞争或者冲突的情况,这里也是有各种优化手段的。

--

05

Progress and Plans

1. FinBench Progress

最后介绍一下 FinBench 当前的进度和未来的规划。FinBench 在 2022 年 2 月份开始做了一个提案,在 6 月份正式 Kick Off。经过半年的时间,基本上确定了 FinBench 的主体框架,并且组建了一个开发小组,对 FinBench 的 Suite 做开发测试套件的开发。

2. FinBench Plans

在今年1月底发布了 Alpha Version。 在 Alpha Version 发布之后,我们会邀请 Task Force 内部的一些厂商做内测(Alpha/Beta Test)。在 Test 完成之后,我们确认整个 FinBench 的逻辑包括实现都是没有问题之后,大概会在年中发布一个正式版本。

这是当前 Task Force 的厂商名单,包括开发小组,联合了一些国内外知名厂商,包括蚂蚁集团、创邻科技、StarGraph、Ultipa、Intel、TigerGraph、Vesoft等。 整体上 FinBench 是以一个开源项目的形式来运作的,欢迎大家关注和提出建议。

项目链接:

https://github.com/ldbc/ldbc_finbench_docs

https://ldbcouncil.org/benchmarks/finbench/

今天的分享就到这里,谢谢大家。

标签:

相关阅读

推荐阅读

【世界聚看点】FinBench:金融场景下的图系统选型

【世界聚看点】FinBench:金融场景下的图系统选型

导读FinBench,全称FinancialBenchmark,是蚂蚁集团基于业务实践总结出来并在LDBC组织下多厂商共同建设的金更多

2023-05-03 22:38:03
中国五一档电影总票房破15亿元-今日聚焦

中国五一档电影总票房破15亿元-今日聚焦

(记者高凯)据灯塔专业版实时数据,截至5月3日19时42分,中国五一档(4月29日至5月3日)电影总票房突破15亿元(更多

2023-05-03 21:51:11
世界热门:虚函数实现多态性_在c  中虚函数和多态性是什么意思

世界热门:虚函数实现多态性_在c 中虚函数和多

1、多态是指使用相同的函数名来访问函数不同的实现方法,即“一种接口,多种方法”,用相同的形式访问一组更多

2023-05-03 21:01:43
英语教师网络研修总结_英语教师网

英语教师网络研修总结_英语教师网

1、网上的课件,有的可以免费下载;有的是不能免费下载的。2、如果不是免费的,自己可以尝试着去积分,或者更多

2023-05-03 19:58:32
专访:使用人民币结算中国进口商品有助于阿根廷应对当前经济挑战——访阿根廷布宜诺斯艾利斯大学经济学教授马奇尼

专访:使用人民币结算中国进口商品有助于阿根廷应

新华社布宜诺斯艾利斯5月2日电专访:使用人民币结算中国进口商品有助于阿根廷应对当前经济挑战——访阿根廷更多

2023-05-03 19:12:02
游客手机掉进西湖,被收1500元打捞费?西湖景区回应 每日速讯

游客手机掉进西湖,被收1500元打捞费?西湖景区回

5月2日,有游客发布视频称,自己的手机掉到西湖里,被一位衣服上写着“应急救援”的男子要价1500元捞起,他更多

2023-05-03 18:20:43
放松身心亲近自然 自驾露营成旅游新风尚

放松身心亲近自然 自驾露营成旅游新风尚

​今年“五一”假期,我国旅游业的快速恢复催生自驾露营休闲游、短途游、夜游等新型旅游产品提质升级。快速更多

2023-05-03 17:17:58
广交会观察:中华文化催生外贸新增长点

广交会观察:中华文化催生外贸新增长点

中新社广州5月3日电题:广交会观察:中华文化催生外贸新增长点中新社记者蔡敏婕被誉为丝绸界“软黄金”的香更多

2023-05-03 16:36:15
+ 点击查看更多精彩

精彩放送

太原12个楼盘发放18张预售证 仅有3个项目为纯新盘
    今年9月,太原市房产管理局给省城12个楼盘正式发放了18张预售证。...
截至9月底 杭州共完成不动产登记988.72万件
    房产证、土地证,两证合一了!2016年6月1日,在市民之家举行的全市...
各地继续密集发布楼市宽松政策 多地支持农民进城购房
    近期以来,各地继续密集发布楼市宽松政策,其中包括长春、遵义多...
宁波:关于“带押过户”新模式的7个典型问题权威解答来了
    日前,宁波市不动产登记中心试点二手房带押过户新模式。新模式下...
多地政府大手笔回购商品房 苏州拟对10个板块回购约1万套新房
    越来越多的地方政府出手回购当地商品房。近日,一份苏州市政府部...
市场降温豪宅不冷 媒体:北上广深掀起“豪宅热”
    尽管整体市场低迷,但豪宅板块比较稳定。争取成交,忙完这一次,...
    最新见闻