4. 精算数据仓库:保险数据仓库架构、事实表与维度表设计、保单/理赔/客户主题域

精算坏样本归因分析的基础,是构建一个稳定、可追溯、面向分析主题的数据仓库。保险精算数据仓库(Actuarial Data Warehouse, ADW)不同于传统业务报表库,它需要支持跨保单年度的聚合、多维下钻以及理赔链路的全生命周期追踪。本节将围绕保险数据仓库的经典分层架构、事实表与维度表的设计原则,以及保单、理赔、客户三大核心主题域展开。

4.1 保险数据仓库分层架构

保险精算数据仓库通常采用四层架构:ODS(操作数据存储层)→ DWD(明细数据层)→ DWS(汇总数据层)→ ADS(应用数据层)。每一层承担不同的精算职责:

分层英文全称核心职责精算典型用途
ODSOperational Data Store实时/准实时同步核心、理赔、财务系统源数据数据新鲜度校验、增量抽取监控
DWDData Warehouse Detail清洗、去重、标准化,保留保单/理赔/客户原子粒度单保单赔付率计算、理赔链路明细追溯
DWSData Warehouse Summary按业务主题轻度汇总(如保单月结、理赔月结)经验发生率、退保率、件均赔付月度趋势
ADSApplication Data Store面向精算模型、监管报送、归因分析集市坏样本标签宽表、准备金计提底稿、IFRS 17 分组
精算实践提示: 坏样本归因分析的数据主要取自 DWS 和 ADS 层。DWD 层用于验证原始数据质量,ADS 层用于构建“保单-理赔-客户”宽表,避免在分析时反复 join 明细表。

4.2 事实表与维度表设计

保险精算数据仓库遵循 星型模型 或 雪花模型。事实表存储可度量、可连续累加的精算指标;维度表存储描述业务实体的文本属性,用于分组和筛选。

4.2.1 事实表设计要点

  • 粒度声明:每行代表一个保单责任、一次理赔申请或一次保费入账。粒度必须明确,不可混搭。
  • 可加性指标:保费、赔付金额、佣金、准备金计提额等,按时间、产品、渠道维度可累加。
  • 半可加/不可加指标:保单件数(按时间可加,按保单不可加)、赔付率(不可直接累加,需加权计算)。
  • 退化维度:如保单号、理赔号,在事实表中直接保留 ID,不单独建维度表。

4.2.2 维度表设计要点

  • SCD 策略:保险产品条款、渠道佣金比例、客户等级经常变化,建议使用 SCD Type 2(增加生效日期、失效日期、当前标志)。
  • 角色扮演维度:日期维度可同时扮演“保单生效日期”、“理赔出险日期”、“报案日期”,在事实表中使用不同外键。
  • 退化维度处理:对于高基数且无分析属性的维度(如银行流水号),直接放入事实表,不建维表。
星型模型示例(保单事实表):
-- 保单月度事实表(DWS 层)
CREATE TABLE dws_policy_monthly_fact (
    policy_sk         BIGINT COMMENT '保单代理键',
    product_sk        INT COMMENT '产品维度外键',
    channel_sk        INT COMMENT '渠道维度外键',
    date_sk           INT COMMENT '日期维度外键(保单生效月)',
    written_premium   DECIMAL(18,2) COMMENT '承保保费',
    earned_premium    DECIMAL(18,2) COMMENT '已赚保费',
    incurred_loss     DECIMAL(18,2) COMMENT '已发生赔付',
    policy_count      INT COMMENT '保单件数',
    etl_batch_id      STRING COMMENT 'ETL批次号'
) PARTITIONED BY (year_month STRING);

4.3 保单主题域

保单主题域是精算数据仓库的核心,覆盖从投保、承保、续期、退保到满期的全生命周期。主要维度包括:

  • 产品维度:产品代码、产品名称、险种大类(寿险/健康险/意外险)、缴费方式、保险期限。
  • 渠道维度:销售渠道(个险/银保/网销/经代)、渠道层级、代理人代码。
  • 保单维度:保单号、投保人/被保人关系、承保年龄、缴费年期、基本保额。
  • 日期维度:生效日期、到期日期、续期日期、退保日期。

