用于大量结果数据集的时间最优计算的数据处理方法

文档序号:6567301阅读:270来源:国知局
专利名称:用于大量结果数据集的时间最优计算的数据处理方法
技术领域
本发明涉及一种用于对一段时间结束时的大量结果数据集(result data set) 进行时间最优计算的数据处理方法。
背景技术
现有技术中已知,在一天的特定时间,大型企业的大型计算机系统都必须 定期地处理大量的数据。这些数据会定期性地大量增加,例如,在将一个工作 日期间内发生的业务处理的数据收集起来时。在一个工作日结束时,这些数据 将在所谓的日结处理程序中进行处理。
各个业务处理过程中累积起来的信息收集在存储于文件内的数据集的字 段内。
这样的文件的处理,可以是例如业务处理程序所必需的记帐处理程序 (bookmg process)的性能,或者是数据库的职责,其必须由进一步的系统进 行处理。处理通常不在或不单独在收集数据和创建文件的计算机上进行,而是 将文件传送到中央计算机来处理,在中央计算机处,大量相似的系统所创建的 文件被收集起来并被集中处理。在这些中央系统中,保存有业务参与方的对应 帐户,以便属于该业务处理的所有数据在中央系统的中心点被合并。
通常需要在预定的时隙对一个工作日内收集到的数据集进行处理,以保证 例如特定的记帐处理程序能够在同一工作日结束。因此,提前将文件传送到中 央计算机并在中央计算机内进行处理,才能保证在同一天进行数据的处理。这 样做的结果是,数据不是在一天结束前传送给中央系统的,并且该中央系统必 须在一天结束时处理该数据。处理包括例如将业务处理作为记帐处理过程记入 帐户,或将交易记入帐户,这样的话, 一个或几个交易将记录在一个帐户下。
众所周知,在某特定周期的结束点,例如一个月、 一个季度或一年的结束
点,大型计算机系统上必须执行特定的最终处理程序,以建立例如针对该段即 将结束的周期的财务报表。对于常规的活期帐户,例如,需要在一个月结束时 建立月度财务报表,在一个季度结束时建立季度财务报表,并且,在一年结束 时,还需要为储蓄帐户建立额外的年度财务报表,计算出将即将结束的一年的 利息并将其记入帐户内。为此,大型计算机系统上可用的各个软件模块开始运 行。这些软件模块计算例如即将结束的周期内储蓄帐户的所有中间结算
(mediumbalance)以便确定(作为其一个功能)应得的费用。依据利息数, 计算出给定周期内的利息。类似地,另一个软件模块确定例如同一周期内的帐 户管理费用。这样确定的数值然后作为交易记入对应帐户内。这些交易不是作 为日常业务范围内的业务处理从外部提交给大型计算机系统的,而是由大型计 算机系统自己通过其内运行的软件模块生成的。然后,大型计算机系统自己生 成的这些交易的记帐,与从外部提交给该系统的交易的记帐相同,并且由相同 的软件模块来执行。
一段周期结束时, 一方面,每日发生的数量需要被处理,其在所谓的日结 处理程序内执行;另一方面,需要建立在各个周期结束时必需的帐户财务报表 和类似的信息,这称为月结或季度结算或年度结算处理。
关于日结处理和月结、季度结算或年度结算处理,需要注意的是,它们彼 此之间不能独立地执行。各周期的最后一天发生的所有执行结果,即记帐和交 易,将不仅仅需要在这一天的日结处理中考虑进去,还要在针对即将结束的该 周期的最终处理程序中考虑进去,因为这些业务不仅仅是这一天的一部分,也 是该周期内的一部分。因此,月结、季度结算或年度结算处理只能在前面各天 的日结处理结束后才能开始。
如果月结、季度结算或年度结算处理在日结处理结束之前就开始了,便会 存在风险,例如,针对某一帐户的交易在针对该帐户的月结、季度结算或年度 结算处理的计算之后才记入帐户,从而未被考虑。因此月结、季度结算或年度 结算处理的结果便不正确。
为了确保一天内发生的所有业务不仅被日结处理所考虑进去,而且在月 结、季度结算或年度结算处理中也考虑进去,只能当日结处理结束时,才可以
开始月结、季度结算或年度结算处理。
这样的话,月结、季度结算或年度结算处理只能在该即将结束的周期的最 后一天结束前的很短一段时间内开始,因为数据的量大,便不能在该日结束时 完成,从而不能及时处理。但是,在各周期结束时完成帐户的例如月度、季度 或年度财务报表又是必须的。

