2. 金融数据治理基础

在金融行业,数据治理不是“锦上添花”的IT项目,而是监管合规、风险计量与经营决策的底座。做dbt数据测试与文档治理,必须先理解治理的四个基本盘:数据质量、数据血缘、元数据管理、合规要求。它们决定了我们在dbt中该测什么、该记什么、该留什么证据。

一、核心原理:治理四要素与dbt的对应关系

数据质量关注数据是否“可用、可信、可解释”,在金融场景中通常体现为完整性、准确性、一致性、及时性、唯一性和有效性六类维度。数据血缘描述数据从源系统到报表、模型、指标之间的流转路径与加工依赖,是影响分析和问题定位的基础。元数据管理是对技术元数据、业务元数据与操作元数据的统一登记与维护,让“字段是什么、谁负责、怎么算”有据可查。合规要求则来自监管制度与内部审计,强调可追溯、可审计、可举证。

dbt的治理价值在于:把上述要求从“文档里的制度”变成“代码里的约束”。通过schema测试、数据测试、模型契约、 exposures、meta配置与自动生成文档,dbt让质量规则、血缘关系、元数据说明和合规证据在同一套工程体系中持续运行。

金融数据治理四要素 → dbt治理能力映射 数据质量 完整性·准确性·一致性 数据血缘 来源·加工·影响分析 元数据管理 技术·业务·操作元数据 合规要求 可追溯·可审计·可举证 dbt 治理能力层 tests · contracts · docs · lineage · meta · exposures 质量规则代码化 血缘自动生成 元数据集中登记 审计证据留存

二、方法流程:从治理要求到dbt落地

把治理要求落到dbt,建议按以下流程推进:

  1. 识别关键数据资产:优先覆盖监管报表、风险指标、客户主数据、交易流水等高风险高价值对象。
  2. 定义质量规则:将业务规则翻译为dbt测试,如not_null、unique、accepted_values、relationships及自定义singular测试。
  3. 建立血缘与依赖:通过ref、source、exposure声明模型依赖与下游消费关系,让血缘自动生成。
  4. 补齐元数据:在schema.yml中维护模型描述、字段说明、owner、tags、meta等,形成可检索的数据字典。
  5. 固化合规证据:将测试结果、文档版本、变更记录纳入CI/CD与审计留痕。

下面是一个金融场景中常见的dbt测试与元数据配置示例:

models:
  - name: fct_transaction
    description: "交易事实表,覆盖全行零售与对公交易"
    meta:
      owner: "risk-data-team"
      compliance_level: "high"
      regulation: "银保监数据治理指引"
    columns:
      - name: transaction_id
        description: "交易唯一标识"
        tests:
          - not_null
          - unique
      - name: customer_id
        description: "客户编号"
        tests:
          - not_null
          - relationships:
              to: ref('dim_customer')
              field: customer_id
      - name: amount
        description: "交易金额,单位:元"
        tests:
          - not_null
          - dbt_utils.accepted_range:
              min_value: 0

三、案例/场景:监管报送数据质量排查

某银行在季度监管报送前发现“贷款五级分类”报表与核心系统不一致。排查时,团队先看dbt血缘图,定位到中间模型int_loan_classification同时被三个下游模型引用;再查看该模型的测试结果,发现accepted_values测试未覆盖新增分类码“关注类-重组”。进一步检查元数据,发现该字段的业务定义未更新,导致加工逻辑遗漏。

修复动作包括:补充accepted_values测试、更新字段描述与owner、在exposure中标记监管报送依赖、将本次变更写入审计日志。整个过程从“靠人问”变成“靠血缘和测试定位”,排查时间从两天缩短到两小时。

提示:金融数据治理中,血缘和元数据不是“有就行”,而是要能回答三个问题:这个指标从哪来?经过哪些加工?谁负责?dbt的docs与lineage正是为此设计。

四、误区/复盘:常见治理陷阱

误区 表现 dbt治理对策
测试只做not_null 关键字段唯一性、枚举值、跨表一致性缺失 组合使用unique、accepted_values、relationships及自定义测试
血缘靠人工维护 文档与代码脱节,变更后血缘失效 用ref/source/exposure自动生成血缘
元数据写在外部文档 字段含义、owner、口径无法随代码同步 在schema.yml中维护description、meta、tags
合规证据事后补 审计时找不到测试记录与变更轨迹 将dbt test、docs generate纳入CI并留存制品
注意:金融数据治理不是一次性项目。dbt的价值在于把治理动作嵌入日常开发流程,让质量、血缘、元数据和合规证据随每次提交持续更新,而不是等到审计前突击整理。