保单主题域的事实表通常包括:保单月度事实表(承保保费、已赚保费、退保金、保单件数)、保单生命周期事实表(每张保单的关键事件时间戳)。

4.4 理赔主题域

理赔主题域用于追踪从出险、报案、立案、核赔到结案的完整链路。理赔数据是坏样本归因分析中“坏”的主要来源。

维度典型字段精算分析用途
理赔申请维度理赔号、报案日期、出险原因、事故类型区分疾病/意外/身故,计算发生率
核赔维度核赔结论、拒赔原因、通融赔付标志识别理赔质量,区分正常赔付与异常赔付
医院/机构维度医院等级、地区、科室医疗险反欺诈、就医行为分析
支付维度支付金额、支付日期、收款人赔付金额准确性校验,资金流追溯

理赔事实表的核心指标:赔付金额、未决赔款准备金、理赔费用、结案时长。在坏样本归因中,通常将“理赔金额超出预期区间”、“理赔频次异常高”、“理赔与保单生效间隔过短”等标记为坏样本候选。

4.5 客户主题域

客户主题域整合投保人、被保人、受益人的统一视图。精算分析中,客户维度的核心价值在于:

  • 客户统一标识:通过身份证号、手机号、设备 ID 构建客户 360 视图,识别同一客户在不同渠道的投保行为。
  • 客户画像维度:年龄、性别、职业、收入等级、健康告知等级、历史理赔次数。
  • 客户行为维度:续期缴费习惯、保全变更频率、退保倾向。
数据质量注意: 客户主题域最常见的坏样本来源是“客户信息不一致”——同一客户在不同保单中使用不同姓名、不同出生日期,导致归因分析时无法准确聚合。建议在 ODS 层建立客户匹配规则,使用概率匹配算法生成客户代理键。

4.6 保险数据仓库主题域关系图

下图展示了保单、理赔、客户三大主题域之间的核心关联,以及事实表与维度表的典型连接方式:

保险精算数据仓库主题域关系图 保险精算数据仓库主题域关系图 保单主题域 • 产品维度表 • 渠道维度表 • 保单维度表 • 日期维度表 • 保单月度事实表 • 保单生命周期事实表 理赔主题域 • 理赔申请维度表 • 核赔维度表 • 医院/机构维度表 • 支付维度表 • 理赔申请事实表 • 理赔支付事实表 客户主题域 • 客户统一维度表 • 客户画像维度表 • 客户行为维度表 • 客户标签事实表 • 客户-保单关联表 保单号 客户ID 客户ID 精算归因分析关键关联路径: 保单 → 理赔(通过保单号)→ 客户(通过客户ID),形成“一单多赔、一客多单”的网状结构。 ADS 应用层:坏样本归因宽表 保单维度 + 理赔聚合指标 + 客户画像 + 坏样本标签

4.7 坏样本归因视角下的数据仓库设计建议

从坏样本归因分析的实际需求出发,精算数据仓库在设计阶段应额外关注以下三点:

  1. 保留原始字段快照:在 DWD 层保留源系统的原始字段值,不进行业务转换。归因分析需要回溯“数据录入时的原始值”,而非转换后的标准值。
  2. 建立坏样本标签维度:在 ADS 层单独建立坏样本标签维度表,包含坏样本类型(理赔异常、退保异常、欺诈嫌疑)、严重等级、发现时间、归因责任人。避免在事实表中直接写死标签。
  3. 设计增量归因流水表:每次归因分析跑批后,将归因结果写入增量流水表,保留版本号。支持“同一坏样本在不同归因版本中的标签变化”追溯。
坏样本标签维度表 DDL 示例:
CREATE TABLE dim_bad_sample_label (
    label_sk          INT AUTO_INCREMENT PRIMARY KEY,
    label_code        STRING COMMENT '坏样本代码,如 LOSS_RATIO_ABNORMAL',
    label_name        STRING COMMENT '坏样本中文名称',
    severity_level    TINYINT COMMENT '严重等级 1-5',
    label_category    STRING COMMENT '大类:理赔/退保/欺诈/其他',
    effective_date    DATE,
    expiry_date       DATE,
    current_flag      TINYINT DEFAULT 1,
    etl_create_time   TIMESTAMP
) COMMENT '坏样本标签维度表,SCD Type 2';

4.8 本章小结