一种历史数据新增方法

文档序号:9326967阅读:265来源:国知局
一种历史数据新增方法
【技术领域】
[0001] 本发明涉及一种数据处理方法,尤其是涉及一种历史数据新增方法。
【背景技术】
[0002] 对于业务系统中状态类信息,一般只记录最新信息。当分析需要关注这些信息的 历史时点信息时,直接同步业务系统中数据就不够了。
[0003] 业务系统无法在每次发生的增删改时记录原始信息和最新信息;分析系统虽难以 获实时的增删改的信息,但在每天同步一次情况下,将每天的全量数据加上开始时间(数 据日期)作为增量加载,就可以获得每个时点(每天)的信息,但为这种方式数据冗余度惊 人,据测算,一般每天只有不到10 %的数据发生变化,90 %的数据冗余。
[0004] 将每天与前一天的重复数据删除后加上开始时间作为增量加载,在信息完整性上 可以达到要求,但在需要获得特定时点的记录时需要比较按时间排序的前后两条记录,大 大加剧了查询负担。在实际分析系统使用中不可行,一般只作为数据存储和分发使用。
[0005] 因此在实际使用时需增加开始时间、结束时间和加载类型,才能兼顾数据存储容 量和数据查询的性能,而更新前一天数据的结束时间就成为数据历史实现方法的性能瓶 颈。
[0006] 现有的数据历史基本实现方法通常为:通过比较前后两天的全量数据可以获得新 一天的增删改数据,将这些增量数据导入数据库后,利用主键相等更新前一天的结束时间 为当天数据日期的前一天(称这个过程为关时间窗口)。这个过程在可以同一张表内,使 用Update技术完成。但在数据库中使用Update技术,变化量达到几百万量级时生成的日 志量将严重影响系统性能,达到10小时以上,在3500万当前记录,2000万变动记录的极端 情况,需要40小时处理。

【发明内容】

[0007] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高效的历史数 据新增方法。
[0008] 本发明的目的可以通过以下技术方案来实现:
[0009] -种历史数据新增方法,该方法以天为单位进行历史数据的新增,包括以下步 骤:
[0010] 1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据 存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据;
[0011] 2)对第一当前数据进行备份;
[0012] 3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二 当前数据和第二历史数据;
[0013] 4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以 增量方式合并至第一历史数据中;
[0014] 5)返回步骤2),开始新一天的数据处理。
[0015] 所述结束时间通过C程序模拟SQL实现的算法获取。
[0016] 所述步骤3)中,将所述新数据与第一当前数据进行比对时,按主关键字和整行方 式进行比较。
[0017] 所述步骤3)中,将所述新数据与第一当前数据进行比对具体为:
[0018] 301)根据所述新数据、主关键词的主关键字和整行生成相应的md5文件;
[0019] 302)将md5文件进行比对,获得相应的比对结果文件;
[0020] 303)对所述比对结果文件添加相应的参数,生成第二当前数据和第二历史数据。
[0021] 所述比对结果文件包括新增文件、删除文件、原有修改文件和原有文件。
[0022] 所述参数包括开始时间、结束时间和装载类型。
[0023] 与现有技术相比,本发明具有以下优点:
[0024] 1)本发明取消了 Update方式,改为无日志的全删、全增替换方式,效率高;
[0025] 2)本发明根据数据历史的特点,将整个历史数据区分为当前数据和历史数据,作 为两个分区存储,这样可以方便地对当前数据作整体替换同时对历史数据作添加处理;
[0026] 3)由于本发明中数据比对只涉及前后相邻的两天数据,因此用专用的C程序处理 生成数据当天的当前数据和历史数据,比用通用的SQL算法有高的处理效率,而且可以使 数据处理的服务器独立于数据库,不与数据使用在硬件资源上冲突,处理的数据量单文件 达到3亿行,涵盖了目前已有的业务数据量。
[0027] 4)鉴于主关键字和整行的长度在原始数据中是不等长的,本发明统一转换成md5 码定长格式后再进行比对,提高了比对效率,数据历史关心的是相同主键数据的变化,只关 注是否相同,不关注大小,而md5码正好符合这个需求。
【附图说明】
[0028] 图1为本发明比对过程的流程示意图;
[0029] 图2为本发明比对后产生的文件示意图。
【具体实施方式】
[0030] 下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案 为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于 下述的实施例。
[0031] 本实施例提供一种历史数据新增方法,具有以下关键点:
[0032] 1)改造了底层数据库表的存储方式,明确区分的当前数据和历史数据;
[0033] 2)生成结束时间的方法,用专用C程序模拟SQL实现的算法;
[0034] 3)从一台服务器实现明确区分为数据处理服务器和数据库服务器两台服务器实 现。
[0035] 该历史数据新增方法以天为单位进行历史数据的新增,具体包括以下步骤:
[0036] 1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据 存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据。结束时间 通过C程序模拟SQL实现的算法获取。
[0037] 2)在数据处理服务器上对第一当前数据进行备份。
[0038] 3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二 当前数据和第二历史数据,如图1所示,具体为:
[0039] 301)根据所述新数据、主关键词的主关键字和整行生成相应的md5文件;
[0040] 302)将md5文件进行比对,获得相应的比对结果文件,包括新增文件、删除文件、 原有修改文件和原有文件;
[0041] 303)对所述比对结果文件添加相应的参数,包括开始时间、结束时间和装载类型, 生成第二当前数据和第二历史数据。加 Dt (数据开始时间、数据结束时间)和Type (数据 装载类型)对于不同的文件加的是不同的。
[0042] 完成上述比对后,可对当天的第二当前数据重新做一次md5码,将下一次比较需 要的处理提肖LI完成,进一步提尚效率。
[0043] 如图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。
[0044] 4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以 增量方式合并至第一历史数据中;
[0045] 5)返回步骤2),开始新一天的数据处理。
[0046] 以下以具体历史数据新增过程为例说明上述方法。当前系统已更新到20150101, 以下示例处理20150102数据的处理流程和合并流程。其中,灰色表头是数据文件,保存在 数据处理服务器中,黑色表头是数据库表,保存在数据库服务器中。
[0047] 1、表状态
[0048] 当前数据表
[0052] 2、数据状态
[0053] 前一天数据文件(20150101),与表的当前数据一致
[0054]
[0067] 装载后历史数据表(添加)
[0068]
【主权项】
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所述的历史数据新增方法,其特征在于,所述参数包括开始时间、结 束时间和装载类型。
【专利摘要】本发明涉及一种历史数据新增方法,该方法以天为单位进行历史数据的新增,包括以下步骤:1)获取历史数据区中的第一当前数据和第一历史数据,所述第一当前数据为数据存储上无结束时间的数据,所述第一历史数据为数据存储上有结束时间的数据;2)对第一当前数据进行备份;3)获取当天的新数据,将所述新数据与第一当前数据进行比对,获取当天的第二当前数据和第二历史数据;4)将所述第二当前数据与第一当前数据作整体切换,同时将所述第二历史数据以增量方式合并至第一历史数据中;5)返回步骤2),开始新一天的数据处理。与现有技术相比,本发明具有处理方便、高效等优点。
【IPC分类】G06F17/30
【公开号】CN105045881
【申请号】CN201510430543
【发明人】吴卫军, 范磊
【申请人】上海融甸信息科技有限公司
【公开日】2015年11月11日
【申请日】2015年7月21日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1