99 lines
4.1 KiB
Markdown
99 lines
4.1 KiB
Markdown
|
|
# 图谱生产数据库手工变更清单
|
|||
|
|
|
|||
|
|
本清单只记录资金流图谱涉及的生产数据库表结构和数据准备事项。该部分由人工在生产库手动执行,不随应用发布自动执行,也不要求测试环境自动更新。
|
|||
|
|
|
|||
|
|
## 1. DDL 脚本
|
|||
|
|
|
|||
|
|
生产建表脚本:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
sql/ccdi/graph/01_lx_fund_graph_mysql_ddl.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
当前减法版创建五张资金流图谱必要表:
|
|||
|
|
|
|||
|
|
- `lx_fund_flow_subject_node`
|
|||
|
|
- `lx_fund_flow_account_node`
|
|||
|
|
- `lx_fund_flow_own_account_edge`
|
|||
|
|
- `lx_fund_flow_detail_edge`
|
|||
|
|
- `lx_fund_flow_manual_edge`
|
|||
|
|
|
|||
|
|
不创建、不依赖 `lx_fund_flow_sum_edge`。资金图谱页面由后端基于 `lx_fund_flow_detail_edge.trx_date` 按当前查询条件实时聚合真实资金边,手工资金流向汇总边单独存入 `lx_fund_flow_manual_edge`。
|
|||
|
|
|
|||
|
|
## 2. 生产执行边界
|
|||
|
|
|
|||
|
|
- 生产库 DDL 由人工手动执行。
|
|||
|
|
- 应用发布包不自动执行 DDL。
|
|||
|
|
- 测试环境不会自动同步这些变更。
|
|||
|
|
- 代码库保留 SQL 文件,只作为生产执行、评审和本地验证依据。
|
|||
|
|
- 后端开发默认目标库中上述 `lx_*` 表已存在。
|
|||
|
|
|
|||
|
|
## 3. ODPS 基座同步
|
|||
|
|
|
|||
|
|
生产建表后,先从 ODPS 同步已验证的资金流图谱基座到 MySQL。
|
|||
|
|
|
|||
|
|
同步来源:
|
|||
|
|
|
|||
|
|
- ODPS 中原图谱 SQL 产出的 `lx_fund_flow_subject_node`
|
|||
|
|
- ODPS 中原图谱 SQL 产出的 `lx_fund_flow_account_node`
|
|||
|
|
- ODPS 中原图谱 SQL 产出的 `lx_fund_flow_own_account_edge`
|
|||
|
|
- ODPS 中原图谱 SQL 产出的 `lx_fund_flow_detail_edge`
|
|||
|
|
|
|||
|
|
同步原则:
|
|||
|
|
|
|||
|
|
- ODPS 基座是已验证数据,作为 MySQL 图谱基座保留。
|
|||
|
|
- 同步时建议使用显式字段列表,不依赖 `select *`。
|
|||
|
|
- MySQL 侧新增字段允许为空。
|
|||
|
|
- `lx_fund_flow_sum_edge` 不作为纪检资金图谱页面必要表,可不从 ODPS 同步。
|
|||
|
|
- `lx_fund_flow_manual_edge` 不从 ODPS 同步,生产建表后初始为空,由纪检平台手工分析功能写入。
|
|||
|
|
|
|||
|
|
## 4. 后续增量
|
|||
|
|
|
|||
|
|
ODPS 基座同步后,后续新增流水在纪检 MySQL 内处理。
|
|||
|
|
|
|||
|
|
增量来源:
|
|||
|
|
|
|||
|
|
- `ccdi_bank_statement`
|
|||
|
|
|
|||
|
|
增量原则:
|
|||
|
|
|
|||
|
|
- 先标准化候选流水。
|
|||
|
|
- 再和既有 `lx_fund_flow_detail_edge` 做一致性判重。
|
|||
|
|
- 已存在一致流水,不同步进图谱。
|
|||
|
|
- 不存在一致流水,才增量插入主体点、账户点、持有边、明细边。
|
|||
|
|
- 不维护汇总表;页面查询时实时聚合。
|
|||
|
|
|
|||
|
|
## 5. 调度建议
|
|||
|
|
|
|||
|
|
一期建议采用每日定时任务,不建议一开始做实时。
|
|||
|
|
|
|||
|
|
推荐方式:
|
|||
|
|
|
|||
|
|
- RuoYi/Quartz 定时任务。
|
|||
|
|
- 每日低峰期执行。
|
|||
|
|
- 保留手动触发能力,用于补跑、排查和修复。
|
|||
|
|
|
|||
|
|
## 6. 前后端依赖
|
|||
|
|
|
|||
|
|
前后端开发依赖上述 MySQL 图谱表的查询结果。
|
|||
|
|
|
|||
|
|
- 前端不直接访问数据库。
|
|||
|
|
- 后端接口读取 `lx_*` 表。
|
|||
|
|
- 页面入口放在项目详情的“专项排查”页签。
|
|||
|
|
- 资金流图谱中真实资金边基于 `lx_fund_flow_detail_edge` 实时聚合。
|
|||
|
|
- 手工资金边来自 `lx_fund_flow_manual_edge`,属于主体级汇总边,只存 `from_object_key`、`to_object_key`,不存冗余 `from_key`、`to_key`;图谱展示时由后端临时拼出 `idno_node/{object_key}`,不提供逐笔流水下钻。
|
|||
|
|
- 查询按全局 `cret_no`、姓名或节点 `object_key`,不按 `project_id` 过滤。
|
|||
|
|
|
|||
|
|
## 7. 性能和索引口径
|
|||
|
|
|
|||
|
|
一期资金图谱默认只查一个中心主体的一层资金边,并设置 `minTotalAmount = 1000`、`limit = 20`,不会默认拉全量毛刺边。
|
|||
|
|
|
|||
|
|
生产索引重点:
|
|||
|
|
|
|||
|
|
- `lx_fund_flow_subject_node`:`PRIMARY KEY(object_key)`、`idx_lx_fund_flow_subject_idnocfno(idnocfno)`、`idx_lx_fund_flow_subject_name(name)`。
|
|||
|
|
- `lx_fund_flow_own_account_edge`:`idx_lx_fund_flow_own_from_key(from_key)`、`idx_lx_fund_flow_own_to_key(to_key)`。
|
|||
|
|
- `lx_fund_flow_detail_edge`:`idx_lx_fund_flow_detail_from_date(from_key, trx_date)`、`idx_lx_fund_flow_detail_to_date(to_key, trx_date)`、`idx_lx_fund_flow_detail_from_to(from_key, to_key)`。
|
|||
|
|
- `lx_fund_flow_manual_edge`:`idx_lx_fund_flow_manual_from(from_object_key)`、`idx_lx_fund_flow_manual_to(to_object_key)`、`idx_lx_fund_flow_manual_pair_direction(from_object_key, to_object_key, direction)`。
|
|||
|
|
|
|||
|
|
如果后续单个主体关联流水达到几十万级,再考虑增加主体级冗余字段或月度汇总表;一期不建 `sum_edge`。
|