ITPub博客

首页 > 数据库 > 国内数据库 > 星环图数据库Demo教程,实现反洗钱场景下银行转账流水数据分析

星环图数据库Demo教程,实现反洗钱场景下银行转账流水数据分析

原创 国内数据库 作者:星环科技TDH社区版 时间:2025-06-23 14:14:46 0 删除 编辑

TDH社区版本次发布StellarDB社区版开发版,让更多用户地低资源成本上手体验企业级图数据库。如果您感兴趣的话,可以访问星环官网进行产品下载,StellarDB社区开发版是免费提供给大家的,欢迎大家下载使用。

    操作前提

    您需要先基于 安装手册完成StellarDB图数据库的安装后才可以开始进行下方操作。


    一、 描述场景

    金融技术的飞速进步促使金融机构规模急剧扩张,同时,洗钱犯罪活动亦随之进化,变得更为新颖、专业化、团伙导向且难以察觉,给反洗钱工作带来严峻挑战。在此背景下,本演示将以StellarDB的KGExplorer工具为核心,展示如何分析并可视化银行转账记录,从中抽丝剥茧,揭示潜在的反洗钱犯罪线索。

    二、 数据集介绍

    数据集结构

    image.png

    节点介绍

    节点名称(label) 节点包含的属性(数据的类型)
    客户 姓名(STRING)、地址(STRING)
    受益人 姓名(STRING)、地址(STRING)
    银行 名称(STRING)
    交易 id(STRING)、金额(INT)

    边介绍

    边名称(label) 边的起始节点与指向节点
    发起交易 客户指向交易
    转账给 交易执行受益人
    持有账户 客户指向银行

    数据集获取

    数据集获取


    三、 创建图谱并导入数据

    1. 创建图谱(schema)

    步骤一 进入KG Explorer后,点击右上角“创建图”按钮,填写图名称后开始创建。

    补充1.png 补充2.png 补充3.png

    注意:StellarDB社区开发版创建图时,副本数只能为1。

    图片22.png

    2. 定义图谱

    添加节点

    按alt/command+左键单击。Tip:将点的颜色进行差异化定义,以便于后续观察分析。

    在画布中添加节点,将节点的的“label”定义为“客户”,并为其添加“姓名”与“地址”属性,属性类型为均为“STRING”,添加完成后点击“保存”。

    补充4.png

    在画布中添加节点后,将节点的“label”定义为“交易”,并为其添加“id”属性,属性类型为“STRING”,添加“金额”属性,属性类型为“INT”。添加完成后点击“保存”。

    补充5.png

    重复上述操作,分别添加“银行”与“受益人”等节点,并为其添加对应的属性及属性的数据类型(具体属性参考第二部分节点介绍中的表格)。

    补充6.png 补充7.png

    添加关系

    按住shift键同时选中两个节点完成关系添加。

    注意,关系具有指向性,先点击为起点,后点击为终点。

    按住shift键,依次点击“客户”与“交易”,创建“客户”与“交易”节点之间的关系,label为“发起交易”,添加完成后点击“保存”。

    补充8.png

    重复上述操作,分别在“客户”与“银行”之间创建“持有账户”关系、“交易”与“受益人”之间创建“转账给”关系。

    补充9.png

    此时,图谱已经创建完成,点击右上角“发布” 补充10.png后,即可导入数据进行数据分析。

    3. 导入数据

    注意:在上传文件之前,需要提前对‘hive’用户进行赋权,否则上传时将报错。操作方式有两种,推荐使用Guardian赋权的方式解决。
    1. 在Guardian服务界面“一键开启安全”后,访问Guardian Server界面对hive用户赋予 HDFS 的 ‘/’ 目录 可读可写可执行的权限。(推荐操作)
    2. 未开启Guardian时,在服务端初始化客户端后,执行如下命令:
    export HADOOP_USER_NAME=hdfs
    hdfs dfs -chmod -R 777 /
    • 数据集上传

    在图管理页面找到刚刚创建的图谱,点击“导数”进入数据导入页面。

    图片23.png

    在“数据导入”页面中选择“文件管理”,点击“上传文件”后,选中您刚刚下载的csv文件,将其上传至KG。上传成功后可以看到数据源文件列表中有对应的文件显示。

    图片5.png

    • 修改列属性

    此时需点击编辑,将“col0”列的列名改为“客户姓名”,将“交易金额”列的数据类型改为“int”。

    图片6.png

    • csv导数

    然后,返回csv导数页面,按照如下顺序,依次点击选中目标数据集。注意:此处需点击7次 ‘添加’,然后将添加文件分别设定为4个“点”与3条“边”。

    图片21.png 图片8.png

    • 配置点属性映射

    先对4个点数据配置属性映射。具体映射配置的内容为:

    第一个点数据对应点的uid为“客户姓名”,label映射为“客户”;下方属性映射:图属性“姓名”对应的映射列名为“客户姓名”、“地址”对应“客户地址”。可参照下图进行配置:

    补充11.png

    第二个点数据“交易”属性配置如下所示:

    补充12.png

    第三个点数据“受益人”属性配置如下所示:

    补充13.png

    第四个点数据“银行”属性配置如下所示:

    补充14.png

    • 配置边属性映射

    接着对边数据进行起点uid、终点uid映射配置。

    • 1) 边label映射为“发起交易”、起点uid为“客户姓名”、起点label映射为“客户”、终点uid为“交易id”、终点label映射为“交易”。
    • 2) 边label映射为“转账给”、起点uid为“交易id”、起点label映射为“交易”、终点uid为“受益人姓名”、终点label映射为“受益人”。
    • 3) 边label映射为“持有账户”、起点uid为“客户姓名”、起点label映射为“客户”、终点uid为“银行名称”、终点label映射为“银行”。

    补充15.png 补充16.png 补充17.png

    配置完成后,点击右下角“导入”,等待数秒钟后,即可完成数据导入。

    图片24.png

    Note:导入完成后可以点击右侧感叹号查看是否有失败的,如果有的话仔细查看是否前面的步骤配置有问题,进行重新映射或修改点/边数据。

    补充18.png

    四、 展示节点关系

    回到首页进入图探索页面

    image.png

    操作示例一:展示客户与银行节点之间的关系

    MATCH (c:客户)-[a:持有账户]->(b:银行)RETURN c,a,b
    limit 100

    图片11.png

    操作示例二:展示客户节点、交易节点、受益人节点之间的关系。

    MATCH (c:客户)-[f:发起交易]->(t:交易)-[z:转账给]->(s:受益人)RETURN c,f,t,z,s
    limit 50

    图片12.png

    五、 数据分析

    交易异常检测

    检测大额交易:金额超过1000万的交易

    MATCH (c:客户)-[f:发起交易]->(t:交易)-[z:转账给]->(s:受益人)WHERE t.金额 > 10000000RETURN c,f,t,z,s

    图片13.png

    检测频繁的小额交易:金额10000以内,且超过10笔交易

    MATCH (c:客户)-[f:发起交易]->(t:交易)
    WHERE t.金额 < 10000
    WITH c, COUNT(t) AS transactionCount
    WHERE transactionCount > 10
    RETURN transactionCount,c

    图片14.png

    关系网络分析

    查询频繁交易的客户与受益人,超过5次的相同客户与受益人的转账,并展示交易次数

    MATCH (c:客户)-[:发起交易]->(t:交易)-[:转账给]->(b:受益人) WITH c, b, COUNT(t) as transactionCount WHERE transactionCount > 5 RETURN c.姓名 AS 客户名字, b.姓名 AS 受益人名字, transactionCount 
    ORDER BY transactionCount DESC

    图片15.png

    客户交易行为分析

    找出进行交易次数最多的客户,了解哪些客户最活跃。

    MATCH (c:客户)-[:发起交易]->(:交易)WITH c, COUNT(*) AS transactionCount
    ORDER BY transactionCount DESC
    LIMIT 10RETURN c.姓名 AS 客户名字, transactionCount AS 交易次数

    图片16.png

    受益人地址聚类分析

    基于受益人地址分析资金流向的地域分布。

    MATCH (:交易)-[:转账给]->(b:受益人)WITH b.地址 AS Address, COUNT(*) AS TransferCount
    RETURN Address, TransferCount
    ORDER BY TransferCount DESC

    图片30.png

    了解各银行被多少客户持有账户,评估银行的市场占有率。

    MATCH (c:客户)-[:持有账户]->(b:银行)
    WITH b, COUNT(DISTINCT c) AS accountHolders
    RETURN b.名称 AS 银行名称, accountHolders AS 账户持有者数量

    图片18.png

    以上就是完整的demo教程,希望对您快速上手图数据库有所帮助,如果还有想要学习了解的内容,欢迎多多留言~~


    来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046520/viewspace-3088639/ ,如需转载,请注明出处,否则将追究法律责任。

    请登录后发表评论 登录
    全部评论

    注册时间:2025-05-26

    • 博文量
      10
    • 访问量
      13113