发明内容
本发明要解决的技术问题是提供一种在一段周期结束时及时建立— 所需的 财务报表的方法,可将该周期内的所有业务全部考虑进去。
本发明的技术问题通过以下技术方案来解决一种用于对一段周期结束时 的大量结果数据集进行时间最优计算的数据处理方法,其中所述计算是基于该 周期结束前可改变的数据进行的,所述数据处理方法包括至少如下步骤
(1) 确定待考虑的数据的时间跨度;
(2) 针对每个结果数据集,检测对应结果数据集的计算所依据的数据在 结果数据集的计算与所述周期的结束点之间发生改变的可能性;
(3) 在所述时间跨度内计算所述结果数据集,其中,计算所依据的数据
具有较小改变可能性的那些结果数据集的计算先于计算所依据的数据具有较
高改变可能性的那些结果数据集进行;
(4) 存储所述结果数据集;
(5) 针对每个结果数据集,在所述周期结束前的一段很短时间内,检测 计算所述结果数据集所依据的数据是否在计算出所述结果数据集之后发生了 改变,并在发生了改变时为对应结果数据集计算修正值,特别情况下执行重算。
在开始步骤,先确定执行后续方法步骤所需的时间跨度。 一方面,确定结 果数据集的计算开始点。另一方面,预先确定下一方法步骤将考虑到的最大时 间。该时间跨度根据经验确定,相对于即将结束的周期来说很短,并与该周期 在同-一时间点结束。 一般,该时间跨度的长度为几天,由经验值来估计。
在第二步骤中,确定结果数据集的计算所依据的数据在计算结果数据集时 与所述周期的结束点之间的时间内将发生改变的可能性。因此,针对每个结果
数据集,会确定出计算过程中考虑到的数据在结果数据集的计算之后是否会改 变的高可能性或低可能性。该可能性很大程度上取决于数据本身的类型,实践 中通常都是通过经验值来估计的。
第三步骤中,通过对该数据的处理而计算出结果数据集。该处理开始于时 间跨度的开始点,并在该时间跨度结束之前不久结束。计算结果数据集时,将 对该结果数据集可用的所有数据都考虑进去。这样的话,只要计算所依据的数 据未改变,产生的结果数据集将保持正确。在第一步骤内确定的处理时间之后 数据发生改变的可能性,还可表示直到该周期结束结果数据集始终保持正确的 可能性。只有计算结果数据集所依据的数据发生了改变时,即放在结果数据集 的计算完成之后增加了需要考虑进去的新数据时,结果数据集才会变成不正确 的。
在计算结果数据集的过程中,那些直到周期结束都保持正确的可能性高的 结果数据集(即所依据的数据被确定具有低改变可能性的)将先进行计算。计算 所依据的数据被确定在结果数据集计算完成之后具有高改变可能性的那些结 果数据集将随后进行计算,即在该周期结束前的很短一段时间内计算,以使这 些结果数据集不必再进行修正,具有很高的正确可能性。
第四步骤中,将在该周期结束之前通过上述方法确定的结果数据集存储起来。
第五步骤在尽可能接近该周期结束点时执行。第五步骤中,检查结果数据 集计算出来之后,计算所依据的数据是否已经改变了。这种改变可以是在结果 数据集计算过程中已经考虑进去了的各个数据的改变,或者是增加了新数据。 如果确定所依据的数据发生了改变,原先计算出来的结果数据集便不再是正确 的,将会执行修正,特别情况下将会执行重算,以便将数据的改变考虑进去。
本发明的数据处理方法实现了对某周期结束时出现的大量结果数据集的 计算的修正,并同时可以保证该周期结束时的结果数据集是基于最新的数据计 算出来的。
根据本发明的介绍,还存在多种可能以优选方式对本发明的方案进行设计 和进一步改进。对此,可参见从属于权利要求1的各项权利要求。以下将结合
银行部分的应用描述几个优选实施例。


