当前位置: 首页 > article >正文

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

快照表

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

拉链表 

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

快照表和拉链表的区别

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

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

银行信贷管理系统

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

开发流程

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

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

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

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

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

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

数仓分层/数据流向:

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

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

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

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

业务系统:

  • 合同管理系统

  • 客户关系管理系统

  • 风险管理系统

主题:

  • 客户主题

  • 产品主题

  • 营销主题

  • 交易主题

  • 合同主题

负责主题: 客户主题

表结构:

  • 快照表:客户信息表

    • 核心字段:客户ID、姓名、地址、联系方式

  • 拉链表:客户行为表

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

数据来源:

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

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

需要计算的核心指标

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

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

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

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

    • 粒度:按客户ID计算

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

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

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

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

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

    • 粒度:按客户ID计算

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

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

    • 表来源:客户行为表

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

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

    • 粒度:按交易ID计算

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

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

    • 表来源:合同信息表

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

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

    • 粒度:按合同ID计算

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

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

    • 表来源:风险预警表

    • 字段来源:预警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、理赔金额、理赔日期

数据来源:

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

需要计算的核心指标

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

    • 表来源:保单信息表

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

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

    • 粒度:按保单ID计算

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

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

    • 表来源:理赔记录表

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

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

    • 粒度:按保单ID计算

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

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

    • 表来源:保单信息表

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

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

    • 粒度:按客户ID计算

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

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

    • 表来源:保单信息表

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

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

    • 粒度:按年度计算

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

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

    • 表来源:理赔记录表

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

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

    • 粒度:按年度计算

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

相关文章:

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

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

记录一下Django的密码重置(忘记密码)

一. Django默认的密码重置 1.路由 # url.pyfrom django.contrib.auth import views as auth_viewsurlpatterns [# 密码重置path(password_reset/, auth_views.PasswordResetView.as_view(), namepassword_reset),# 用户输入邮箱后,跳转到此页面path(password_res…...

【运维篇】KubeSphere-02(经验汇总)

一、使用建议 1.对于数据库、对像存储比较重的要不能丢失,有异地存储备份需求的有状态服务,不建议采用k8s进行部署,会导致运维难度更大。 2.对于中间件如redis、MQ、harbor、seata、nacos、zookeeper可采用k8s部署。 3.对于无状态服务tomc…...

MySQL 5.7.40 主从同步配置教程

MySQL 主从同步能有效提升数据冗余备份与负载均衡。下面我将以 MySQL 5.7.40 版本为例,详细讲解如何进行主从同步配置。 MySQL 5.7.40 主从同步配置教程 一、环境准备 假设我们有两台服务器,一台作为主服务器(Master)&#xff…...

Qt:多线程

目录 初识Qt多线程 QThread常用API QThread的使用 Qt中的锁 条件变量和信号量 初识Qt多线程 Qt 多线程 和 Linux 中的线程本质是一个东西 Linux 中学过的 多线程 APl,Linux 系统提供的 pthread 库 Qt 中针对系统提供的线程 API 重新封装了 C11 中,…...

算法系列之广度优先搜索解决妖怪和尚过河问题

在算法学习中,广度优先搜索(BFS)是一种常用的图搜索算法,适用于解决最短路径问题、状态转换问题等。本文将介绍如何利用广度优先搜索解决经典的“妖怪和尚过河问题”。 问题描述 有三个妖怪和三个和尚需要过河。他们只有一条小船…...

详解常用集合和映射中的线程安全问题

1. 前言 在 Java 中,集合和映射是常用的数据结构,它们分为线程安全和线程不安全两类。我们常用的集合包括:ArrayList、HashSet、CopyOnWriteArrayList、CopyOnWriteArraySet。常用的映射包括:HashMap、ConcurrentHashMap、Hashta…...

计算机毕业设计SpringBoot+Vue.js车辆管理系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

【js逆向】iwencai国内某金融网站实战

地址:aHR0cHM6Ly93d3cuaXdlbmNhaS5jb20vdW5pZmllZHdhcC9ob21lL2luZGV4 在搜索框中随便输入关键词 查看请求标头,请求头中有一个特殊的 Hexin-V,它是加密过的;响应数据包中全是明文。搞清楚Hexin-V的值是怎么生成的,这个值和cooki…...

安卓设备root检测与隐藏手段

安卓设备root检测与隐藏手段 引言 安卓设备的root权限为用户提供了深度的系统控制能力,但也可能带来安全风险。因此,许多应用(如银行软件、游戏和流媒体平台)会主动检测设备是否被root,并限制其功能。这种对抗催生了ro…...

【音视频 | AAC】AAC编码库faac介绍、使用步骤、例子代码

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...

Unity摄像机跟随物体

功能描述 实现摄像机跟随物体,并使物体始终保持在画面中心位置。 实现步骤 创建脚本:在Unity中创建一个新的C#脚本,命名为CameraFollow。 代码如下: using UnityEngine;public class CameraFollow : MonoBehaviour {public Tran…...

dp_走方格(包含dfs分析,记忆化搜索)

类似题目解析:dp_最长上升子序列(包含dfs分析,记忆化搜索)-CSDN博客 题目链接:2067. 走方格 - AcWing题库 题目图片: 分析题目(dfs) 这个题目说有一个行为n行,列为m列…...

软考 中级软件设计师 考点笔记总结 day01

