数据开发面试: 项目介绍示例

快照表

快照表(Snapshot Table)是数据仓库中用来存储某一时间点的数据状态的表。这种表通常包含在特定时间点上业务实体的静态数据,它记录了业务在某一特定时刻的"快照"视图。快照表通常用于存储那些不经常变化的数据,或者即使发生变化,变化也不影响历史数据的准确性。

拉链表

用于记录数据变更历史。它记录一个事物从开始,一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据的一种常见方式。 拉链表适用于存储变化频繁且数量较少的数据,例如日志记录。

快照表和拉链表的区别

拉链表的特点是只存储变化的部分,而不记录之前的数据。这种方式可以极大地减少存储空间,但是也带来了查询和更新的复杂性。

快照表适用于存储大量数据 。快照表的特点是每个版本都是完整的数据,因此可以恢复到任意一个版本

银行信贷管理系统

**项目描述:**基于客户信息系统、贷款信息系统、信用评级系统等各方面数据进行收集、整理、建立数据分析模型。建立贷款五级分类、贷款余额、还款总金额、逾期率、逾期指数等指标,以通过数据可视化工具展示出来,为业务部门进行贷款审核、贷款数据分析、还款追踪提供数据支持。

开发流程

  • 数据抽取:使用DataX工具从中转系统(如合同管理系统、客户关系管理系统)中抽取数据到ODS层(贴源层),进行数据备份。

    • 全量抽取:客户基本信息表、合同基本信息表

    • 增量抽取:客户交易记录表、风险预警记录表

  • 数据清洗和转换:在DWD层**(Data Warehouse Detail)**明细数据层对数据进行清洗和转换,处理脏数据、异常数据和缺失数据。

  • 数据汇总:在DWS层**(Data Warehouse Summary)**汇总数据层建立客户、产品、营销、交易、合同等主题宽表,进行轻度汇总。

  • 指标计算:在ADS层**(Application Data Service)**应用数据层计算风险预警、异常行为检测等指标。

数仓分层/数据流向:

  • ODS层:数据备份,不进行修改。

  • DWD层:区分事实表和维度表, 数据清洗和转换,建立客户、产品、营销、交易、合同等主题。

  • DWS层:多维度汇总,建立宽表。

  • ADS层:指标计算和报表展示。

业务系统:

  • 合同管理系统

  • 客户关系管理系统

  • 风险管理系统

主题:

  • 客户主题

  • 产品主题

  • 营销主题

  • 交易主题

  • 合同主题

负责主题: 客户主题

表结构:

  • 快照表:客户信息表

    • 核心字段:客户ID、姓名、地址、联系方式
  • 拉链表:客户行为表

    • 核心字段:客户ID、交易ID、交易时间、交易金额

数据来源:

  • 核心系统表:客户基本信息表

  • 信贷系统表:客户信贷记录表

需要计算的核心指标

客户风险评分
  • 取数口径:客户的历史交易数据、贷款记录

  • 表来源:客户信息表、客户行为表

  • 字段来源:客户ID、交易金额、贷款金额、还款记录

  • 计算逻辑:基于客户的历史交易金额、贷款金额、还款记录进行加权评分

  • 粒度:按客户ID计算

  • 指标验证逻辑:通过历史数据验证评分的准确性,检查评分与实际违约情况的一致性

客户信用等级
  • 取数口径:客户的综合评分和风险评分

  • 表来源:客户信息表、客户行为表

  • 字段来源:客户ID、综合评分、风险评分

  • 计算逻辑:根据综合评分和风险评分确定客户的信用等级

  • 粒度:按客户ID计算

  • 指标验证逻辑:对比信用等级与客户的实际违约记录,验证等级划分的准确性

交易异常率
  • 取数口径:客户的交易记录

  • 表来源:客户行为表

  • 字段来源:交易ID、交易时间、交易金额

  • 计算逻辑:统计一定周期内的异常交易次数占比

  • 粒度:按交易ID计算

  • 指标验证逻辑:对比异常交易标记与实际交易数据,验证异常率的准确性

