广发核心系统项目数据清理方案分析.docx
《广发核心系统项目数据清理方案分析.docx》由会员分享,可在线阅读,更多相关《广发核心系统项目数据清理方案分析.docx(13页珍藏版)》请在冰豆网上搜索。
广发核心系统项目数据清理方案分析
广发核心系统项目
概要设计书
(数据清理)
V1.0
2013年11月
目录
1概述3
1.1理论背景3
1.2需求背景3
1.3功能清单4
1.4关键策略4
1.5限制/假设5
2术语定义6
2.1清理编号6
2.2清理类型6
2.3清理时间6
2.4保留期限7
2.5清理状态8
3数据结构9
3.1数据结构描述9
3.1.1数据清理参数表9
4功能描述10
4.1数据清理参数表维护10
4.2技术平台数据下载和清理10
4.3应用系统数据下载和清理11
4.3.1应用系统数据下载和清理11
4.3.2计算清理日组件11
4.3.3计算保留日组件11
4.3.4数据清理控制组件12
5附录13
1概述
1.1理论背景
完整的数据生命周期是:
应用系统的数据在生产应用系统中的在线阶段,归档阶段,销毁阶段的单一流向过程。
完整的核心银行系统数据管理流程涉及主机和开放平台,其流程包括:
1、主机数据下载:
定期将符合条件的应用数据生成文件,下载至开放平台。
2、主机数据清理:
定期将符合条件的应用数据删除。
3、主机数据归档:
装载下载的数据文件至开放平台的档案管理系统。
4、归档数据销毁:
定期销毁开放平台档案管理系统中的应用数据。
本文档描述的是主机数据清理的总体方案。
1.2需求背景
历史数据是指各种档案中带有日期项的数据,这些日期项可能是键值之一(如交易历史表),也可能不是键值(例如账户主档中的销户日期),根据这些日期和记录某些状态,就能够确定那些数据已经过期,无需在主机中继续保留而可以被清除。
历史数据清理是保护资源,提高系统性能的重要措施之一,因此数据清理的标准在需求分析阶段就要确定下来,但清理的时间和数据保留的期限却会随着数据量的增长和业务的发展而不断变化。
比如票据业务的需求是“对于已结清的票据记录,如果结清期限超过1年的,允许在年末统一作物理删除”。
在这个需求中,数据清理的时间(年末)和数据保留的期限(1年),可能会随着业务的大幅增长而发生改变(例如改为每月末清理,保留半年内数据),但清理的条件“已结清的票据记录”却是固定不变的。
为了降低需求变更所带来的程序修改,我们将“数据清理时间”和“数据保留期限”单独抽取出来,变成可以定义维护的参数,而清理的条件和具体要清理那些数据库表的记录则留给应用程序来完成。
1.3关键策略
数据清理动作统一由应用发起。
应用清理程序每天都启动执行,根据处理对象(清理编号)调用数据清理日期查询组件检查当天是否需要进行数据清理;如果需要数据清理,清理日期查询组件则返回记录的最小保留日期(详见接口说明文档),应用根据最小保留日期进行如下处理。
1、档案无需支持24小时。
应用程序扫描需要清理的档案,将符合条件的记录作删除。
需要考虑所有必要的条件,包括:
记录最后修改日小于最小保留日期;记录属于业务无效的状态;有关联的表的主从记录需要同步删除。
2、档案需要支持24小时(针对双主档)。
第一步:
应用程序扫描批量档案,确定需要删除那些档案的那些记录(日期小于最小保留日期的记录),将这些记录的KEY值登记下来生成BSP档案(注意:
这些KEY值不一定带有日期数据,例如已销户超过一定期限的活期存款的KEY值其实是存款账号)。
第二步:
根据BSP档案发动BSP处理,通过KEY值真正删除联机档案中的相关记录。
这时应用的BSP程序可能还需要再次检查记录的状态和日期,以免发生意外错误(例如已销户的活期存款被销户重开了)。
1.4性能因素
1、采用程序的方式删除记录,系统会登记DB2LOG,对于一次清理大量的数据会引起系统性能下降。
因此在需求分析时,对于涉及大数据量的清理,尽量通过增加清理次数的方式来分散每次清理的数据量。
2、数据清理后一般要对数据库表进行REORG,也可以参照日常系统运行的REORG执行日期,来安排数据清理的运行实施。
2术语定义
数据清理模块的核心数据结构是数据清理参数表,其包含如下要素。
2.1清理编号
清理编号是8位的字符串,它代表了一类数据清理的规则,由应用技术人员维护。
为了方便记忆,可以定义为数据库表的名称。
2.2清理类型
对同一个清理编号之下清理规则的再次划分,是20位字符串的自由格式,由应用自己定义和使用。
比如对交易历史的清理,在同一清理编号下,不同的模块账号,或者不同的产品可能有不同的清理规则。
2.3清理时间
表示数据清理的时间要求,即在什么时间点来做数据清理,在IBSCORE中,数据清理时间由清理频率和清理周期组成:
清理频率
清理周期
摘要
日
NN
N=1~99,表示相对于年初每NN天就启动数据清理。
例如NN=01表示每天都清理,NN=05表示每5天清理一次。
周
N
N=1~7,表示每周N启动数据清理。
例如N=1表示周一清理,N=7表示每周日清理。
旬
NN
NN=01~10,表示每旬的NN日启动清理。
例如NN=01表示每旬的第1日清理,当NN=10表示每旬末清理。
月
NN
NN=01~31,表示每个月的NN日启动清理。
例如NN=01表示每月的1日清理,NN=15表示每月的15日清理,特别地当NN=31表示每月月末清理。
季
NN
NN=01~31,表示每季度的NN日启动清理。
例如NN=01表示3、6、9、12月的1日清理,NN=15表示3、6、9、12月的15日清理,特别地当NN=31表示季末清理。
半年
NN
NN=01~31,表示每半年的NN日启动清理。
例如NN=01表示6、12月的1日清理,NN=15表示6、12月的15日清理,特别地当NN=31表示6月30日、12月31日清理。
年
MMDD
MMDD表示指定的月、日,特别地,如果设置为0229则只会每4年清理一次。
指定
CCYYMMDD
于指定的日期清理。
清理的启动需要按批量的假期表进行计算,当出现假期跨一个清理周期的时候,仍然以当天的批量处理时间为准。
例如定义每天清理一次,每次保留5天以内的数据,且假设国庆节7天都为假期不跑批量,那么在9月30日执行清理的时候,只是清理9月26日前的数据,10月8日上班的第一天仍然可以查询到9月26~30日的数据,而不仅仅是10月3~7日的数据。
但在10月8日执行数据清理时,会删除10月4日前的所有数据。
如果遇到清理日是假期而没有运行批量时,系统需要在下一个批量日执行数据清理。
2.4保留期限
代表数据保留的时间长短要求,在IBSCORE中,数据保留时间由保留频率和保留周期组成:
保留频率
保留周期
摘要
日
NNN
NN=000~999,表示保留NN天的数据,特别地,当NN=000时,表示一天都不保留。
月
NN
NN=01~99,表示保留NN个月的数据。
年
NN
NN=01~50,表示保留NN年的数据。
数据保留期限是相对于清理时间而言的,为了不要在月末等特殊日期执行数据清理,清理的时间可能会改在其它日期执行,为避免因此而造成的将一个业务周期的数据拆分成两段的情况,系统提供一个“是否允许按月拆分”的选项,当该选项为“不允许”时,表示数据必须按月为周期进行保留。
例如每个月的3日启动数据清理,要求保留一个月的数据,那么在5月3日清理时,如果是“不允许”按月拆分,系统会保留4月1日~5月3日的数据,如果是“允许”按月拆分,系统就只保留4月4日~5月3日的数据。
系统控制按日保留时,“是否允许按月拆分”选项是不可选的,且必须为“允许”。
清理时间和保留期限之间的参数配置可能会出现不作清理的情况,需要在详细设计时考虑。
例如选择按日清理,又要保留一个完整月的数据,那么每月2日以后的清理动作将会是多余的。
2.5清理状态
为了简化和方便参数维护,为每条记录建立清理状态:
Y或N。
Y-表示清理记录有效;N-表示清理记录无效。
系统不提供参数的删除交易,而是由参数维护人员通过修改删除状态为“N”来实现,这样当希望暂时不作数据清理时,只需要修改清理状态即可。
3数据结构
3.1数据结构描述
3.1.1数据清理参数表
●描述:
用于定义数据清理时间、保留期限及其他相关要素。
●表COLUMN描述:
ID
名称
类型/长度
备注
BNK
银行号
9(03)
CLN_NO
清理编号
X(08)
清理的数据编号,可以使用数据库表名。
CLN_TYP
清理类型
X(20)
自由格式,由应用负责解释和使用
DES
说明
X(60)
STS
状态
X(01)
Y-有效,N-无效
CLN_FRY
清理频率
X(01)
D-日,W-周,T-旬,M-月,Q-季,H-半年,Y-年,S-指定
CLN_CYC
清理周期
9(08)
根据清理频率不同取值不同
RES_FRY
保留频率
X(01)
D-日,M-月,Y-年
RES-CYC
保留周期
9(03)
根据保留频率不同取值含义不同
RES-FLG
是否允许按月拆分
X(01)
Y-允许,N-不允许
CLN_FLG
自动处理标志
X
(1)
Y-自动,由平台集中调应用组件下载和清理;
N-应用程序自行下载和清理
COM_NAM2
清理组件名
X(20)
当自动处理标志为Y时,必选
REMARK
备注
X(60)
UPT_DT
最后更新日期
9(08)
UPT_TLR
最后修改柜员
X(10)
UPT_BRH
最后修改机构号
X(10)
●KEY,INDEX描述:
ID
TYPE
COLUMN
备注
SEQ
ID
A/D
PK
PK
1
BNK
A
2
CLN_NO
A
3
CLN_TYP
A
U1
CI
1
BNK
A
2
CLN_NO
A
3
CLN_TYP
A
4功能描述
4.1参数表维护
●功能:
对数据清理参数表记录做增加、修改、查询、浏览。
系统限定增加、修改交易只能由总行柜员执行,查询和浏览交易则不作限定。
●输入:
参数表中定义的各数据项。
●输出:
交易成功画面
●处理:
Ø只允许总行级柜员使用;
Ø增加、修改时更新参数档案(使用统一的参数表);
Ø增加、修改时登记历史档案,并作改前改后的明细登记;
4.2模块组件
4.2.1清理操作查询组件
●功能:
根据会计日期、清理编号等输入,计算当天是否清理日,以及清理的保留日期;与输入数据相匹配,参数表中指示当日需要进行清理的参数记录可能有多笔,对应输出描述中的数组;绝大多数应用程序调用此组件即可。
●输入:
输入数据英文名
输入数据中文名
数据类型
输入属性
备注
QDDT-BK
银行号
9(3)
Optional
QDDT-NO
代码种类
X(8)
Mandatory
QDDT-TYPE
清理类型
X(20)
Optional
QDDT-AC-DATE
会计日期
9(8)
Mandatory
●输出:
输出数据英文名
输出数据中文名
数据类型
备注
QDDT-RC-MMO
返回应用符
X
(2)
QDDT-RC-CODE
返回码
X(4)
QDDT-RN-BK
银行号
9(3)
OCCURS100TIMES
QDDT-RN-TYPE
清理类型
X(8)
OCCURS100TIMES
QDDT-RN-DATE
最小保留日期
9(8)
OCCURS100TIMES
4.2.2计算清理日期组件
●功能:
判断当天是否需要进行数据的清理。
●输入:
输入数据英文名
输入数据中文名
数据类型
输入属性
备注
CDDT-DELE-FRY
清理频率
X
(1)
Mandatory
CDDT-DELE-CYC
清理周期
9(8)
Mandatory
CDDT-AC-DATE
会计日期
9(8)
Mandatory
CDDT-LAST-DATE
上一会计日期
9(8)
Mandatory
●输出:
输出数据英文名
输出数据中文名
数据类型
备注
CDDT-RC-MMO
返回应用符
X
(2)
CDDT-RC-CODE
返回码
X(4)
CDDT-DELE-FLAG
清理标志
X
(1)
'Y','N'.
4.2.3计算保留日期组件
●功能:
返回最小的保留日期。
●输入:
输入数据英文名
输入数据中文名
数据类型
输入属性
备注
CSDT-STOR-FRY
保留频率
X
(1)
Mandatory
CSDT-STOR-CYC
保留周期
9(3)
Mandatory
CSDT-SPLIT-FLAG
按月拆分标志
X
(1)
Mandatory
CSDT-AC-DATE
会计日期
9(8)
Mandatory
●输出:
输出数据英文名
输出数据中文名
数据类型
备注
CSDT-RC-MMO
返回应用符
X
(2)
CSDT-RC-CODE
返回码
X(4)
CSDT-STOR-DATE
最小保留日期
X(8)
5应用规则
1、并发规则:
根据被清理应用表的分PART情况和数据量,确定清理作业是并发方式或非并发方式。
如果是对分PART的数据量较大的表,宜采用分PART方式。
2、关联规则:
相关联的应用表的数据清理,在性能允许的情况下,可考虑在相同批量程序作清理,以保证应用数据的一致性,如在同个程序,可以对账户表的待清理记录以及账户在协议表的关联记录穿行进行删除动作。
3、分步规则:
判断逻辑简单(如只需判断清理参数的相关字段)的表,用单个程序执行删除动作即可。
对判断逻辑复杂,或出于性能因素等原因,可以采用多步骤多程序的方式作清理。
如分成如下两步:
依照检查逻辑将符合条件的清理记录键值生成文件,根据文件作清理动作。
4、参数规则:
根据预估的数据量,结合业务需求,规划应用表的保留期限和清理周期。
5、运行规则:
清理作业安排在日终批量完成后运行,清理作业完成后对数据库表进行重组。
6附录