一种大数据存储方法和系统与流程

文档序号:14990887发布日期:2018-07-20 22:12阅读:132来源:国知局

本发明涉及数据存储技术领域,特别是涉及一种大数据存储方法和系统。



背景技术:

目前绩效考核系统是银行重点建设的信息系统之一,对银行的发展极具战略意义。银行每天产生的日常业务数据非常庞大,因此银行如何建立一个高性能、高容量、灵活伸缩扩展、自动归档数据的数据存储机制非常重要。现有银行绩效系统的数据存储普遍存在如下缺点:1、存储的单表业务数据量大,查询效率非常慢,不能快速响应业务请求;2、存储的数据没有历史记录机制,无法查看以往时点状态的数据,只能查看当前最新的业务数据;3、没有临时使用机制,每次需要关联查询多个业务表,导致查询逻辑复杂,效率低下;4、不能快速查询任意维度的汇总数据,只能从帐户粒度的大量数据表进行汇总查询;5、没有归档逻辑,表数据量持续增长,导致最后无法访问;6、不能按业务重要性进行数据快速备份、恢复;7、不能针对性的对高频数据,大表进行内存优化。



技术实现要素:

为了克服现有技术存在的银行系统还没有一个高性能、高容量、灵活伸缩扩展、自动归档数据的数据存储机制不足,本发明提供了一种大数据存储方法和系统。

本发明解决其技术问题所采用的技术方案是:

一种大数据存储方法,包括:将源表中的当前最新的数据存储在当前快照表中;将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中;将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中;根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中。

优选地,将源表中的当前最新的数据存储在当前快照表中的步骤包括:将当前快照表的数据设置第一标识;将源表的数据设置第二标识,且所述源表的数据存在于当前快照表中;将所述第一标识和第二标识进行关联。

优选地,将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中的步骤包括:删除历史拉链表中的旧数据,修改预设结束日期;或者在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断;若历史拉链表中没有数据时,将当前快照表的所有数据导到历史拉链表中,确定起始日期为统计日期;若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断;若历史拉链表中没有数据,将存在于当前快照表的数据,从当前快照表直接导到历史拉链表,并确定起始日期为统计日期。

优选地,在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断的步骤包括:将历史拉链表的中数据的起始日期小于统计日期的数据的预设结束日期修改为统计日期的前一天;将当前快照表的所有数据导到历史拉链表,起始日期为统计日期。

优选地,若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断的步骤包括:将修改历史拉链表中数据的预设结束日期为统计日期的前一天;将当前快照表的数据导到历史拉链表,起始日期确定为统计日期。

优选地,将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中的步骤包括:获取统计日期当天的当前快照表或者历史拉链表中的所有数据,对所述数据进行业务逻辑运算,并保存到过渡临时表中。

一种大数据存储系统,包括:当前快照表存储单元、历史拉链表存储单元、过渡临时表存储单元和总账压缩表存储单元;所述当前快照表存储单元,用于将源表中的当前最新的数据存储在当前快照表中;所述历史拉链表存储单元,用于将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中;所述过渡临时表存储单元,用于将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中;所述总账压缩表存储单元,用于根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中。

优选地,所述当前快照表存储单元,还用于将当前快照表的数据设置第一标识;将源表的数据设置第二标识,且所述源表的数据存在于当前快照表中;将所述第一标识和第二标识进行关联。

优选地,所述历史拉链表存储单元,还用于删除历史拉链表中的旧数据,修改预设结束日期;或者在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断;若历史拉链表中没有数据时,将当前快照表的所有数据导到历史拉链表中,确定起始日期为统计日期;若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断;若历史拉链表中没有数据,将存在于当前快照表的数据,从当前快照表直接导到历史拉链表,并确定起始日期为统计日期。

优选地,在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断的步骤包括:将历史拉链表的中数据的起始日期小于统计日期的数据的预设结束日期修改为统计日期的前一天;将当前快照表的所有数据导到历史拉链表,起始日期为统计日期;若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断的步骤包括:将修改历史拉链表中数据的预设结束日期为统计日期的前一天;将当前快照表的数据导到历史拉链表,起始日期确定为统计日期。

本发明的有益效果是:本发明的大数据存储方法通过将源表中的当前最新的数据存储在当前快照表中,这样可以快速响应查询服务请求;将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中,实现对历史任意时间点的数据查询;将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中,用于系统当前反复统计使用,提高系统统计效率,降低逻辑难度;根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中,用于系统快速统计不同业务维度的数据,这样将大数据按照不同需要进行分割存储,能够很大程度上提供存储性能,提高工作人员的工作效率。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1为一实施例的大数据存储方法的示意性流程图。

图2为一实施例的将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中的示意性流程图。

图3为一实施例的大数据存储系统的示意性结构图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

实施例1

参见图1-2,一种大数据存储方法,包括:

s11,将源表中的当前最新的数据存储在当前快照表中;步骤s11包括:将当前快照表的数据设置第一标识;将源表的数据设置第二标识,且所述源表的数据存在于当前快照表中;将所述第一标识和第二标识进行关联。

需要说明的是,每个表数据中每条记录都有一个唯一标识。本方案主要应用在金融it的绩效考核领域,为对绩效考核数据存储的一种机制。源表是银行下发的数据。

s12,将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中;步骤s12包括:删除历史拉链表中的旧数据,修改预设结束日期;具体实现逻辑如下:

a、当历史拉链表中所有数据记录的最大的起始日期早于或者等于统计日期时,删除历史拉链表中所有起始日期早于或者等于统计日期的数据记录。

b、当历史拉链表中有数据时,修改历史拉链表中统计日期介于起始日期和预设结束日期的数据,而且预设结束日期不等于29991231的数据修改其预设结束日期为29991231。

