3. 批处理基础
在核心银行系统中,批处理承担着日间无法实时完成的账务汇总、利息计提、对账清算与报表生成等重任。它通常运行在业务低峰期,以“批量、定时、可重跑”为特征,与实时交易形成互补。理解批处理,是掌握核心银行系统运行节奏的第一步。
一、批处理的核心概念与运行特征
批处理(Batch Processing)指将大量交易或数据按预定规则集中处理,而非逐笔实时响应。其核心特征包括:非交互性(无需人工逐笔干预)、批量性(一次处理成千上万条记录)、顺序性(通常按账户号或时间顺序)、可重跑性(失败后可从断点恢复)。在核心银行中,批处理与联机交易共享同一套账务数据,因此必须通过“日切”机制隔离两者,避免数据竞争。
二、作业调度与文件处理机制
作业调度是批处理的“指挥中心”。主流核心银行系统常采用控制表驱动或依赖图驱动两种调度方式。控制表方式通过数据库表定义作业顺序、依赖与重跑策略;依赖图方式则显式描述作业间的先后约束。调度器需支持串行、并行、条件分支三种执行模式,并具备失败告警、自动重试与人工干预入口。
文件处理是批处理的数据入口与出口。常见文件类型包括:
- 交易明细文件:日间联机交易落盘,供批处理汇总入账。
- 对账文件:来自人行、银联、第三方支付,用于核对账务一致性。
- 报表文件:批处理后生成的监管报表、客户对账单。
- 参数文件:利率、汇率、费率等批量更新参数。
文件处理需关注编码格式(定长/分隔符/XML)、校验规则(总额、笔数、校验位)以及异常隔离机制。以下是一个典型的批处理作业配置片段:
JOB: EOD_INTEREST_ACCRUAL
DEPENDS_ON: EOD_TXN_POSTING
FILE_IN: /data/eod/txn_20240630.dat
FILE_OUT: /data/eod/interest_20240630.out
RETRY: 3
RETRY_INTERVAL: 300s
ON_FAILURE: ALERT_AND_HOLD
三、批量交易与日终/月终/年终处理流程
批量交易是批处理的核心执行单元,通常以“账户维度”或“产品维度”组织。例如利息计提按账户逐笔计算,而总分核对按科目汇总。批量交易必须保证幂等性:同一批次重复执行不产生重复入账,通常通过批次号与状态标记实现。
日终处理是每日批处理的总称,典型流程如下:
- 日切:切换系统日期,关闭联机交易入口或切换至下一工作日。
- 交易入账:将日间落盘的交易明细批量过账。
- 利息计提与结转:按产品利率计算应收应付利息。
- 总分核对:明细账与总账核对,确保借贷平衡。
- 报表生成:生成日报、监管报送文件。
- 数据备份与清理:备份账务数据,清理临时文件。
月终在日终基础上增加月度结息、折旧摊销、月度报表;年终则进一步包含年度结转、损益结转、新年度参数初始化。三者是嵌套关系:年终包含月终,月终包含日终。
四、常见术语与误区复盘
批处理领域术语密集,初学者容易混淆。下表梳理了核心术语及其含义:
| 术语 | 英文 | 含义 |
|---|---|---|
| 日切 | Cut-off | 切换系统日期,隔离联机与批处理的时间点 |
| 批量交易 | Batch Transaction | 按批次集中处理的账务或非账务操作 |
| 作业依赖 | Job Dependency | 作业间的先后约束关系,决定调度顺序 |
| 重跑 | Rerun | 失败后从断点或起点重新执行作业 |
| 幂等性 | Idempotency | 重复执行不产生重复结果的性质 |
| 总分核对 | GL Reconciliation | 明细账与总账的平衡校验 |
| 计提 | Accrual | 按权责发生制计算应收应付利息 |
| 结转 | Carry-forward | 将本期余额转入下期或损益科目 |
批处理是核心银行系统的“夜间引擎”,它不追求速度,而追求准确、完整与可恢复。掌握作业调度、文件处理、批量交易与日终月终年终的嵌套关系,是进一步学习实时事件协同的基础。