CN105045881A - 一种历史数据新增方法 - Google Patents
一种历史数据新增方法 Download PDFInfo
- Publication number
- CN105045881A CN105045881A CN201510430543.1A CN201510430543A CN105045881A CN 105045881 A CN105045881 A CN 105045881A CN 201510430543 A CN201510430543 A CN 201510430543A CN 105045881 A CN105045881 A CN 105045881A
- Authority
- CN
- China
- Prior art keywords
- data
- historical data
- current
- historical
- file
- 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
Classifications
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种历史数据新增方法,该方法以天为单位进行历史数据的新增,包括以下步骤:1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据;2)对第一当前数据进行备份;3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二当前数据和第二历史数据;4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以增量方式合并至第一历史数据中;5)返回步骤2),开始新一天的数据处理。与现有技术相比,本发明具有处理方便、高效等优点。
Description
技术领域
本发明涉及一种数据处理方法,尤其是涉及一种历史数据新增方法。
背景技术
对于业务系统中状态类信息,一般只记录最新信息。当分析需要关注这些信息的历史时点信息时,直接同步业务系统中数据就不够了。
业务系统无法在每次发生的增删改时记录原始信息和最新信息;分析系统虽难以获实时的增删改的信息,但在每天同步一次情况下,将每天的全量数据加上开始时间(数据日期)作为增量加载,就可以获得每个时点(每天)的信息,但为这种方式数据冗余度惊人,据测算,一般每天只有不到10%的数据发生变化,90%的数据冗余。
将每天与前一天的重复数据删除后加上开始时间作为增量加载,在信息完整性上可以达到要求,但在需要获得特定时点的记录时需要比较按时间排序的前后两条记录,大大加剧了查询负担。在实际分析系统使用中不可行,一般只作为数据存储和分发使用。
因此在实际使用时需增加开始时间、结束时间和加载类型,才能兼顾数据存储容量和数据查询的性能,而更新前一天数据的结束时间就成为数据历史实现方法的性能瓶颈。
现有的数据历史基本实现方法通常为:通过比较前后两天的全量数据可以获得新一天的增删改数据,将这些增量数据导入数据库后,利用主键相等更新前一天的结束时间为当天数据日期的前一天(称这个过程为关时间窗口)。这个过程在可以同一张表内,使用Update技术完成。但在数据库中使用Update技术,变化量达到几百万量级时生成的日志量将严重影响系统性能,达到10小时以上,在3500万当前记录,2000万变动记录的极端情况,需要40小时处理。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高效的历史数据新增方法。
本发明的目的可以通过以下技术方案来实现:
一种历史数据新增方法,该方法以天为单位进行历史数据的新增,包括以下步骤:
1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据;
2)对第一当前数据进行备份;
3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二当前数据和第二历史数据;
4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以增量方式合并至第一历史数据中;
5)返回步骤2),开始新一天的数据处理。
所述结束时间通过C程序模拟SQL实现的算法获取。
所述步骤3)中,将所述新数据与第一当前数据进行比对时,按主关键字和整行方式进行比较。
所述步骤3)中,将所述新数据与第一当前数据进行比对具体为:
301)根据所述新数据、主关键词的主关键字和整行生成相应的md5文件;
302)将md5文件进行比对,获得相应的比对结果文件;
303)对所述比对结果文件添加相应的参数,生成第二当前数据和第二历史数据。
所述比对结果文件包括新增文件、删除文件、原有修改文件和原有文件。
所述参数包括开始时间、结束时间和装载类型。
与现有技术相比,本发明具有以下优点:
1)本发明取消了Update方式,改为无日志的全删、全增替换方式,效率高;
2)本发明根据数据历史的特点,将整个历史数据区分为当前数据和历史数据,作为两个分区存储,这样可以方便地对当前数据作整体替换同时对历史数据作添加处理;
3)由于本发明中数据比对只涉及前后相邻的两天数据,因此用专用的C程序处理生成数据当天的当前数据和历史数据,比用通用的SQL算法有高的处理效率,而且可以使数据处理的服务器独立于数据库,不与数据使用在硬件资源上冲突,处理的数据量单文件达到3亿行,涵盖了目前已有的业务数据量。
4)鉴于主关键字和整行的长度在原始数据中是不等长的,本发明统一转换成md5码定长格式后再进行比对,提高了比对效率,数据历史关心的是相同主键数据的变化,只关注是否相同,不关注大小,而md5码正好符合这个需求。
附图说明
图1为本发明比对过程的流程示意图;
图2为本发明比对后产生的文件示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例提供一种历史数据新增方法,具有以下关键点:
1)改造了底层数据库表的存储方式,明确区分的当前数据和历史数据;
2)生成结束时间的方法,用专用C程序模拟SQL实现的算法;
3)从一台服务器实现明确区分为数据处理服务器和数据库服务器两台服务器实现。
该历史数据新增方法以天为单位进行历史数据的新增,具体包括以下步骤:
1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据。结束时间通过C程序模拟SQL实现的算法获取。
2)在数据处理服务器上对第一当前数据进行备份。
3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二当前数据和第二历史数据,如图1所示,具体为:
301)根据所述新数据、主关键词的主关键字和整行生成相应的md5文件;
302)将md5文件进行比对,获得相应的比对结果文件,包括新增文件、删除文件、原有修改文件和原有文件;
303)对所述比对结果文件添加相应的参数,包括开始时间、结束时间和装载类型,生成第二当前数据和第二历史数据。加Dt(数据开始时间、数据结束时间)和Type(数据装载类型)对于不同的文件加的是不同的。
完成上述比对后,可对当天的第二当前数据重新做一次md5码,将下一次比较需要的处理提前完成,进一步提高效率。
如图2所示,本实施例进行比对后生成6个文件,分别为old.d、old.u、old.s、new.u、new.s、new.a,其中,a表示新增,u表示修改,s表示相同,d表示删除,old文件中包含开始时间和前一次的装载类型。组合old.s、new.a、new.u就可以得到新一天的当前数据,new.a、new.u的开始时间就是当数据日期,装载类型就是a和u。替换当前数据。组合old.u、old.d就可以得到前一天的历史数据,old.u、old.d的开始时间原始就有,结束时间就是数据日期的前一天,装载类型就是u和d。
4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以增量方式合并至第一历史数据中;
5)返回步骤2),开始新一天的数据处理。
以下以具体历史数据新增过程为例说明上述方法。当前系统已更新到20150101,以下示例处理20150102数据的处理流程和合并流程。其中,灰色表头是数据文件,保存在数据处理服务器中,黑色表头是数据库表,保存在数据库服务器中。
1、表状态
当前数据表
历史数据表
2、数据状态
前一天数据文件(20150101),与表的当前数据一致
当天数据(20150102)
3、处理流程
C处理后生成的6个文件数据
新的当前数据
新的历史数据
4、装载流程
装载后当前数据表(替换)
装载后历史数据表(添加)
Claims (6)
1.一种历史数据新增方法,其特征在于,该方法以天为单位进行历史数据的新增,包括以下步骤:
1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据;
2)对第一当前数据进行备份;
3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二当前数据和第二历史数据;
4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以增量方式合并至第一历史数据中;
5)返回步骤2),开始新一天的数据处理。
2.根据权利要求1所述的历史数据新增方法,其特征在于,所述结束时间通过C程序模拟SQL实现的算法获取。
3.根据权利要求1所述的历史数据新增方法,其特征在于,所述步骤3)中,将所述新数据与第一当前数据进行比对时,按主关键字和整行方式进行比较。
4.根据权利要求3所述的历史数据新增方法,其特征在于,所述步骤3)中,将所述新数据与第一当前数据进行比对具体为:
301)根据所述新数据、主关键词的主关键字和整行生成相应的md5文件;
302)将md5文件进行比对,获得相应的比对结果文件;
303)对所述比对结果文件添加相应的参数,生成第二当前数据和第二历史数据。
5.根据权利要求4所述的历史数据新增方法,其特征在于,所述比对结果文件包括新增文件、删除文件、原有修改文件和原有文件。
6.根据权利要求4所述的历史数据新增方法,其特征在于,所述参数包括开始时间、结束时间和装载类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510430543.1A CN105045881A (zh) | 2015-07-21 | 2015-07-21 | 一种历史数据新增方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510430543.1A CN105045881A (zh) | 2015-07-21 | 2015-07-21 | 一种历史数据新增方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045881A true CN105045881A (zh) | 2015-11-11 |
Family
ID=54452428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510430543.1A Pending CN105045881A (zh) | 2015-07-21 | 2015-07-21 | 一种历史数据新增方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045881A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413684A (zh) * | 2018-04-25 | 2019-11-05 | 武汉海康存储技术有限公司 | 一种数据库同步方法、装置及系统 |
CN110727654A (zh) * | 2019-10-24 | 2020-01-24 | 北京锐安科技有限公司 | 分布式系统的数据提取方法、装置、服务器和存储介质 |
CN112052249A (zh) * | 2020-08-27 | 2020-12-08 | 青岛聚好联科技有限公司 | 一种基于层级时间栅栏的增量数据管理的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504664A (zh) * | 2009-03-18 | 2009-08-12 | 中国工商银行股份有限公司 | 对全量源数据进行抽取转换加载的装置及方法 |
CN103116652A (zh) * | 2013-03-06 | 2013-05-22 | 同方知网(北京)技术有限公司 | 一种基于拉链信息的索引存储管理方法 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN104731792A (zh) * | 2013-12-19 | 2015-06-24 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
-
2015
- 2015-07-21 CN CN201510430543.1A patent/CN105045881A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504664A (zh) * | 2009-03-18 | 2009-08-12 | 中国工商银行股份有限公司 | 对全量源数据进行抽取转换加载的装置及方法 |
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN103116652A (zh) * | 2013-03-06 | 2013-05-22 | 同方知网(北京)技术有限公司 | 一种基于拉链信息的索引存储管理方法 |
CN104731792A (zh) * | 2013-12-19 | 2015-06-24 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413684A (zh) * | 2018-04-25 | 2019-11-05 | 武汉海康存储技术有限公司 | 一种数据库同步方法、装置及系统 |
CN110413684B (zh) * | 2018-04-25 | 2023-05-02 | 杭州海康存储科技有限公司 | 一种数据库同步方法、装置及系统 |
CN110727654A (zh) * | 2019-10-24 | 2020-01-24 | 北京锐安科技有限公司 | 分布式系统的数据提取方法、装置、服务器和存储介质 |
CN110727654B (zh) * | 2019-10-24 | 2022-02-18 | 北京锐安科技有限公司 | 分布式系统的数据提取方法、装置、服务器和存储介质 |
CN112052249A (zh) * | 2020-08-27 | 2020-12-08 | 青岛聚好联科技有限公司 | 一种基于层级时间栅栏的增量数据管理的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8682873B2 (en) | Efficient construction of synthetic backups within deduplication storage system | |
CN102436408B (zh) | 基于Map/Dedup的数据存储云化和云备份方法 | |
US10656876B1 (en) | Cloud edition and retrieve | |
CN101464895A (zh) | 一种更新内存数据的方法、系统和装置 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN103902698A (zh) | 一种数据存储系统和存储方法 | |
CN103944981A (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN106934048A (zh) | 数据在线迁移方法、代理节点 | |
CN102541694A (zh) | 一种数据库备份的方法及装置 | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN111143476B (zh) | 一种基于数据库的智能合约数据快速查询方法 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN102799651B (zh) | 查询处理装置和查询处理方法 | |
CN102591864B (zh) | 比对系统中的数据更新方法及装置 | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN105045881A (zh) | 一种历史数据新增方法 | |
CN104765651A (zh) | 一种数据处理方法和装置 | |
CN110275799A (zh) | 账务系统不停机日切点快照余额的方法 | |
US9037539B2 (en) | Data synchronization | |
CN103365740B (zh) | 一种数据冷备方法及装置 | |
CN109101599A (zh) | 一种增量索引更新方法及系统 | |
US9886490B1 (en) | Common extract store | |
CN111930821A (zh) | 一种一步式数据交换方法、装置、设备及存储介质 | |
CN104636401A (zh) | 一种scada系统数据回滚的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |