CN106201780A - 一种历史数据还原方法 - Google Patents
一种历史数据还原方法 Download PDFInfo
- Publication number
- CN106201780A CN106201780A CN201610539693.0A CN201610539693A CN106201780A CN 106201780 A CN106201780 A CN 106201780A CN 201610539693 A CN201610539693 A CN 201610539693A CN 106201780 A CN106201780 A CN 106201780A
- Authority
- CN
- China
- Prior art keywords
- version
- data
- time
- business
- force
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000009467 reduction Effects 0.000 title abstract description 12
- 238000013499 data model Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 7
- 230000002123 temporal effect Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种历史数据还原方法,其实现过程为:首先创建模型结构,该模型结构包括当前数据模型和历史数据模型两个模型,分别记录数据的当前和历史版本;设置数据生成规则,通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动;设置数据还原方式,指定初始版本生效时间之后的时间点,确定一个唯一的版本,当指定时间为相邻版本的临界时间时,则选取较新版本。本发明的一种历史数据还原方法与现有技术相比,可使常用的当前版本查询简单和高效,并保证历史版本的连续和业务联动的可靠,支持了基于时间轴的查询统计,也使基于历史数据的业务成为可能。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种历史数据还原方法。
背景技术
传统的企业管理软件中,多以当前业务数据为核心,不保存历史数据,或模型结构不合理,导致历史数据混乱,还原困难且不准确,也使得基于历史数据的业务需求无法支持。基于此,本发明提供一种历史数据还原方法,该方法可使历史版本的连续和唯一有效得以保证,同时不影响基于当前数据的功能简单、高效的获取当前数据,并为做未来业务的需求提供结构上的支持。
发明内容
本发明的技术任务是针对以上不足之处,提供一种历史数据还原方法。
一种历史数据还原方法,其实现过程为:
步骤一、首先创建模型结构,该模型结构包括当前数据模型和历史数据模型两个模型,分别记录数据的当前和历史版本,其中历史版本包括当前版本,在两种模型结构中,均记录版本有效的起止时间、使版本生效的业务编号、使版本失效的业务编号;
步骤二、设置数据生成规则,通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动;
步骤三、设置数据还原方式,指定初始版本生效时间之后的时间点,确定一个唯一的版本,当指定时间为相邻版本的临界时间时,则选取较新版本。
所述当前数据模型记录业务数据的当前状态,基于当前数据的业务通过该模型获取数据;
历史数据模型记录数据的历史版本及版本有效的时间区间,基于历史数据的业务和查询通过该模型取数;
历史数据模型的数据外键关联当前数据模型数据,两个模型除外键外的其他字段在编号、类型、业务含义方面保持完全一致。
所述步骤二中的数据生成规则具体指:同一条数据在同一个时间只生成唯一一个版本,且每个版本的生效时间、生效业务编号不空;相邻版本中,新版本的生效时间与旧版本的失效时间相同,新版本的生效业务编号与旧版本的失效业务编号相同。
所述数据步骤二中通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动具体指:
数据模型记录了各版本的生效时间、失效时间;当前生效版本的生效时间早于或等于当前时间,失效时间晚于且不等于当前时间;持续生效的版本结束时间为为空或其他由业务***规定的延续到未来的时间标志;
相邻历史版本的时间连续,旧版本失效时间与新版本生效时间相等;指定从最初版本创建时间到当前的时间点,可以获取唯一历史版本;指定时间为相邻版本的临界时间时,取较新版本;通过该规则,可以实现基于时间轴的历史查询和统计;
数据模型记录了使该版本生效的业务编号和使该版本失效的业务编号,这里生效及失效的业务编号均为唯一编码;相邻版本中,新版本生效的同时旧版本失效,即新版本的生效业务编号与旧版本的失效业务编号相同。
本发明的一种历史数据还原方法和现有技术相比,具有以下有益效果:
本发明的一种历史数据还原方法本发明以两个数据模型分别记录数据的当前和历史版本,满足不同场景需求;以业务属性规定的规则和数据结构保证版本连续和与其他业务的联动;提供历史数据还原的参考方式;可以支撑未来业务的应用场景,实用性强,提供了一种保存历史业务数据的结构标准,使常用的当前版本查询简单和高效,并保证历史版本的连续和业务联动的可靠;它提供了一种历史数据的简单还原方式,支持了基于时间轴的查询统计,也使基于历史数据的业务成为可能;适用范围广泛,易于推广。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
本发明的一种历史数据还原方法,其实现过程为:
步骤一、首先创建模型结构,该模型结构包括当前数据模型和历史数据模型两个模型,分别记录数据的当前和历史版本,其中历史版本包括当前版本,在两种模型结构中,均记录版本有效的起止时间、使版本生效的业务编号、使版本失效的业务编号;
步骤二、设置数据生成规则,通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动;
步骤三、设置数据还原方式,指定初始版本生效时间之后的时间点,确定一个唯一的版本,当指定时间为相邻版本的临界时间时,则选取较新版本。
在上述步骤中,本发明以两个数据模型分别记录数据的当前和历史版本,满足不同场景需求:
当前数据模型和历史数据模型分别存储当前和历史版本,历史版本中也包含了当前版本;
当前数据模型记录业务数据的当前状态,基于当前数据的业务以该模型获取数据,速度优于历史模型取数;
历史数据模型记录数据的历史版本及版本有效的时间区间,基于历史数据的业务和查询以该模型取数;
历史模型的数据外键关联当前模型数据;两个模型的其他字段在编号、类型、业务含义等各方面保持完全一致。
以业务属性规定的规则和数据结构保证版本连续和与其他业务的联动:
数据模型记录了各版本的生效时间、失效时间;当前生效版本的生效时间早于(或等于)当前时间,失效时间晚于(且不等于)当前时间;持续生效的版本结束时间为2199-12-31(或为空,或其他由业务***规定的延续到未来的时间标志);
相邻历史版本的时间连续,旧版本失效时间与新版本生效时间相等;指定从最初版本创建时间到当前的时间点,可以获取唯一历史版本;指定时间为相邻版本的临界时间时,取较新版本;通过该规则,可以实现基于时间轴的历史查询和统计;
数据模型记录了使该版本生效的业务编号(唯一编码)和使该版本失效的业务编号(唯一编码);相邻版本中,新版本生效的同时旧版本失效,即新版本的生效业务编号与旧版本的失效业务编号相同;
有效时间区间的连续和业务编号的串联保证了版本的连续,业务编号保证了与其他业务联动的稳定,并为业务回滚提供依据。
提供历史数据还原的参考方式:
基于当前数据模型取数的或由数据引擎生成的复杂取数sql,可以直接将其中的当前模型替换为历史模型而不会产生sql错误,添加业务时间条件即实现了指定时间的历史数据获取,该方法对前台界面不产生影响,避免维护历史和当前两套引擎和界面;
当上述方式不能满足需求时,需总结其他符合需求的数据还原方式,业务场景和模型结构不同,方式不尽相同,案例中将提供另一种实现方式。
可以支撑未来业务的应用场景:
若***在保证历史模型时间连续等基本特征不变的前提下,允许产生未来(即生效时间在当前时间之后)的版本,在调度任务等帮助下,即可使用上述特性实现对“未来业务”的支撑。
实施案例:人员任职历史还原。
创建严格的模型结构,历史模型外键关联当前模型,其他字段保持一致,模型记录版本有效的起止时间、使版本生效的业务编号、使版本失效的业务编号:
任职当前模型:
字段编号 | 字段名称 | 字段类型 | 说明 |
ID | 内码 | Varchar(36) | 主键 |
ParentNM | 人员内码 | Varchar(36) | 人员内码 |
BeginTime | 开始日期 | DateTime | 版本生效时间 |
EndTime | 结束日期 | DateTime | 版本失效时间 |
UnitId | 单位 | Varchar(36) | 人员单位 |
DepartId | 部门 | Varchar(36) | 人员部门 |
PositionId | 职位 | Varchar(36) | 人员职位 |
JobId | 职务 | Varchar(36) | 人员职务 |
CreatePcId | 创建单据内码 | Varchar(36) | 使版本生效的业务编号 |
EndPcId | 结束单据内码 | Varchar(36) | 使版本失效的业务编号 |
ModifyTime | 修改时间 | DateTime | 时间戳 |
任职历史模型:
字段编号 | 字段名称 | 字段类型 | 说明 |
ID | 内码 | Varchar(36) | 主键 |
SrcPostDoc | 所属任职 | Varchar(36) | 记录与当前模型关联 |
ParentNM | 人员内码 | Varchar(36) | 人员内码 |
BeginTime | 开始日期 | DateTime | 版本生效时间 |
EndTime | 结束日期 | DateTime | 版本失效时间 |
UnitId | 单位 | Varchar(36) | 人员单位 |
DepartId | 部门 | Varchar(36) | 人员部门 |
PositionId | 职位 | Varchar(36) | 人员职位 |
JobId | 职务 | Varchar(36) | 人员职务 |
CreatePcId | 创建单据内码 | Varchar(36) | 使版本生效的业务编号 |
EndPcId | 结束单据内码 | Varchar(36) | 使版本失效的业务编号 |
ModifyTime | 修改时间 | DateTime | 时间戳 |
编写严谨的数据引擎方法,并保证所有对任职版本的操作全部通过该方法实现,方法中规定了严格的数据规则,如同一任职在一天内不允许生成多个版本(任职的版本生效时间精确到天),任职变更(生成新版本)必须指定生效时间、创建单据内码等,并规定了相关业务规则和校验;
有效的数据还原方式。关键数据结构如下:
人员基本信息:记录人员自然信息并冗余了任职相关信息,与人员任职信息是一对多的数据关系;
人员任职信息:记录人员当前的任职状态;
人员任职历史:任职信息的历史版本模型;
人员信息查询以“人员基本信息”为取数模型,还原历史任职时需要从“人员任职历史”中获取数据,两个模型的业务字段重复(单位、部门、职位等),前台界面以“人员基本信息”为取数模型。
***采用以下方式实现历史还原:
“人员基本信息”与“人员任职信息”重复的业务字段建立映射关系;
使用数据引擎获取模型取数的原始sql结构;
将上述结构分部分处理:
select部分根据上述映射替换为“人员任职历史”的字段;from部分添加与“人员任职历史”的关联,并将原模型中与业务字段的关联替换为与“人员任职历史”中业务字段的关联,关联表的别名保持不变;where部分添加业务时间条件;整合完成后获取(或通过数据引擎方法获取)数据。
基于上述方法以及实例可知,本发明中采用严格的数据模型结构:数据模型记录版本的生效时间、失效时间、使版本生效的业务编号、使版本失效的业务编号;采用严格的数据生成规则:同一条数据在同一个时间不允许生成多个版本;每个版本的生效时间、生效业务编号不空;相邻版本中,新版本的生效时间与旧版本的失效时间相同,新版本的生效业务编号与旧版本的失效业务编号相同;采用严谨且唯一的数据引擎方法:编写严谨的数据引擎方法,具有严格的数据校验和稳定的数据处理;确保所有对版本的处理全部通过上述引擎方法完成,而不是相关业务点各自处理版本数据;采用有效的数据还原方式:指定初始版本生效时间之后的时间点,可以唯一确定一个版本,指定时间为相邻版本的临界时间时,获取较新版本。
基于上述原则实现历史数据的还原,方法逻辑清晰且具有一定通用性。
本发明提供了一种基于时间轴的历史数据还原的方式,以此可以支持其他基于历史数据的业务,是一种具有很好推广价值的模型设计规范和数据查询技巧。
通过上述方式实现了人员任职还原的业务需求。所以不同的数据结构和业务场景下,使用的还原方式不尽相同,但需保证逻辑清晰,在业务***中具有通用性。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (4)
1.一种历史数据还原方法,其特征在于,其实现过程为:
步骤一、首先创建模型结构,该模型结构包括当前数据模型和历史数据模型两个模型,分别记录数据的当前和历史版本,其中历史版本包括当前版本,在两种模型结构中,均记录版本有效的起止时间、使版本生效的业务编号、使版本失效的业务编号;
步骤二、设置数据生成规则,通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动;
步骤三、设置数据还原方式,指定初始版本生效时间之后的时间点,确定一个唯一的版本,当指定时间为相邻版本的临界时间时,则选取较新版本。
2.根据权利要求1所述的一种历史数据还原方法,其特征在于,所述当前数据模型记录业务数据的当前状态,基于当前数据的业务通过该模型获取数据;
历史数据模型记录数据的历史版本及版本有效的时间区间,基于历史数据的业务和查询通过该模型取数;
历史数据模型的数据外键关联当前数据模型数据,两个模型除外键外的其他字段在编号、类型、业务含义方面保持完全一致。
3.根据权利要求1所述的一种历史数据还原方法,其特征在于,所述步骤二中的数据生成规则具体指:同一条数据在同一个时间只生成唯一一个版本,且每个版本的生效时间、生效业务编号不空;相邻版本中,新版本的生效时间与旧版本的失效时间相同,新版本的生效业务编号与旧版本的失效业务编号相同。
4.根据权利要求3所述的一种历史数据还原方法,其特征在于,所述数据步骤二中通过业务属性规定的规则和数据结构保证版本连续以及与其他业务的联动具体指:
数据模型记录了各版本的生效时间、失效时间;当前生效版本的生效时间早于或等于当前时间,失效时间晚于且不等于当前时间;持续生效的版本结束时间为为空或其他由业务***规定的延续到未来的时间标志;
相邻历史版本的时间连续,旧版本失效时间与新版本生效时间相等;指定从最初版本创建时间到当前的时间点,可以获取唯一历史版本;指定时间为相邻版本的临界时间时,取较新版本;通过该规则,可以实现基于时间轴的历史查询和统计;
数据模型记录了使该版本生效的业务编号和使该版本失效的业务编号,这里生效及失效的业务编号均为唯一编码;相邻版本中,新版本生效的同时旧版本失效,即新版本的生效业务编号与旧版本的失效业务编号相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610539693.0A CN106201780A (zh) | 2016-07-08 | 2016-07-08 | 一种历史数据还原方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610539693.0A CN106201780A (zh) | 2016-07-08 | 2016-07-08 | 一种历史数据还原方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106201780A true CN106201780A (zh) | 2016-12-07 |
Family
ID=57473397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610539693.0A Pending CN106201780A (zh) | 2016-07-08 | 2016-07-08 | 一种历史数据还原方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201780A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802928A (zh) * | 2016-12-26 | 2017-06-06 | 厦门亿力吉奥信息科技有限公司 | 电网历史数据管理方法及其*** |
CN111274226A (zh) * | 2020-01-20 | 2020-06-12 | 西安百想科技有限公司 | 一种实现业务通用历史数据管理的***及其方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101354713A (zh) * | 2008-09-08 | 2009-01-28 | 大唐软件技术股份有限公司 | 数据存储方法和*** |
CN105446828A (zh) * | 2014-09-30 | 2016-03-30 | 北京金山云网络技术有限公司 | 一种数据库备份、恢复方法、装置及*** |
-
2016
- 2016-07-08 CN CN201610539693.0A patent/CN106201780A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101354713A (zh) * | 2008-09-08 | 2009-01-28 | 大唐软件技术股份有限公司 | 数据存储方法和*** |
CN105446828A (zh) * | 2014-09-30 | 2016-03-30 | 北京金山云网络技术有限公司 | 一种数据库备份、恢复方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
刘校妍: "基于事件与版本管理的双基态修正模型", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802928A (zh) * | 2016-12-26 | 2017-06-06 | 厦门亿力吉奥信息科技有限公司 | 电网历史数据管理方法及其*** |
CN106802928B (zh) * | 2016-12-26 | 2020-10-09 | 厦门亿力吉奥信息科技有限公司 | 电网历史数据管理方法及其*** |
CN111274226A (zh) * | 2020-01-20 | 2020-06-12 | 西安百想科技有限公司 | 一种实现业务通用历史数据管理的***及其方法 |
CN111274226B (zh) * | 2020-01-20 | 2023-05-12 | 西安百想科技有限公司 | 一种实现业务通用历史数据管理的***及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102308297B (zh) | 一种数据迁移方法、数据迁移装置及数据迁移*** | |
CN105138635B (zh) | 一种利用哈希值比对进行数据增量复制的方法 | |
CN101937463B (zh) | 一种用于工作流模型的表单自动生成方法 | |
CN101706803B (zh) | 一种织造车间生产数据的迁移方法 | |
CN103412803B (zh) | 数据恢复的方法及装置 | |
DE602005000819T2 (de) | Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung | |
CN106599104A (zh) | 一种基于redis集群的海量数据关联方法 | |
CN100464334C (zh) | 应用于数据仓库的数据增量备份与恢复的方法 | |
CN103853820A (zh) | 一种数据处理方法及*** | |
CN102521225A (zh) | 增量数据抽取装置和增量数据抽取方法 | |
WO2004037994A3 (en) | Managing biological databases | |
CN103631596A (zh) | 业务对象数据录入及更新规则的配置装置和配置方法 | |
CN103180835B (zh) | 用于扩展无共享***的装置和方法 | |
CN108416043A (zh) | 多平台空间数据融合与同步方法 | |
CN104317944B (zh) | 一种基于公式的时间戳动态调整并发控制方法 | |
CN101790257A (zh) | 一种存储数据的方法和网管*** | |
CN102262758A (zh) | 基于cime文件的时空多维电网模型统一建模和管理方法 | |
EP1217547A2 (en) | Object integrated management system | |
CN108984744A (zh) | 一种非主链区块自增长方法 | |
CN108345684A (zh) | 基于多维度多指标体系的智能分析***及分析方法 | |
CN105224527A (zh) | 适用于多种目的表更新方式的通用etl方法 | |
CN106201780A (zh) | 一种历史数据还原方法 | |
CN103246753A (zh) | 一种根据数据库结构生成实体元数据模型的方法 | |
CN104573083B (zh) | 一种地图缓存服务自动更新方法 | |
CN105373621A (zh) | 一种快速的跨数据库***的数据增量迁移方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |
|
RJ01 | Rejection of invention patent application after publication |