3. 数据工程基础

金融数据工程并不是把数据从A搬到B那么简单。它是一条从数据源到可用资产的完整链路,任何一环出现偏差,都可能直接放大为估值错误、风控失效或合规风险。本节围绕采集、清洗、转换、存储、治理五个环节,梳理通用流程,并重点说明金融场景下必须额外满足的要求。

一、核心原理:五环链路与金融约束

通用数据工程链路可以概括为:采集 → 清洗 → 转换 → 存储 → 治理。采集负责把行情、交易、公告、财报、舆情等数据接入;清洗解决缺失、重复、异常与格式不一致;转换完成标准化、对齐、聚合与衍生计算;存储提供可查询、可回溯、可复算的持久化能力;治理则贯穿全链路,负责元数据、血缘、质量、权限与审计。

金融场景的特殊性在于:时间必须精确、数值必须可复算、过程必须可审计、口径必须可解释。例如行情数据要求毫秒甚至微秒级时间戳,财务数据要求保留原始披露口径,风控指标要求任意历史时点可重放。因此,金融数据工程不是“先跑通再治理”,而是从采集开始就要为治理预留结构。

金融数据工程五环链路 采集 → 清洗 → 转换 → 存储 → 治理,治理贯穿全链路 采集 行情/交易/公告 清洗 缺失/重复/异常 转换 标准化/对齐/衍生 存储 可查询/可回溯 治理 元数据/血缘/质量 金融场景四项硬约束 ① 时间精确:交易所时间戳、时区、交易日历必须统一 ② 数值可复算:保留原始值与计算版本 ③ 过程可审计:采集、修改、发布全留痕 ④ 口径可解释:财务科目、复权方式、指标定义必须可追溯 典型失败放大路径 采集缺时间戳 → 清洗误填充 → 转换口径错 → 存储不可回溯 → 治理无血缘 → 估值/风控结果不可解释

二、方法流程:从接入到可复算资产

采集阶段要区分推送型与拉取型数据源。行情、逐笔委托多为推送,公告、财报、舆情多为拉取。采集层必须记录原始报文、接收时间、来源标识与批次号,避免后续无法还原。清洗阶段重点处理缺失值、重复记录、异常值与单位不一致。金融数据中,缺失值不能简单均值填充,尤其是价格与财务科目,必须区分“真缺失”与“停牌/未披露”。

转换阶段是金融数据工程的核心。它包含字段标准化、实体对齐、时间对齐、复权计算、指标衍生与口径映射。例如把不同数据源的股票代码统一为内部证券ID,把日频与分钟频数据对齐到同一交易日历,把财报科目映射到统一财务模型。存储阶段需要同时考虑原始层、清洗层、主题层与应用层,并保留版本与分区。治理阶段则通过元数据、血缘、质量规则、权限与审计,保证数据可发现、可信任、可追责。

关键原则:原始数据不可变,清洗与转换结果可重放。任何衍生指标都应能追溯到原始字段、计算逻辑与执行版本。

三、案例/场景:一条行情与财报融合链路

假设我们要构建一个“估值日频指标”数据集,输入包括交易所日行情与上市公司财报。采集层分别接入行情文件与财报PDF/结构化接口;清洗层剔除停牌日、修正重复除权记录、校验财报单位;转换层按交易日历对齐,计算复权价、市值、市盈率与市净率;存储层按日期分区,保留原始财报版本与计算版本;治理层登记字段口径、血缘关系与质量规则。

# 示例:质量校验规则片段(伪配置)
rules:
  - name: price_non_negative
    target: daily_price.close
    condition: "close >= 0"
    action: reject_and_alert
  - name: trade_date_in_calendar
    target: daily_price.trade_date
    condition: "in trading_calendar"
    action: quarantine
  - name: financial_report_version
    target: financials.report_id
    condition: "version is not null"
    action: block_publish

在这个场景中,若行情时间戳未统一时区,会导致跨市场对齐错误;若财报科目未保留原始口径,则市盈率计算可能混用不同准则。金融数据工程的难点往往不在技术组件,而在业务口径与时间语义。

四、误区/复盘:常见陷阱与检查清单

常见误区包括:把清洗当成“填坑”,忽视缺失语义;把转换写成一次性脚本,无法重放;把存储当成“能查就行”,缺少版本与分区;把治理留到项目后期,导致血缘断裂。复盘时应重点检查:时间戳是否统一、原始数据是否保留、计算逻辑是否版本化、质量规则是否可执行、权限与审计是否覆盖敏感数据。

环节 通用要求 金融场景特殊要求 常见误区
采集 稳定接入、记录来源 毫秒级时间戳、交易所日历、原始报文留存 只存解析后结果,丢失原始上下文
清洗 去重、补缺、纠错 区分停牌与缺失、保留披露口径 用均值填充价格或财务科目
转换 标准化、聚合、衍生 复权、实体对齐、指标口径可解释 脚本不可重放,口径散落文档
存储 可查询、可扩展 版本化、分区、历史时点可回溯 覆盖更新,无法复算历史
治理 元数据、质量、权限 血缘、审计、合规留痕、敏感数据分级 治理后置,血缘断裂

复盘提醒:金融数据链路的验收标准不是“跑通”,而是“任意历史时点可复算、任意指标可追溯、任意异常可定位”。若做不到这三点,后续实时计算与风控模型都会建立在不可信的数据地基上。

掌握这五个环节与金融约束后,后续的实时计算、流批一体与数据质量监控才有稳固的起点。数据工程基础打得越扎实,上层金融应用越不容易被“脏数据”反噬。