附图中
图1是银行应用的一部分的示意图; 图2是计算结果数据集的时序示意图。
具体实施例方式
图1所示为银行的数据处理部分的示意图。该数据处理包括每天由银行应 用程序1提供给中央计算机2的数据(数据流箭头3所表示)的处理。这些数据 是与工作日内执行的业务处理相关的信息,可以是与柜台业务、股票市场交易、 支付交易、自动提款机上的交易、或PC执行的电话交易相关的信息。所有这
些信息首先收集在中央计算机2上,并由所谓的记帐准备程序(booking preparation) 4进行处理。随后,进一步由其它软件模块对该数据进行处理; 例如,将该数据在记帐馈送器(图中未示出)内进行预加工,以便后续程序对 其进行处理。进一步处理中,例如,将各个交易执行的信息输入表格"业务/ 交易"5中。紧跟着执行"定价"6,计算针对各个交易所发生的银行收取的 费用,并将其作为另一个交易提交以记入帐户内。每个周期结束时针对该帐户 的报表,只能在该周期内发生的所有记帐事项(包括定价记帐)均已记入帐户 时执行。对应周期内的定价记帐事项将取决于该周期内发生的"正常"记帐事 项。
每天提供给中央系统2的数据的处理只有在晚上所有业务或交易已经执 行且对应的数据己经传送给集中管理帐户的中央计算机系统2时才能执行。对 于这些数据的处理,有指示其必须在当天进行记帐或必须分别输入合适的数据 库"业务"、"位置"内。 一方面,各个记帐事项将在当天执行,以使所有的结 算余额在下一天都是最新的。另一方面,避免了大量数据的汇集,若大量数据 汇集在一起将会导致链路中数据堵塞。由于各个处理步骤之间相互关联,在处 理过程中必须保持预定的顺序,并且只能使用很有限的时隙, 一个工作日内所
有数据的整个处理的时间性是非常关键的。
这种数据的处理以所谓的作业(job)来执行。在大型银行的具体示例中, 需要处理大约一百万个这样的作业。
处理每天需要处理的数据外,特定周期结束时还会产生其它数据处理。因 此,例如,在一个月、 一个季度或一年结束时,需要计算出针对各个帐户或存 折的报表,其将在后面以帐目的方式汇总出来。法律规定,所有的客户帐户都 必须在年终整理好。
针对帐户的报表的计算部分地由处理每天从银行应用程序1传送到大型 计算机系统2的数据的过程中所使用的软件模块来执行。因此, 一段周期结束 时银行针对帐户管理所收取的费用将由例如定价软件模块6来计算。
这些报表一方面要求计算必须在某周期结束时完成。另一方面,在计算对 应报表时,需要将该周期结束前针对该帐户所执行的所有交易全部考虑进去。 因此,帐户报表的计算必须尽可能在该周期实际结束时执行。跟日常发生的交 易数据的处理一样,在计算报表时,必须执行的计算的各个步骤之间也相互关 联。因此,在作为交易记入帐户之前,且在周期结束时总的结余计算出来之前, 利息金额需要记入结余,并且银行的收费需要计算出来。
在一个周期结束时,除了每天需要计算的交易数据外,还需要执行帐户报 表的计算,其在后续介绍中被称为结果数据集。
以大型银行为例来说,在年终计算报表时大约有一千万个作业发生,因而 计算这些结果数据集所产生的负荷是日结处理负荷的十倍。
为了在一天内处理完这些负荷,需要预留相当大量的计算能力,这些计算 能力只是在一个周期结束时才会用到,大部分时间内都未被使用。这是不经济 的。实践中,然而,问题会更加恶化,因为针对报表执行的计算以及日常数据 的处理涉及相同的帐户,并且部分必须由同时用于日结处理的软件模块来执 行。结果,报表的计算不能孤立于日结处理来考虑。
使用本发明的数据处理方法的步骤便可能解决这一时间问题。
第一步骤中,确定在即将结束的周期内计算结果数据集所需的时间跨度。 该时间跨度终止于该即将结束的周期结束时,因为帐户报表,即所有的结果数
据集,需要在那个时间点正确地计算出来。由于帐户报表的计算必须在该周期 内执行,通过该时间跨度的长度,便可确定帐户报表计算的开始时间点。实践 中,该时间跨度可确定为待计算的帐户报表的数量与每个报表计算所需时间的 乘积,而每个报表计算所需的时间为经验值或估计的值。
第二歩骤中,计算所依据的数据的改变的可能性的确定取决于,根据经验, 很少有交易发生在大量的帐户上,因而日常交易仅需记入少量的帐户内。这样 的话,对于储蓄帐户,没有到其它帐户的直接转帐,没有股票市场交易,并且 只有相对较小的结余,便会只有非常少的交易。但是,随着结余增加,根据经 验,交易次数也会增加。此外,对于保持为活期帐户但并不用于支付交易的帐 户,发生的交易次数将会稍微高些。这种情况下,还是要区别为某帐户是否发 放了信用卡。如果没有发放信用卡,发生交易的次数将少一些。根据经验,必 须在某周期结束时记入帐户的大部分帐户变动,都是因工资支付到帐引起的, 因为工资通常都是在月末支付的。
因此,大量各种类型的帐户并未用于执行日常支付,因而很少有变动。此 外,有些帐户可以真正地用于大量的交易,但实际上发生的交易很少,因为帐 户持有者没有利用这种可用的可能性。最后,根据经验,有些帐户即使在月末 和一个周期结束时,也定期地记入交易。
对于某些类型的帐户和某些类型的帐户持有者,一个周期结束前短时间内 发生改变的可能性非常小,然而对于其它一些帐户,在周期的最后一天记入交 易的可能性也许非常高。
为了确定在计算报表之后需要将交易记入帐户以及从而使计算结果数据 集所依据的数据在该计算时间点之后发生改变的可能性, 一方面,需要参考前 面通过示例给出的标准。另一方面,还要参考过去针对该帐户发生的交易的统 计值,并通过数学方法准确的估算出来,这样便可确定出可能性而不用考虑帐 户的类型或该帐户是否发放了信用卡。
本方法的时序将在以下结合图2给出描述。
设一段周期的结束点为时间坐标8上的时间点9 t=TQ。由于结果数据集即 帐户报表的计算必须先于实际周期结束点91=丁。之前一段时间执行,用于计算
所有报表即所有结果数据集所需的时间跨度10需要预先计算出来,其中该时
间跨度10的结束点与该周期的结束点9 一致。此处假设时间跨度的长度为n
天。实践中,时间跨度为估计值,包括可用数据库存的量、对过去的月结、季 度结算、年度结算处理所需时间的统计值以及安全因子。结果数据集的计算最
迟从该时间跨度起始点开始,即在时间点t=T。-n开始。
随后,针对需要计算结果数据集的所有帐户,将在计算该结果数据集时所 依据的数据,从对结果数据集的计算时间到周期结束点之前的这段时间内发生 改变的可能性计算出来。这样的改变可以是针对该帐户上发生的任何类型的业 务处理。需要考虑的是,各个报表或结果数据集的计算与该周期的结束点之间 的时间跨度是不同的,因为这些结果数据集不是同时计算的,而是依次计算的。 所确定的所有结果数据集均能被计算出来的时间跨度10可分割成更小的时间 段10a、 10b等,针对这些时间段,需要确定出计算所依据的数据发生改变的 可能性。
只要计算所依据的数据未发生改变,在周期结束之前计算出的结果将保持 正确。因此,所确定的报表计算所依据的数据发生改变的可能性也就是计算出 的报表在周期结束点9不再正确的可能性。
第三歩骤中,计算出结果数据集。作为优选,将确定为具有相同或几乎相 同的改变可能性的这些待计算的结果数据集组合起来形成一组,从而可在一个 时间段内(一次程序运行,又称为批量运行(batch run))计算出这样的一组 结果数据集。结果数据集的计算开始于时间跨度10内的对应时间段10a、 10b、 10c的起始点。实践中,因为某些现实原因,形成的结果数据集群组与时间跨 度所分割的时间段一样多,其中每个时间段可以是一天。在时间跨度10内的 每一天10a、 10b、 10c,计算出一组结果数据集。在此计算过程中,首先计算 出所依据数据的改变可能性最小的那些结果数据集,并且随后即使在周期结束 点9也将进行最大可能的修正。然后,在时间跨度结束时计算出那些所依据数 据的改变可能性高的结果数据集,从而离该周期的结束点只有很小的时间间 隔。这种计算结果数据集的顺序可以确保结果数据集因所依据的数据在计算完 成之后、周期结束之前发生改变而不再正确的可能性最小。
计算结果数据集的过程中,还需要进一步确保计算基础在该时间内未改 变。计算过程中需要将所有的银行内部的变量考虑进去,例如那些用于计算银 行收费的变量(称为定价),在计算出报表之后都不能再发生改变。还必须保证 在计算出结果数据集即报表的时间点上没有正好针对该帐号记入一个交易。两 次计算的重叠会导致针对该帐号的某个交易被记入交易数据日常处理的范围 内,而未包含在结果数据集即报表的计算中。
下一步骤中,将计算出的结果数据集存储在为此提供的最后一项(fmal provisum)内。这就意味着,结果数据集在周期结束前被记入帐户。考虑到报 表的计算在时间上有所提前,需要区分记帐日和起息日,以便在周期结束前计 算出储蓄帐户的到期利息并已经记入帐户,但是起息只从该周期结束点开始。
最后一个步骤中,确定计算结果数据集所依据的数据是否在该结果数据集 计算出来之后实际发生了改变。这一歩骤通常在周期结束之前的很短时间内执 行,最理想的是在周期结束前的最后一天内的所有交易都已经记入帐户时执 行,从而排除了数据再发生改变的情形。
针对每一个结果数据集通常都需要确定计算该结果数据集所依据的数据 在计算完成之后是否发生了改变。本发明优选设计为,计算出结果数据集之后 记入帐户的所有交易除了记入该帐户之外,还写入表格中。在即将结束的周期 的最后一天,这一天的所有交易均己经记入各自帐户内之后,该表格将包含有 改变了计算所依据的数据的所有交易。将其实现的一种可能是,例如,对将该 交易记入帐户的软件模块作相应修改,以便这些软件模块将对已计算出来的报 表进行修正所需的数据写入该表格内。或者,由数据库触发器来执行这一功能, 该数据库触发器被配置为其自己对数据库表格执行特定动作。然后在最后一个 步骤中,数据库触发器通过这个表格可以更容易确定需要对哪些报表执行修 正,即哪些结果数据集需要重算或修正。以大型银行为例来说,实际的检査是 依据第三变量执行的。当所有结果数据集被计算出来并且这一天的所有交易已 经在即将结束的周期的最后一天内处理完之后,即日结处理已经完成之后,启 动一个软件模块来执行检査,并在检査到结果数据集计算所依据的数据发生了 改变时,触发数据集的重算。该软件模块将针对每个帐户,利用存储有所有交
易的表格,检查在相关的第一结果数据集计算出来之后是否交易均已记入对应 的帐户。该表格包含有至少即将结束的周期内的所有交易,即,其不仅仅只在 计算结果数据集的时间跨度期间被保存。
如果确定某结果数据集因计算所依据的数据发生变化而不再正确,将计算 考虑了数据的改变的修正值。数据集的修正可通过如下优选方式来执行首先, 将不再有效的结果数据集作废,即标记为无效的;然后,基于该周期内的所有 数据计算出新的结果数据集。这种方式的优点在于,被作废并标记为无效的结 果数据集无需传送给帐户持有者,因为重算出来的结果数据集本身是合理的, 并且无需之前的结果数据集也是可以理解的。
以大型银行为例,在对结果数据集进行修正的情况下,实际上只有较晚计 算出来的并且正确的结果数据集对于帐户持有者来说是可见的。然后,作废的 结果数据集并未从帐户中删除,其被标记为无效的,因而带有标记表示这一结 果数据集不显示给帐户持有者。供帐户持有者査看其帐户的帐目的应用程序, 例如运行帐户报表打印机的软件模块,或供帐户持有者通过电子银行访问其帐 户的因特网服务器,可从该标记识别出该结果数据集将不显示出来。
本发明的数据处理方法实现了对结果数据集的计算的时间的预测,并确保 了周期结束前仍然发生的所有交易均被考虑进去。通过确定计算所依据的数据 发生改变的可能性,可以优化计算的顺序,以便仅需对尽可能少的结果数据集 进行修正。同时,实现了结果数据集在尽可能接近实际周期结束点时进行计算, 从而使计算机系统的计算负荷最小化,并避免了预留计算能力的浪费。
权利要求
1、一种用于对一段周期结束时的大量结果数据集进行时间最优计算的数据处理方法,其中所述计算是基于该周期结束前可改变的数据进行的,所述数据处理方法包括至少如下步骤(1)确定待考虑的数据的时间跨度;(2)针对每个结果数据集,检测对应结果数据集的计算所依据的数据在结果数据集的计算与所述周期的结束点之间发生改变的可能性;(3)在所述时间跨度内计算所述结果数据集,其中,计算所依据的数据具有较小改变可能性的那些结果数据集的计算先于计算所依据的数据具有较高改变可能性的那些结果数据集进行;(4)存储所述结果数据集;(5)针对每个结果数据集,在所述周期结束前的一段很短时间内,检测计算所述结果数据集所依据的数据是否在计算出所述结果数据集之后发生了改变,并在发生了改变时为对应结果数据集计算修正值,特别情况下执行重算。
2、 根据权利要求1所述的数据处理方法,其特征在于,所述计算所依据 的数据由多个组组成,其中对于一组数据,预先确定出完全相同的改变可能性, 特别是预先几个时间跨度来确定。
3、 根据前述任一项权利要求所述的数据处理方法,其特征在于,结果数 据集计算所依据的数据发生改变的可能性基于统计值来确定。
4、 根据前述任一项权利要求所述的数据处理方法,其特征在于,结果数 据集的修正,特别是重算,对外部是不可见的。
5、 根据前述任一项权利要求所述的数据处理方法,其特征在于,所述结 果数据集是一段周期结束时的报表或结算帐目和/或收费帐目。
6、 根据前述任一项权利要求所述的数据处理方法,其特征在于,结果数 据集计算所依据的那些数据被标记为在对应数据集计算出来之后发生了改变。
7、 根据前述任一项权利要求所述的数据处理方法,其特征在于,结果数 据集计算出来之后,新增加的需要在对结果数据集进行修正特别是重算时考虑的数据被标记出来。
8、 根据前述任一项权利要求所述的数据处理方法,其特征在于,所述数 据处理是银行的计算和记帐。
9、 根据前述任一项权利要求所述的数据处理方法,其特征在于,计算过 程中,结果数据集标记有计算时间戳。
10、 一种具有程序代码段的计算机程序,当该程序在计算机上执行时,所述程序代码段用于执行前述任一项权利要求记载的方法步骤。
11、 根据权利要求io所述的具有程序代码段的计算机程序,其特征在于,所述计算机程序存储在计算机可读存储介质上。
全文摘要
本发明涉及一种用于对一段时间结束时的大量结果数据集进行时间最优计算的数据处理方法,其中所述数据为用作计算的基础数据。为了最优使用计算机系统的计算能力,所述方法包括(1)确定考虑基础数据的一段时间(10);(2)针对每个结果数据集,确定基础数据在结果数据集计算时间与该时间段结束点(9)之间发生改变的可能性;(3)在该时间段(10)内计算结果数据集,数据具有低改变可能性的结果数据集的计算先于数据具有高改变可能性的结果数据集进行;(4)记录结果数据集;(5)针对每个结果数据集,在时间段结束点(9)前很短时间内确定基础数据项是否在计算后发生了改变,并在改变时为对应结果数据集计算修正值,特别情况下重新计算。
文档编号G06Q40/00GK101189632SQ200680014485
公开日2008年5月28日 申请日期2006年3月29日 优先权日2005年5月2日
发明者汉斯比特·洛克, 马库斯·维特利斯贝施 申请人:瑞士联合银行集团
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1