其中,拉链表原理:预设结束日期不等于29991231时,时间拉链表中的数据用起始日期、预设结束日期标识这条数据的有效时间。如果一条记录是一直有效的,预设结束日期就取一个较大的时间,默认为29991231。例如:在20180207号,某某的口袋钱包有100块,则记录是20180207~29991231,余额100,如果过3天后(20180211)某某用了50块,则表中有两条记录:20180207~20180210,余额100块;20180211~29991231,余额50块。通过这样的拉链记录,某某就知道任意一天,某某的口袋是多少钱。

需要时说明是,时间拉链方式即为时间顺序方式。在本实施例中,预设结束日期设置为29991231。

或者步骤s12还包括:

s121,判断统计日期是否为年初;若是,则执行步骤s122,若否,则执行步骤s125。在本实施例,年初设置为1月1号。

s122,判断历史拉链表中是否数据;若是则执行步骤s123,若否,则执行步骤s124。

s123,则对所述数据进行截断;更进步一地,步骤s123包括:将历史拉链表的中数据的起始日期小于统计日期的数据的预设结束日期修改为统计日期的前一天;将当前快照表的所有数据导到历史拉链表,起始日期为统计日期,预设结束日期为29991231,其他变化字段取自当前快照表。

s124,将当前快照表的所有数据导到历史拉链表中,确定起始日期为统计日期,预设结束日期为29991231;

s125,判断历史拉链表中是否有数据;若是,则执行步骤s126,若否,则执行步骤s127.

s126,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断;更进一步地,步骤s126包括:将修改历史拉链表中数据的预设结束日期为统计日期的前一天,其他字段不变;将当前快照表的数据导到历史拉链表,起始日期确定为统计日期,结束日期为29991231,其他字段不变;。

s127,将存在于当前快照表的数据,从当前快照表直接导到历史拉链表,并确定起始日期为统计日期,结束日期为29991231,其他字段不变。

s13,将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中;步骤s13包括:获取统计日期当天的当前快照表或者历史拉链表中的所有数据,对所述数据进行业务逻辑运算,并保存到过渡临时表中。每次清除临时表内容,临时表主要从拉链表或其他大的数据表中获取当天的数据,供后续其他程序重复使用。比如:

当前快照表、时间拉链表中存储的是比较原始的数据,一些复杂的业务逻辑在过渡临时表中统计。举例,时间拉链表中记录了你钱包中人民币100元,美元100元,而业务需求要统计你一共有多少资产,则在过渡临时表中进行运算,100元人民币+800元人民币(美元折算后)=900元人民币

s14,根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中。清除统计日期当天的总账压缩表。

本方案的大数据存储方法通过将源表中的当前最新的数据存储在当前快照表中,这样可以快速响应查询服务请求;将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中,实现对历史任意时间点的数据查询;将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中,用于系统当前反复统计使用,提高系统统计效率,降低逻辑难度;根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中,用于系统快速统计不同业务维度的数据,这样将大数据按照不同需要进行分割存储,能够很大程度上提供存储性能,提高工作人员的工作效率。

实施例2

参见图3,一种大数据存储系统,包括:当前快照表存储单元1、历史拉链表存储单元2、过渡临时表存储单元3和总账压缩表存储单元4;所述当前快照表存储单元1,用于将源表中的当前最新的数据存储在当前快照表中;所述历史拉链表存储单元2,用于将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中;所述过渡临时表存储单元3,用于将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中;所述总账压缩表存储单元4,用于根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中。

在本实施例,所述当前快照表存储单元1,还用于将当前快照表的数据设置第一标识;将源表的数据设置第二标识,且所述源表的数据存在于当前快照表中;将所述第一标识和第二标识进行关联。

在本实施例,所述历史拉链表存储单元2,还用于删除历史拉链表中的旧数据,修改预设结束日期;或者在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断;若历史拉链表中没有数据时,将当前快照表的所有数据导到历史拉链表中,确定起始日期为统计日期;若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断;若历史拉链表中没有数据,将存在于当前快照表的数据,从当前快照表直接导到历史拉链表,并确定起始日期为统计日期。

在本实施例,在统计日期为年初时,若历史拉链表中有数据时,则对所述数据进行截断的步骤包括:将历史拉链表的中数据的起始日期小于统计日期的数据的预设结束日期修改为统计日期的前一天;将当前快照表的所有数据导到历史拉链表,起始日期为统计日期;

若统计日期不为年初时,若历史拉链表中有数据,总历史拉链表中结束日期等于预设结束日期,且其起始日期小于统计日期的数据关联到当前快照表,并进行数据截断的步骤包括:将修改历史拉链表中数据的预设结束日期为统计日期的前一天;将当前快照表的数据导到历史拉链表,起始日期确定为统计日期。

上述大数据存储方法适用所述大数据存储系统,在此不再一一赘述。

本方案的大数据存储系统通过当前快照表存储单元将源表中的当前最新的数据存储在当前快照表中,这样可以快速响应查询服务请求;历史拉链表存储单元将所述当前快照表中当天变动的数据按照时间拉链方式存储在历史拉链表中,实现对历史任意时间点的数据查询;过渡临时表存储单元将历史拉链表中当天公共的业务数据汇总存储在过渡临时表中,用于系统当前反复统计使用,提高系统统计效率,降低逻辑难度;总账压缩表存储单元根据业务需求,对过渡临时表中的数据进行不同维度的组合并存储在总账压缩表中,用于系统快速统计不同业务维度的数据,这样将大数据按照不同需要进行分割存储,能够很大程度上提供存储性能,提高工作人员的工作效率。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1