文章目录 软考1.0上午考点下午考点 软考1.11、数值及其转换2、计算机内数据表示2.1、定点数 - 浮点数2.2、奇偶校验 和 循环冗余校验 (了解)2.3、海明码 (掌握)2.4、机器数 软考1.0 上午考点 软件工程基础知识: 开发模型、设计原则、测试方…...

如何用Kimi生成PPT?秒出PPT更高效!

做PPT是不是总是让你头疼?😩 快速制作出专业的PPT,今天我们要推荐两款超级好用的AI工具——Kimi 和 秒出PPT!我们来看看哪一款更适合你吧!🚀 🥇 Kimi:让PPT制作更轻松 Kimi的生成效…...

K8S学习之基础十八:k8s的灰度发布和金丝雀部署

灰度发布 逐步扩大新版本的发布范围,从少量用户逐步扩展到全体用户。 特点是分阶段发布、持续监控、逐步扩展 适合需要逐步验证和降低风险的更新 金丝雀部署 将新版本先部署到一小部分用户或服务器,观察其表现,再决定是否全面推广。 特点&…...

Java 深度复制对象:从基础到实战

目录 一、深度复制的概念二、实现深度复制的方法1. 使用序列化2. 手动实现深度复制 三、总结 在 Java 编程中,对象的复制是一个常见的需求。然而,简单的复制操作(如直接赋值)只会复制对象的引用,而不是创建一个新的对象…...

【前端】webstorm创建一个导航页面:HTML、CSS 和 JavaScript 的结合

文章目录 前言一、项目结构二、HTML 结构三、CSS 样式四、JavaScript 功能五、现代化风格优化htmlcssjavascript运行效果 总结 前言 在现代网页开发中,一个良好的导航栏是提升用户体验的重要组成部分。在这篇文章中,我将向您展示如何创建一个简单而完整…...

AI编程: 一个案例对比CPU和GPU在深度学习方面的性能差异

背景 字节跳动正式发布中国首个AI原生集成开发环境工具(AI IDE)——AI编程工具Trae国内版。 该工具模型搭载doubao-1.5-pro,支持切换满血版DeepSeek R1&V3, 可以帮助各阶段开发者与AI流畅协作,更快、更高质量地完…...

第11章 web应用程序安全(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的,已经过去3年时间了,最近利用闲暇时间,抓紧吸收,总的来说,第11章开始学习利用web应用程序安全,主要讲信息收集、dns以及burpsuite,现在的资产测绘也…...

MySQL复习笔记

MySQL复习笔记 1.MySQL 1.1什么是数据库 数据库(DB, DataBase) 概念:数据仓库,软件,安装在操作系统(window、linux、mac…)之上 作用:存储数据,管理数据 1.2 数据库分类 关系型数据库&#…...

GitHub上传项目

总结(有基础的话直接执行这几步,就不需要再往下看了): git init 修改git的config文件:添加:[user]:name你的github用户名 email你注册github的用户名 git branch -m master main git remote add origin 你的URL gi…...

自我训练模型:通往未来的必经之路?

摘要 在探讨是否唯有通过自我训练模型才能掌握未来的问题时,文章强调了底层技术的重要性。当前,许多人倾向于关注应用层的便捷性,却忽视了支撑这一切的根本——底层技术。将模型简单视为产品是一种短视行为,长远来看,理…...

qt 操作多个sqlite文件

qt 操作多个sqlite文件 Chapter1 qt 操作多个sqlite文件1. 引入必要的头文件2. 创建并连接多个SQLite数据库3. 代码说明4. 注意事项 Chapter2 qt 多线程操作sqlite多文件1. 引入必要的头文件2. 创建数据库操作的工作线程类3. 在主线程中创建并启动多个工作线程4. 代码说明5. 运…...

【每日学点HarmonyOS Next知识】多继承、swiper容器、事件传递、滚动安全区域、提前加载网络图片

1、HarmonyOS ArkTS如何让一个类可以具备其他多个类的能力? ArkTS如何让一个类可以具备其他多个类的能力,类似于多继承。 接口支持多继承。类不支持,其只支持单继承。 (报错:Classes can only extend a single class…...

DIY Tomcat:手写一个简易Servlet容器

在Java Web开发领域,Tomcat堪称经典,它作为Servlet容器,承载着无数Web应用的运行。今天,我将带大家一同探索如何手写一个简易的Tomcat,深入理解其底层原理。 一、背景知识 在开始之前,我们需要对几个关键…...

如何在Ubuntu上直接编译Apache Doris

以下是在 Ubuntu 22.04 上直接编译 Apache Doris 的完整流程,综合多个版本和环境的最佳实践: 注意:Ubuntu的数据盘VMware默认是20G,编译不够用,给到50G以上吧 一、环境准备 1. 安装系统依赖 # 基础构建工具链 apt i…...

基于ssm的物资进销存(全套)

现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本货物进销管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&#…...

【CVPR2025】 EVSSM:用状态空间模型高效去模糊

Efficient Visual State Space Model for Image Deblurring 论文信息 题目: Efficient Visual State Space Model for Image Deblurring 用于图像去模糊的高效视觉状态空间模型 源码:https://github.com/kkkls/EVSSM 创新点 提出了高效视觉状态空间模型…...

动态规划--斐波那契类型

目录 前言 1 第N个斐波那契数 2 爬楼梯 3 三步问题 4 使用最小花费爬楼梯 5 解码方法 总结 前言 本篇所讲的几个题目都是与斐波那契数的做法与思路类似的题目,所以直接放在一块解决了。 同时,由于第一次接触动态规划,我们也会讲解一…...