合同履约率
  • 取数口径:合同的执行情况

  • 表来源:合同信息表

  • 字段来源:合同ID、合同金额、实际执行金额

  • 计算逻辑:统计合同执行金额占合同总金额的比率

  • 粒度:按合同ID计算

  • 指标验证逻辑:对比合同履行情况与实际记录,验证履约率的准确性

风险预警次数
  • 取数口径:系统生成的风险预警记录

  • 表来源:风险预警表

  • 字段来源:预警ID、预警时间、预警类型

  • 计算逻辑:统计一定周期内的风险预警次数

  • 粒度:按预警ID计算

  • 指标验证逻辑:对比系统预警记录与实际风险事件,验证预警次数的准确性

银行汽车贷风控系统

**项目描述:**基于客户信息系统、贷款信息系统、信用评级系统等数据,建立数据分析模型。通过数据可视化工具展示贷款五级分类、贷款余额、还款总金额、逾期率、逾期指数等指标,为贷款审核、贷款数据分析、还款追踪提供数据支持。实现从 Oracle 传统数据仓库迁移数据到 Hive 大数据数仓的全过程处理,确保数据在新平台上的一致性和完整性

开发流程:

  • 数据抽取:使用Sqoop工具从传统数仓中抽取数据到ODS层(贴源层)。

    • 全量抽取:贷款合同表、客户信息表

    • 增量抽取:还款计划表、违约记录表

  • 数据清洗和转换:在DWD层(明细数据层)处理格式、枚举、脏数据、异常数据,统一数据格式。

  • 数据汇总:在DWS层(汇总数据层)建立贷款、违约、客户行为等宽表。

  • 指标计算:在ADS层(应用数据层)计算贷款风险评级、逾期率等指标。

数仓分层/数据流向:

  • ODS层:数据备份,不进行修改。

  • DWD层:区分事实表和维度表, 数据清洗和转换,建立贷款、违约、客户行为等主题。

  • DWS层:多维度汇总,建立宽表。

  • ADS层:指标计算和报表展示。

业务系统:

  • 信贷管理系统

  • 风险管理系统

主题:

  • 贷款主题

  • 风险主题

负责主题: 贷款主题

表结构:

  • 快照表:贷款信息表

    • 核心字段:合同ID、贷款金额、贷款期限
  • 拉链表:违约记录表

    • 核心字段:合同ID、违约日期、违约金额

数据来源:

  • 信贷系统表:贷款合同表、还款计划表

需要计算的核心指标:

  1. 逾期率

    • 取数口径:贷款合同表、还款计划表中的还款情况

    • 表来源:贷款信息表、违约记录表

    • 字段来源:合同ID、还款日期、应还金额、实际还款金额

    • 计算逻辑:按合同ID统计逾期天数,计算逾期率 = 逾期天数 / 总还款天数

    • 粒度:按合同ID计算

    • 指标验证逻辑:对比实际逾期记录与计算结果,验证逾期率的准确性

  2. 风险集中度

    • 取数口径:贷款合同表、违约记录表中的贷款金额和违约情况

    • 表来源:贷款信息表、违约记录表

    • 字段来源:合同ID、贷款金额、违约金额

    • 计算逻辑:统计各风险等级的贷款金额占比,计算风险集中度 = 各风险等级贷款金额 / 总贷款金额

    • 粒度:按合同ID计算

    • 指标验证逻辑:通过分级统计验证风险集中度计算结果的合理性

  3. 套现占比

    • 取数口径:客户的交易记录和贷款记录

    • 表来源:客户

行为表、贷款信息表

  • 字段来源:客户ID、交易金额、贷款金额

  • 计算逻辑:按客户ID统计疑似套现的交易金额占总交易金额的比率

  • 粒度:按客户ID计算

  • 指标验证逻辑:对比实际套现行为记录与计算结果,验证套现占比的准确性

  1. 诈骗率

    • 取数口径:客户的历史违约记录和贷款记录

    • 表来源:违约记录表、贷款信息表

    • 字段来源:客户ID、违约金额、贷款金额

    • 计算逻辑:按客户ID统计疑似诈骗的违约金额占总贷款金额的比率

    • 粒度:按客户ID计算

    • 指标验证逻辑:对比实际诈骗行为记录与计算结果,验证诈骗率的准确性

  2. 高危风险集中性

    • 取数口径:客户的风险评分和贷款记录

    • 表来源:客户信息表、贷款信息表

    • 字段来源:客户ID、风险评分、贷款金额

    • 计算逻辑:统计高风险客户的贷款金额占比

    • 粒度:按客户ID计算

    • 指标验证逻辑:对比高风险客户的实际贷款记录,验证风险集中性的准确性

