Command Palette
Search for a command to run...
LDBC 金融基准:事务负载
LDBC 金融基准:事务负载
摘要
图数据库在金融科技(FinTech)行业中发挥着关键作用。然而,现有的图基准测试未能捕捉金融数据集和负载的独特特征,使其无法有效评估图数据库在金融场景下的表现。本文提出了 LDBC 金融基准(FinBench)的事务负载,这是一种新型基准测试,采用瓶颈驱动的设计方法学,强调性能瓶颈,并融入了数据集偏斜性、边多重性、时间窗口过滤、递归路径过滤、读写查询模式以及枢纽顶点截断等独特特性。主要贡献包括:一个能够合成具有金融特征数据集的可扩展数据生成器,一个利用分桶数据统计来保证查询间运行时一致性的参数生成器,以及一个通过时间窗口对查询执行进行偏置的可扩展基准驱动器。在图数据库上的实验评估表明,该基准能够揭示新的瓶颈并为金融场景下的系统性能提供见解。
一句话总结
蚂蚁集团、CreateLink Technology、HKUST(GZ) 等提出了 FinBench Transaction Workload,这是一个面向金融场景的图数据库基准。该基准采用瓶颈点驱动的设计方法,纳入数据集偏斜、边多重性、时间窗口过滤和递归路径过滤等特性,从而揭示现有基准未覆盖的新型性能瓶颈。
核心贡献
- 论文提出 LDBC Financial Benchmark (FinBench) Transaction Workload,这是一种面向金融工作负载、遵循 LDBC 风格的图数据库基准。它采用瓶颈点驱动设计,建模数据集偏斜、边多重性、时间窗口过滤、递归路径过滤、读写查询模式和枢纽顶点截断。
- 贡献了一个可扩展的数据生成器,用于合成金融专属图数据集;同时提出一个参数生成器,使用分桶数据统计来保持各查询之间的稳定运行时行为。
- 在图数据库上的实验评估表明,经过时间窗口偏置的可扩展基准驱动会暴露新的瓶颈点,并提供金融工作负载下图数据库行为的洞察。
引言
图技术日益用于金融服务,以建模支付、账户、实体和关系,支持欺诈检测、反洗钱和客户身份识别流程。作者解释说,金融图与社会图不同,因为金融图包含同一账户对之间的多条转账边、丰富的时间特征,以及结合时间窗口、递归路径、子图匹配和读写操作的查询。这一点很重要,因为全球支付行业处理数以万亿计的交易,因此图数据库需要能够反映真实金融数据模式和查询瓶颈的评估方法。作者认为,现有图基准,尤其是面向社交网络的基准(如 SNB 和 LinkBench),无法捕捉这些时间性、路径密集和事务性特征,因此对金融工作负载不够有效。为解决这个问题,作者提出 LDBC Financial Benchmark (FinBench) Transaction Workload,配备可扩展的金融数据生成器、基于数据集统计信息的参数生成器以稳定查询运行时间、支持时间认知的基准驱动,以及围绕金融瓶颈点的工作负载。
数据集
-
作者使用一个由蚂蚁集团金融图和客户图中观察到的模式与统计特征生成得到的金融图基准数据集。包含代码和数据的产物位于 https://github.com/ldbc/ldbc_finbench_transaction_impls。
-
源数据不会作为原始客户记录发布。作者通过对蚂蚁集团在线生产环境中的三个子图进行均匀抽样来刻画真实金融图,然后抽象出重复出现的实体类型和关系模式,以设计基准模式。
-
数据集被建模为有向金融图。模式包含五类顶点和九类边,覆盖个人、公司、账户、媒体设备,以及 ownership、sign in、transfer、deposit、withdraw、repay、guarantee 和 invest 等关系。类似现实世界的子类型(例如企业账户和个人账户)会被合并为统一顶点类型。
-
边和顶点携带丰富的元数据,例如创建时间戳、转账金额和注释。signIn、transfer、withdraw、deposit 和 repay 边被显式建模为允许多重性,即允许同一源顶点和目标顶点之间存在多条边。其他边类型不允许多重性。
-
真实世界刻画识别出三个关键数据集特征:
- 度分布:转账入度和出度服从幂律。大多数账户的转账数少于十次,而枢纽账户可达数百万,观测到的度最高达 1.5 亿。
- 边多重性:枢纽顶点呈现偏斜的多重性,大多数邻居的多重性较低,但少数邻居的多重性极高。
- 时间戳分布:转账活动呈现周期性峰值,尤其在 8:00 到 9:00 和用餐时间前后,午夜到清晨活动较低。
-
这些刻画结果会作为生成器参数。基准生成器会近似所抽样真实金融图的度、边多重性和时间戳分布。
-
生成的基准使用规模因子控制数据集大小。例如,SF1 的目标是磁盘上 1 GiB 的数据集。其他规模因子的统计信息见附录 B 表 7。默认仿真周期为三年,实体数量随目标数据集大小成比例缩放。
-
数据集构建遵循基于事件的仿真框架。生成器首先创建个人和公司,然后模拟账户注册、媒体登录、投资、贷款申请和资金转账。顶点和边在这些事件期间被记录并写入磁盘。
-
生成器会在资金转账前为账户顶点分配目标度。如果目标度超过阈值,该账户会被视为枢纽,其邻居边多重性会从配置的多重性分布中抽样。边时间戳根据观察到的时间模式生成。
-
原始仿真数据被切分为两个基准子集:
- 快照数据:载入待测系统的初始图状态。
- 增量数据:后续事件转换成的写查询,供基准驱动使用。
-
默认分段断点是仿真时间轴的 97 百分位。这提供了较大且稳定的初始快照,同时保留最后一段用于动态写和读写工作负载测试。
-
所提供文本未描述裁剪策略。主要数据选择和处理步骤包括:用于刻画的均匀顶点抽样、模式抽象、分布引导生成和时间轴分段。
-
仿真期间生成的顶点和边创建时间戳会被映射为基准查询的相对时间戳。评估期间,驱动使用压缩系数从这些相对时间戳计算实际请求时间。
-
该数据集用于图数据库基准测试,而非模型训练。快照作为初始数据库状态,增量数据驱动金融交易查询,以测试存储、遍历和高并发读写行为。
方法
基准方法论
作者围绕模式驱动的数据生成器和瓶颈点驱动的事务工作负载构建基准。生成器设计用于在不暴露敏感数据的情况下生成真实感金融图。它首先在可配置的期间内模拟金融活动,然后将生成的原始事件切分为初始快照图和增量流。这种两步设计将稳定图状态与动态工作负载回放解耦。仿真期间,系统按照业务因果关系依次创建个人、公司、账户、媒体设备和关系。随后模拟账户注册、媒体登录、投资、贷款申请和资金转账。顶点和边创建会被逐事件记录,并在仿真完成后写入磁盘。实体数量按请求的数据集规模成比例缩放,同时配置度分布、边多重性和边时间戳分布,以近似真实金融图。例如,生成器可在创建资金转账事件之前为每个账户分配目标转账度。当账户超过枢纽阈值时,其邻居边多重性会从配置分布中抽样。边时间戳从时间戳分布中抽样,而不是均匀分配。在分段阶段,时间轴断点将原始数据切分为快照数据和增量数据。快照成为待测系统的初始图状态,增量数据则转换为基准驱动使用的写查询。
事务工作负载划分为四类查询。复杂读查询编码调查和风控模式,例如路径追踪、聚合分析、环检测和资金流调查。这些查询旨在测试多跳遍历、过滤、聚合和对超时敏感的执行。简单读查询执行较轻的实体检查,通常仅涉及少量相邻顶点。写查询插入、删除或更新顶点和边。读写查询通过将读检查与后续写操作组合,将业务逻辑嵌入事务,因此事务成功取决于整个工作流的有效性。这种划分使基准能够反映真实金融系统:分析师首先查询图,然后请求特定实体细节,最后执行更新或事务性检查。
对于时间查询,作者设计了显式时间窗口过滤模式。这些查询测试系统能否改善存储和查询执行中的时间局部性,因为近期金融数据通常比历史数据访问更频繁。一个代表性模式检查由 startTime 和 endTime 定义的窗口内两个账户之间的直接转账,然后通过其他账户搜索满足相同时间约束的间接环路路径。参见以下时间窗口查询模式:
该模式评估边过滤能否下推到数据访问附近,从而避免扫描无关边。聚合结果包含账户标识和交易统计信息,例如边数、总和和最大转账金额。设计迫使查询引擎联合推理拓扑、方向和时间约束。
另一个核心工作负载模块测试递归路径过滤和枢纽顶点截断。金融风险分析常常需要在多个账户之间追踪资金流,同时对时间戳施加序列约束。一个查询模式会查找与被封锁媒体设备相关的账户,并沿转账边向上最多追踪若干跳,要求路径上的所有时间戳单调递增。这一约束不能独立地在每条边上评估,因为候选路径的有效性取决于之前几跳看到的时间戳。该查询还会暴露枢纽顶点,这些顶点可能包含大量相邻边并导致搜索爆炸。为了使执行可预测,基准引入截断参数,包括截断顺序和截断上限。这些参数定义哪些边先被考虑以及遍历多少条边,从而对热顶点提供确定性抽样机制。参见以下递归路径过滤和截断模式:
基线执行策略会先物化大量候选路径,然后扫描每条路径以验证递归过滤器。该方法会产生大量中间结果集并浪费内存。作者转而描述了一种优化,在路径扩展期间维护遍历状态。对于时间戳递增顺序这样的过滤器,状态跟踪目前看到的最大时间戳。只有当新考虑的边的时间戳超过该状态值时,才会接受该边。这将后路径过滤器转换为前路径剪枝过滤器,在无效遍历扩展为完整候选路径之前减少它们。
参数生成是基准流水线中的另一个重要模块。金融图通常服从幂律分布并具有强时间依赖,因此随机参数选择可能产生不稳定的中间结果规模和不可靠的运行时间测量。为解决这个问题,作者将因子表与迭代边级处理相结合。因子表记录实体关系和统计分桶,例如每个人拥有的账户、每个账户的出边转账边,以及按交易金额分桶的转账次数。这些分桶可以防止高交易量、低价值账户不可预测地主导查询执行。随后生成器逐跳遍历查询模式,并使用因子表应用截断过滤器。贪心选择过程会选择产生均衡结果规模和稳定执行时间的参数值。参见以下参数筛选模式:
该方法适用于从个人开始、遍历账户、最后检查通过转账关联的公司账户的查询。由于在多个遍历步骤中应用截断,参数生成器能更好估计中间结果规模,并降低枢纽顶点带来的方差。
作者还设计了一种工作负载混合机制,将复杂读查询和简单读查询连接起来。复杂读查询构成工作负载的分析核心,并产生可成为简单检查查询输入的结果。为了近似这种行为,驱动在复杂查询后生成可变数量的简单读查询。该数量由带时间窗口偏置的随机过程控制。设 U 是区间 [0,1) 上的均匀随机变量,设 t 是复杂读查询使用的时间窗口长度,设 k 是调优系数。概率值计算为:
Prob(x)=1−Uk⋅t该值将复杂查询时间窗口映射到缩放随机信号,以决定触发多少简单读查询。更长的时间窗口会增加预期后续简单读数量。该机制在保留真实工作负载交互的同时,保持生成的混合比例可控且可复现。
写查询和读写查询生成保持业务顺序。账户创建必须发生在引用这些账户的转账之前。转账关系创建必须发生在所涉实体存在之后。更新操作在实体被创建或读取之后修改实体状态。数据生成器在仿真期间为仿真顶点和边分配创建时间戳,并将其映射到增量写流中的相对时间戳。在基准执行期间,驱动使用配置的负载因子压缩或扩展时间轴,然后根据相对时间戳发出写操作。这使更新流与快照图中已有实体的生命周期保持一致。
该基准还通过时间访问模式针对存储层优化。系统可以通过在存储内按时间戳顺序组织相邻边来改善时间窗口过滤。一个示例设计将图拓扑打包进键值存储,其中顶点标识作为键,出边和入边标识作为值打包存储。每条边标识编码源顶点、边标签、时间标识、目标顶点和多重性支持。时间标识是支持按时间戳排序边列表的关键字段。当边按时间戳顺序存储时,引擎可使用二分查找定位 startTime 之后的第一条边,然后迭代直到超过 endTime。参见以下打包图拓扑:
该表示减少不必要的边扫描,并改善时间查询的缓存和内存页局部性。该设计还展示如何在支持按时间有序访问的同时保留边多重性和标签信息。生成器、查询类、参数筛选、工作负载混合和面向存储的查询模式共同构成金融基准的核心方法论。
实验
FinBench 构建可配置金融图数据集和事务工作负载,包含复杂读、简单读、写和读写查询,以考察系统吞吐量、延迟、按时响应合规性和 ACID 行为。在 TuGraph 上,实验验证了按时间戳排序的存储能改善时间访问局部性,状态感知递归路径过滤能剪除无效遍历,而标准图查询语言仍难以简洁表达截断和递归过滤。Galaxybase 和 gStore 上的端到端运行证明了可移植性和完整性,但递归路径过滤查询相对较高的延迟表明它是关键优化机会。
表比较了与金融交易工作负载和模式特征相关的图基准。FinBench 显示支持带标签时间图模型、边多重性,以及插入和删除操作,而被比较基准对这些特征的覆盖不均衡。Graphalytics 在此比较中事务性最弱,模式功能有限,且没有适用的查询间并行性。FinBench 组合了多个被比较工作负载所缺少的时间图特征、边多重性和更新操作。Graphalytics 未显示插入或删除更新操作,并将查询间并行性标记为不适用。
抽样金融子图显示入度和出度都具有重尾幂律度分布。出度行为在各子图间非常稳定,而入度行为略有变化但仍表明强偏斜。归一化常数的差异表明子图规模会影响拟合分布的量级,但不会改变整体幂律形状。三个子图的出度幂律指数几乎相同。入度幂律指数不够稳定,表明入度偏斜存在一定变化。子图之间的归一化常数差异明显,反映了规模或群体差异,而非底层重尾模式发生变化。
该表展示了用于金融图基准参数生成和筛选的因子表数据中的个人到账户映射。这些映射支持账户关系遍历,并帮助控制性能敏感查询的中间结果规模。账户列表长度不同反映了可能影响查询工作负载行为的偏斜实体连接。个人标识与账户列表相关联,账户数量从单个到多个不等。账户列表关系支持从个人到关联账户的多跳遍历,并将其作为中间查询结果。使用此类因子表支持参数筛选,以生成更均衡、更可复现的基准查询。
在 TuGraph-DB 中启用时间排序会明显提升 SF100 上一个时间金融查询的性能。该功能同时降低边迭代时间和查询总执行时间,其中边迭代的相对收益更大。这表明按时间排序的边访问有助于避免对随机顺序边进行代价高昂的全扫描。时间排序改善了时间窗口过滤器的时间访问局部性。边迭代时间下降幅度显著大于整体查询执行时间。当时间戳用作查询谓词时,TCR 1 从有序边存储中受益。
优化后的递归路径过滤方法会降低三个 FinBench 递归路径过滤查询的平均查询执行时间。在 TCR1、TCR2 和 TCR5 上,将过滤器下推到遍历中以剪除无效路径的性能都显著优于基线。该方法收益广泛,其中 TCR2 的相对改进最大,其他查询也有较大幅度提升。优化后的递归路径过滤在 TCR1、TCR2 和 TCR5 上执行速度均远快于基线。在评估的递归路径过滤查询中,TCR2 相对执行时间缩减最大。
实验通过与现有图基准比较工作负载和模式特征、分析金融子图度分布和账户映射,并在 TuGraph-DB 中测量查询级优化来评估 FinBench。这些分析验证了 FinBench 对带标签时间图、边多重性和更新操作的覆盖,同时表明金融子图表现出真实的重尾度分布和偏斜个人到账户连接。性能结果进一步表明,时间边排序和递归路径过滤下推显著提升执行效率,尤其对于时间窗口过滤器和递归查询。