【mysql项目】模拟银行数据合并,一个身份证号可开通多个银行的信用卡的数据

本文介绍了如何处理从不同银行获取的信用卡数据,通过合并与去重操作,将20万条数据整合成18万条不重复的身份证号记录。在CentOS 7.5上使用MySQL 5.7.23数据库,设计了ODS、DW和DM表结构,详细展示了银行表、原始数据表、DW数据表和DM展示表的创建过程,以及存储过程的编写和执行,用于数据整合和去重。

需求

拉取过来的数据(比如浦发,兴业,农行等),格式如:

兴业:

手机号,姓名,开通信用卡功能(10万条)

浦发:

手机号,姓名,开通信用卡功能(10万条)

......

 

将上面的数据合并,因为每个身份证号有可能在多家银行开有信用卡,需要将20万条数据,假如这时只有18万不重复身份证号的数据。

数据效果展示

原始数据(黄色底为重复身份证号的数据):

工商银行(共20条)

 

农业银行(共20条)

 

去重后的数据:

此时因为有五个身份证号在两个银行开通了信用卡业务,故该五个身份证在两个表中都存在,去重后剩下35数据,并记录开通的银行业务名称。

 

基础表:

 

备注:对于身份证、手机号和姓名等敏感数据均从网络随机生成,如有雷同纯属巧合。
 

数据存放的环境

系统版本:CentOS 7.5

数据库:MySQL 5.7.23

 

  1. 数据库设计

    1. 设计概述

ODS表为原始数据,数据从客户业务系统拉取,包含中文数据;

DW表去掉中文后的数据,数据从ODS表获取;

DM为展示的数据,即系统最后需求的数据;

T为基础表。

银行表:t_bank

原始数据表:

ods_bankData_gs,ods_bankData_ny,ods_bankData_zg,ods_bankData_js……

DW数据表:

dw_bankData_gs,dw_bankData_ny,dw_bankData_zg,dw_bankData_js……

DM展示表:dm_bankFor

 

    1. 具体设计

#创建数据库

create database dbBank;

/*

需求:

拉取过来的数据(比如浦发,兴业,农行等),格式如:

兴业:

手机号,姓名,开通信用卡功能(10万条)

浦发:

手机号,姓名,开通信用卡功能(10万条)

......

 

将上面的数据合并,因为每个身份证号有可能在多家银行开有信用卡,需要将20万条数据,假如这时只有18万不重复身份证号的数据

*/

 

#################################################

##################    BASE     ##################

#################################################

 

/*银行表:t_bank

序号,代码,银行名,银行简写

bankId

bankCode

bankName

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值