保险精算系统

项目描述: 本项目通过整合公司内部各业务系统的海量数据资源,通过构建统一、高效、智能的数据仓库,提升数据资产价值,赋能业务决策和创新。存储覆盖了客户信息、保险交易记录、理赔数据、市场分析报告等多个数据源,采用大数据技术分析集索赔分析、保险费预测、欺诈侦察、利润比较集等功能为一体,通过从理赔到核赔赔付或拒赔的记录,从时间,地理、客户和产品等角度进行保单类似的分析,进行保单分析,分析保单的类型和风险,比较期间、奖金和风险,进行保单价格分析,分析价格的潜在客户分析,辅助交叉业务人员销售成功,客户特征化用于理解客户,区分企业的关键客户。

  • 数据抽取:使用Kettle工具从业务系统(如保险管理系统、客户管理系统)中抽取数据到ODS层。

    • 全量抽取:保单基本信息表、客户信息表

    • 增量抽取:理赔记录表、保费缴纳记录表

  • 数据清洗和转换:在DWD层处理格式、枚举、脏数据、异常数据,统一数据格式。

  • 数据汇总:在DWS层建立保单、理赔、客户行为等宽表。

  • 指标计算:在ADS层计算保单因子、理赔率等指标。

数仓分层/数据流向:

  • ODS层:数据备份,不进行修改。

  • DWD层:数据清洗和转换,建立保单、理赔、客户行为等主题。

  • DWS层:多维度汇总,建立宽表。

  • ADS层:指标计算和报表展示。

业务系统:

  • 保险管理系统

  • 客户管理系统

主题:

  • 保单主题

  • 理赔主题

负责主题: 保单主题

表结构:

  • 快照表:保单信息表

    • 核心字段:保单ID、客户ID、保单类型、保费金额
  • 拉链表:理赔记录表

    • 核心字段:保单ID、理赔金额、理赔日期

数据来源:

  • 保险系统表:保单基本信息表、理赔记录表

需要计算的核心指标

保单因子
  • 取数口径:保单基本信息表中的保单属性和客户信息

  • 表来源:保单信息表

  • 字段来源:保单ID、客户ID、保单类型、保费金额

  • 计算逻辑:根据保单属性和客户信息计算保单因子

  • 粒度:按保单ID计算

  • 指标验证逻辑:对比历史保单数据验证保单因子计算的准确性

理赔率
  • 取数口径:理赔记录表中的理赔金额和保费金额

  • 表来源:理赔记录表

  • 字段来源:保单ID、理赔金额、保费金额

  • 计算逻辑:计算理赔率 = 理赔金额 / 保费金额

  • 粒度:按保单ID计算

  • 指标验证逻辑:对比实际理赔记录与计算结果,验证理赔率的准确性

客户保单持有量
  • 取数口径:保单信息表中的客户ID和保单ID

  • 表来源:保单信息表

  • 字段来源:客户ID、保单ID

  • 计算逻辑:统计每个客户持有的保单数量

  • 粒度:按客户ID计算

  • 指标验证逻辑:对比客户实际持有保单记录与计算结果,验证持有量的准确性

年度保费收入
  • 取数口径:保单信息表中的保费金额和生效日期

  • 表来源:保单信息表

  • 字段来源:保单ID、保费金额、生效日期

  • 计算逻辑:按年度统计保费收入

  • 粒度:按年度计算

  • 指标验证逻辑:对比年度财务报表与计算结果,验证保费收入的准确性

年度理赔支出
  • 取数口径:理赔记录表中的理赔金额和理赔日期

  • 表来源:理赔记录表

  • 字段来源:保单ID、理赔金额、理赔日期

  • 计算逻辑:按年度统计理赔支出

  • 粒度:按年度计算

  • 指标验证逻辑:对比年度财务报表与计算结果,验证理赔支出的准确性