CN110275799B - 账务系统不停机日切点快照余额的方法 - Google Patents
账务系统不停机日切点快照余额的方法 Download PDFInfo
- Publication number
- CN110275799B CN110275799B CN201910498338.7A CN201910498338A CN110275799B CN 110275799 B CN110275799 B CN 110275799B CN 201910498338 A CN201910498338 A CN 201910498338A CN 110275799 B CN110275799 B CN 110275799B
- Authority
- CN
- China
- Prior art keywords
- balance
- account
- snapshot
- value
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种账务系统不停机日切点快照余额的方法,属于计算机系统应用技术领域。通过使用账户数据中每个账户的ID号与分片数进行取余运算;将取余运算后得到相同值的账户ID放入同一队列中;每个队列均进行循环遍历获取账户ID,利用账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,以账务变更流水表的记录写入日期为依据,对每个队列中的所有账户利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。本发明解决了现有技术无法进行任意账户在任意时间点的余额快照回溯以及处理效率低的问题;实现了在任意时刻进行账户余额精准快照和在短时间内高效完成海量历史变更记录回溯的目的。
Description
技术领域
本发明属于计算机系统应用技术领域,特别是涉及一种账务系统不停机日切点快照余额的方法。
背景技术
现有技术在进行日切余额快照时更多的采用双余额档法,就是在每次交易时同时考虑两个余额的更新。在账户余额表中设置“当前余额”、“前日余额”、“最近更新日期”。“当前余额”是实时余额,保存最新的账户余额,“前日余额”是保存账户中每个日切后的更新余额。
在当天第一笔交易时,将“当前余额”直接赋值到“前日余额”中,并加工“当前余额”,最后更新“最近更新日期”;当日切后需要使用“前日余额”的业务时,需要进行特别的加工处理才能获取正确的“前日余额”,加工方法为:如果“当前日期”等于“最近更新日期”,则取“上日余额”的值作为“前日余额”,如果“当前日期”不等于“最近更新日期”,则取当前档中的余额作为“前日余额”。最终以的“前日余额”作为账户日切快照余额。
现有技术存在明显不足,具体而言,“前日余额”字段有时候并不是真实,后续必须进行特别处理,较容易出错;并且不能做到任意账户任意时间点的余额快照回溯;如果数据出现错误,将很难修复;同时,处理效率较低,随着账户的增多处理时间也会成倍增加。
因此,亟需一种账务系统不停机日切点快照余额的方法,以解决现有技术中存在的易出错、无法进行任意账户在任意时间点的余额快照回溯以及错误难修复、处理效率低的问题。
发明内容
本发明的目的在于提供一种账务系统不停机日切点快照余额的方法,解决了现有技术中存在的易出错、无法进行任意账户在任意时间点的余额快照回溯以及错误难修复、处理效率低的问题;实现了在任意时刻进行账户余额精准快照和在短时间内高效完成海量历史变更记录回溯的目的。
本发明所采用的技术方案是提供了一种账务系统不停机日切点快照余额的方法,包括以下步骤:
S1,使用账户数据中每个账户的ID号与分片数进行取余运算;
S2,将所述S1中经取余运算后得到相同值的账户ID放入同一队列中;
S3,并发处理所述S2中形成的每个队列,所述每个队列均进行循环遍历获取账户ID,利用所述账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,并将当前余额值记入临时变量X中,将余额更新日期记入临时变量Y中;
S4,以账务变更流水表的记录写入日期为依据,针对所述S3每个队列中的所有账户,利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。
进一步地,所述S4中计算任意T时刻的准确快照余额包括以下步骤:
S41,新建存放快照余额的集合list;
S42,取所述S3中分片取得的每个账户的临时变量X和临时变量Y,比较前一天T 时刻的时间戳与Y的时间戳大小:
若Y的时间戳小于前一天T时刻的时间戳,则将账户X作为该账户的快照余额值,并放入到list中;若Y的时间戳大于或等于前一天T时刻的时间戳,同时小于或等于T 时刻的时间戳,则进行下一步;
S43,用上述账户的ID号,根据账务变更流水表中变更日期的时间戳查找小于或等于T时刻时间戳的最后一条账务变更记录,若查找到此条流水记录,则取该条记录的变更后余额值作为该账户的在T时刻的快照余额值,并放入到list;若未查找到则进行下一步;
S44,在账务变更流水表中查找T时刻往后日期为最小的流水记录,用此条记录的变更后余额值减去变更值得到快照余额值,并添加到最终快照余额的集合list;若未找到则进行下一步;
S45,直接使用账户的X值作为快照余额值,放入到list;直到将所有分片处理结束,余额快照集合list最终添加完毕。
进一步地,
所述任意时刻T为系统设定的当天日切点;
所述分片数为同时进行作业处理的线程任务数;
所述账户余额表是用于存放每个账户实时余额的表,内容包括当前余额值和余额更新日期;
所述账务变更流水表是用于反映账户余额变化的流水日志,包含每个账户余额变化的变更额、变更后余额值和变更日期。
本发明的有益效果是:
本发明可高效完成任意时刻海量账户余额数据的精准快照,为后续的账务核算提供强力支撑,大大缩短了整个账务日终处理过程的时间。同时提供海量快照数据的存储和快照检索,为后续业务开展做好准备。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的整体流程图。
图2是快照回溯方案图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术方案是基于“账户余额表”和“账务变更流水表”,利用归并算法及回溯算法结合来快速精确获取全量账户任意时刻的余额快照数据。
名词解释:
“账户余额表”是用于存放每个账户实时余额的表,主要包含“当前余额”及“余额更新日期”。
“账务变更流水表”是用于反映账户余额变化的流水日志,每条记录主要包含每个账户余额变化的“变更额”、“变更后余额值”及“变更日期”。
1.为提高海量账户查找速度,在“账户余额表”中使用归并算法,查找各账户的“当前余额”值。算法步骤如下:
A)使用账户数据中每个账户的ID号与分片数进行取余运算。
注:这里分片数定义为同时进行作业处理的线程任务数。
B)将运算后得到结果相同值的账户ID放入到同一队列中,等待处理。
C)通过分片作业并发处理各集合列表,每个集合都进行循环遍历来获取账户ID号, 用此账户ID到账户余额表中查找对应账户的“当前余额”及“余额更新日期”并放入临时变量X,Y中,等待下一步处理。
实施例
假如有4 个账户,账户编号为1001、1002、1003、1004;
分片处理的任务数为2,那么:
1001%2=1;
1002%2=0;
1003%2=1;
1004%2=0;
则,
1001、1003账户归为一组放入到队列A中,1002、1004账户归为一组放入到队列B中。
分片任务并发同时进行A、B组处理作业:
假如A开始遍历到1001,通过ID 1001到"账户余额表"取1001的“当前余额”值放入变量X,取“余额更新日期”放入变量Y。而后进入下一大步骤处理。
2.基于“账务变更流水表”的记录写入日期来作为依据,采用“回溯算法”来计算任意时间点T时刻的准确“余额快照”。算法步骤如下:
A)新建存放“快照余额”的集合list。
B)取上述“步骤1”中分片拿到的每个账户的X“当前余额”及Y“余额更新日期”,比较(T时刻-1天)与Y的大小,如果Y小于(T时刻-1天),则将账户X作为该账户的“快照余额”值,并放入到list中。若Y大于等于(T时刻-1天)且小于等于T时刻,则进行下一步;
C)用上述账户的ID号,在“账务变更流水表”中根据流水记录的“变更日期”查找小于等于T时刻的最后一条账务变更记录,若查找到此条流水记录,则取该条记录的“变更后余额值”作为该账户的在T时刻的“快照余额值”,并放入到list。若未查找到则进行下一步;
D)在“账务变更流水表”中查找T时刻往后日期为最小的流水记录,用此条记录的“变更后余额值”减去“变更值”得到“快照余额值”,并添加到最终“快照余额”的集合list。若未找到则进行下一步;
E)直接使用账户的X值作为“快照余额值”,放入到list。至此,单个账户的快照流程完毕;
F)直到将所有分片处理完毕,得到最终所有账户余额快照集合list。
举例:
假若某个用户A,有账户ID为“1001”的账户,“当前余额”为“50”,在时刻为“2019-04-23 23:59:59”时由业务触发使余额增加了“50”,则“账户余额表”的“当前余额”更新为“100”,“余额更新日期”更新为“2019-04-23 23:59:59”,随后,系统插入账务变更记录到“账务变更流水表”,记录日志账户ID为“1001”的“变更值”50,“变更后余额值”100,“变更日期”“2019-04-23 23:59:59”;
假设本例中的任意时刻日切点定义为T=“2019-04-24 00:00:00”,
则T-1天=“2019-04-23 00:00:00”;即前一天T时刻。
从步骤A开始,因T-1天<账户“余额更新日期”<T,则用账户1001ID去“账务变更流水表”查找T-1天<“变更日期”<T的账务记录集,并取出日期为最大的一条记录,即为上述的“2019-04-23 23:59:59”的记录;
取到该条记录的“变更后余额值”作为该账户在T时刻的“快照余额”值,并添加到“快照余额”集合list。至此,该账户1001完成T时刻余额快照;
每个分片都循环的进行下一个账户处理,直到将所有分片处理完毕,得到所有账户余额最终快照集合list。
校对方案:
在完成上述流程后,需要验证最终快照余额结果的准确性,采用如下公式核对:
本日T时刻快照总额=前日快照期初总额+本日截止T时刻的变更总额;
其中,前日快照期初总额是前日账户快照“余额值”集合中各元素逐个相加的总值;本日截止T时刻变更总额是本日截止T时刻“账务变更流水表”中所有“变更额”逐个加总值;本日T时刻快照总额是本日T时刻最终快照list中获取的“余额”逐个加总值。
公式左右相等,表示执行结果正确。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (2)
1.一种账务系统不停机日切点快照余额的方法,其特征在于,包括以下步骤:
S1,使用账户数据中每个账户的ID号与分片数进行取余运算;
S2,将所述S1中经取余运算后得到相同值的账户ID放入同一队列中;
S3,并发处理所述S2中形成的每个队列,所述每个队列均进行循环遍历获取账户ID,利用所述账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,并将当前余额值记入临时变量X中,将余额更新日期记入临时变量Y中;
S4,以账务变更流水表的记录写入日期为依据,针对所述S3每个队列中的所有账户,利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list;
所述S4中计算任意T时刻的准确快照余额包括以下步骤:
S41,新建存放快照余额的集合list;
S42,取所述S3中分片取得的每个账户的临时变量X和临时变量Y,比较T的前一天的时间戳与Y的时间戳大小:
若Y的时间戳小于T的前一天的时间戳,则将账户X作为该账户的快照余额值,并放入到list中;若Y的时间戳大于或等于T的前一天的时间戳,同时小于或等于T时刻的时间戳,则进行下一步;
S43,用上述账户的ID号,根据账务变更流水表中变更日期的时间戳查找小于或等于T时刻时间戳的最后一条账务变更记录,若查找到此条流水记录,则取该条记录的变更后余额值作为该账户的在T时刻的快照余额值,并放入到list;若未查找到则进行下一步;
S44,在账务变更流水表中查找T时刻往后日期为最小的流水记录,用此条记录的变更后余额值减去变更值得到快照余额值,并添加到最终快照余额的集合list;若未找到则进行下一步;
S45,直接使用账户的X值作为快照余额值,放入到list;直到将所有分片处理结束,余额快照集合list最终添加完毕。
2.根据权利要求1所述的一种账务系统不停机日切点快照余额的方法,其特征在于,
所述任意时刻T为系统设定的当天日切点;
所述分片数为同时进行作业处理的线程任务数;
所述账户余额表是用于存放每个账户实时余额的表,内容包括当前余额值和余额更新日期;
所述账务变更流水表是用于反映账户余额变化的流水日志,包含每个账户余额变化的变更额、变更后余额值和变更日期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498338.7A CN110275799B (zh) | 2019-06-10 | 2019-06-10 | 账务系统不停机日切点快照余额的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498338.7A CN110275799B (zh) | 2019-06-10 | 2019-06-10 | 账务系统不停机日切点快照余额的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275799A CN110275799A (zh) | 2019-09-24 |
CN110275799B true CN110275799B (zh) | 2020-02-07 |
Family
ID=67960582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910498338.7A Expired - Fee Related CN110275799B (zh) | 2019-06-10 | 2019-06-10 | 账务系统不停机日切点快照余额的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275799B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311396A (zh) * | 2020-02-13 | 2020-06-19 | 中国建设银行股份有限公司 | 重过账的核算方法、装置、设备及存储介质 |
CN113486021B (zh) * | 2021-07-27 | 2024-02-27 | 中国银行股份有限公司 | 分布式银行系统中确定账户日平均余额的方法及装置 |
CN114298835A (zh) * | 2022-03-11 | 2022-04-08 | 梅州客商银行股份有限公司 | 一种基于7×24小时的核心系统存款账务总分核对方法及系统 |
CN115760408A (zh) * | 2022-11-22 | 2023-03-07 | 中电金信软件(上海)有限公司 | 交易数据处理方法、装置及核算服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008011848A1 (de) * | 2006-07-26 | 2008-01-31 | Nokia Siemens Networks Gmbh & Co. Kg | Verfahren und system zur erneuten berechnung von gebühren eines bereits mit anderen, auch fehlerhaften tarifparametern vergebührten ereignisses |
CN102831014A (zh) * | 2012-07-30 | 2012-12-19 | 华中科技大学 | 一种利用多请求队列提升io并行性和减少小io延迟的方法 |
CN107273451A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 余额数据更新方法和系统 |
CN108765117A (zh) * | 2018-05-18 | 2018-11-06 | 连连银通电子支付有限公司 | 一种实时多任务处理的对账方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384231B2 (en) * | 2013-06-21 | 2016-07-05 | Bank Of America Corporation | Data lineage management operation procedures |
-
2019
- 2019-06-10 CN CN201910498338.7A patent/CN110275799B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008011848A1 (de) * | 2006-07-26 | 2008-01-31 | Nokia Siemens Networks Gmbh & Co. Kg | Verfahren und system zur erneuten berechnung von gebühren eines bereits mit anderen, auch fehlerhaften tarifparametern vergebührten ereignisses |
CN102831014A (zh) * | 2012-07-30 | 2012-12-19 | 华中科技大学 | 一种利用多请求队列提升io并行性和减少小io延迟的方法 |
CN107273451A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 余额数据更新方法和系统 |
CN108765117A (zh) * | 2018-05-18 | 2018-11-06 | 连连银通电子支付有限公司 | 一种实时多任务处理的对账方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110275799A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275799B (zh) | 账务系统不停机日切点快照余额的方法 | |
CN110287052B (zh) | 一种异常任务的根因任务确定方法及装置 | |
CN108153784B (zh) | 同步数据处理方法和装置 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN101562529B (zh) | 一种计费处理的方法及装置 | |
CN101650742B (zh) | 一种对英文检索的检索条件进行提示的系统及方法 | |
CN101419615A (zh) | 一种前后台数据库的同步方法及装置 | |
CN114416703A (zh) | 数据完整性自动监控方法、装置、设备及介质 | |
CN106682017B (zh) | 一种数据库更新方法及装置 | |
CN101751429A (zh) | 一种前后台数据库的同步方法及装置 | |
CN104182826A (zh) | 一种分摊数据处理方法及装置 | |
CN114676161A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109583773A (zh) | 一种纳税信用积分确定的方法、系统及相关装置 | |
CN113138990A (zh) | 一种数据血缘构建、追溯方法、装置及设备 | |
CN110888909B (zh) | 一种评估内容的数据统计处理方法及装置 | |
CN112579556A (zh) | 日切数据卸载方法、装置、设备及介质 | |
CN107783896B (zh) | 一种数据处理模型的优化方法和装置 | |
CN106873956B (zh) | 基于连续关键字的代码补全方法及装置 | |
CN114564502A (zh) | 一种基于Redis缓存技术的电力数据补抄方法和系统 | |
CN107273293A (zh) | 大数据系统性能测试方法、装置及电子设备 | |
CN113094241A (zh) | 一种实时程序准确性的确定方法、装置、设备及存储介质 | |
CN111639057A (zh) | 日志消息处理方法、装置、计算机设备及存储介质 | |
CN112181747A (zh) | 系统故障注入方法、注入装置及存储介质 | |
CN111767318A (zh) | 一种数据统计方法、装置、电子设备及介质 | |
CN112561368B (zh) | 一种oa审批系统的可视化业绩计算方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200207 |