二、数据采集层:交易数据来源与实时性要求

数据采集层是可疑交易推理链条的起点,决定了后续特征提取、规则命中与模型推理的质量上限。本节从数据来源、采集规范与实时性三个维度展开,帮助学员建立从原始交易日志到结构化分析数据的全链路认知。

2.1 交易数据来源全景

反洗钱系统需要覆盖三类核心数据源:银行、支付机构与虚拟资产。每类数据源在交易结构、字段标准与合规要求上存在显著差异。

数据源类型 典型机构 核心交易类型 数据量级(日均) 合规监管主体
银行 商业银行、政策性银行 转账、汇款、跨境支付、定期存取 百万~千万笔 央行、银保监会
支付机构 支付宝、微信支付、银联 扫码支付、网关支付、代收代付 千万~亿级 央行支付结算司
虚拟资产 交易所、钱包服务商 链上转账、OTC 交易、DeFi 交互 百万~千万笔 FATF、各地金融监管局
关键认知: 银行数据以结构化交易流水为主,支付机构数据包含丰富的设备指纹与行为上下文,虚拟资产数据则依赖链上公开账本与 KYC 关联映射。三类数据必须统一清洗后才能进入同一推理管道。

2.2 数据采集规范

采集规范决定了数据质量的下限。反洗钱系统必须遵循以下四项核心规范:

  1. 字段完整性规范:交易时间、交易双方标识(账号/地址)、金额、币种、IP、设备 ID 为必采字段,缺失率不得超过 0.1%。
  2. 格式标准化规范:时间统一为 ISO 8601(UTC+8),金额以最小货币单位(分/satoshi)存储,地址类字段做脱敏哈希。
  3. 数据血缘规范:每笔交易必须携带来源系统标识、采集时间戳与批次号,支持全链路溯源。
  4. 隐私合规规范:涉及个人敏感信息(姓名、身份证号)需在采集层完成 AES-256 加密或 token 化,日志中禁止明文存储。
// 数据采集层标准化 JSON 示例(银行转账)
{
  "tx_id": "TXN2025032112345678",
  "source_system": "BANK_CORE_CSH",
  "collect_timestamp": "2025-03-21T14:30:00.000+08:00",
  "tx_time": "2025-03-21T14:29:55.000+08:00",
  "sender": {
    "account_hash": "a1b2c3d4e5f6...",
    "account_type": "SAVINGS",
    "bank_code": "ICBC"
  },
  "receiver": {
    "account_hash": "f7e8d9c0b1a2...",
    "account_type": "CHECKING",
    "bank_code": "CCB"
  },
  "amount": 50000000,
  "currency": "CNY",
  "ip_address": "192.168.1.100",
  "device_id": "DEVICE_ABC123",
  "batch_no": "BATCH_20250321_01"
}

2.3 实时性要求与分层策略

不同可疑交易场景对数据时效性的要求差异巨大。反洗钱系统通常采用三级实时性分层策略:

  • T+0 准实时(秒级~分钟级):用于拦截类场景,如跨境大额拆分、新账户异常快进快出。要求数据从交易发生到进入推理引擎延迟 ≤ 30 秒。
  • T+1 近线(小时级):用于团伙挖掘、账户关联图谱构建。允许批量采集窗口为 1~4 小时,侧重数据完整性而非绝对时效。
  • T+7 离线(天级):用于回溯分析、模型训练与监管报表。数据经过全量校验与补录,延迟不超过 7 个自然日。
实战建议: 银行核心系统通常只支持 T+1 批量接口,准实时数据需通过旁路日志采集(如 Kafka 监听数据库变更日志 CDC)实现。虚拟资产链上数据则可通过 WebSocket 订阅 mempool 达到秒级延迟。
数据采集层架构与实时性分层 银行数据源 核心系统 / 网银 / 手机银行 CDC 日志 / 批量文件接口 字段:交易流水、账户、IP 延迟:秒级(CDC)~小时级 支付机构数据源 网关 / 聚合支付 / 钱包 API 实时推送 / 消息队列 字段:设备指纹、地理位置 延迟:秒级~分钟级 虚拟资产数据源 链上节点 / 交易所 API WebSocket / RPC 调用 字段:交易哈希、地址、Gas 延迟:秒级(mempool) 数据采集规范层 字段完整性校验 → 格式标准化 → 数据血缘标记 → 隐私加密脱敏 T+0 准实时 延迟 ≤ 30 秒 拦截类场景 大额拆分 / 快进快出 T+1 近线 延迟 1~4 小时 团伙挖掘 / 图谱构建 批量采集窗口 T+7 离线 延迟 ≤ 7 天 回溯分析 / 模型训练 监管报表

2.4 采集链路中的常见陷阱

⚠️ 避坑清单:
  • 时间戳漂移:银行核心系统与支付网关时间不同步,导致交易顺序错乱。必须统一使用 NTP 服务器时间,并在采集层记录采集时间与交易时间两个字段。
  • 重复数据:CDC 日志在故障恢复时可能重复推送同一笔交易。需要在采集管道中引入幂等去重机制(基于 tx_id + 批次号)。
  • 字段截断:部分老旧系统对备注、IP 等字段长度有限制,导致关键信息丢失。采集前需做字段长度预检与告警。
  • 虚拟资产地址误关联:同一用户可能使用多个链上地址,仅靠地址无法关联。必须结合 KYC 映射表与链上行为聚类进行实体对齐。

2.5 采集层输出物与下游接口

经过清洗与标准化后的数据,以统一消息格式写入 Kafka 或 Pulsar 主题,供下游特征工程与规则引擎消费。典型输出主题包括:

主题名称 数据内容 分区策略 保留周期
aml_tx_instant 准实时交易流水(T+0) 按 sender_hash 哈希分区 7 天
aml_tx_nearline 近线批量交易(T+1) 按时间窗口分区 30 天
aml_tx_offline 离线全量交易(T+7) 按日期分区 180 天
aml_entity_mapping 实体对齐映射表(地址→用户) 按 entity_id 哈希分区 永久(增量更新)

数据采集层输出的每一个消息都必须包含 schema 版本号,以便下游消费者在字段变更时自动兼容。建议使用 Avro 或 Protobuf 作为序列化格式,配合 Schema Registry 实现契约化管理。