一种数据库存储系统及其数据的拆分方法和装置的制作方法

文档序号:6576624阅读:108来源:国知局
专利名称:一种数据库存储系统及其数据的拆分方法和装置的制作方法
技术领域
本发明属于数据库处理领域,尤其涉及一种数据库存储系统及其数据的拆分方法
和装置。
背景技术
目前,数据库存储系统一般采用数据库表存储数据,随着数据库存储系统的使用 时间的累积,数据库表中的数据将不断的增加。当数据库表中存储的数据量过大时,将降低 数据库存储系统的性能,甚至到不可容忍的地步。因此,如何降低大数据量对数据库存储系 统的性能的影响已成为急需解决的问题。 现有技术一般是通过不断的对数据库表的索引进行优化,以提高数据库存储系统 的数据处理效率。但是由于数据库表中存储的数据量过大,因此,无论采用哪种优化算法对 数据库表的索引进行优化均难以从根本上解决大数据量对数据库存储系统的性能的影响。

发明内容
本发明实施例的目的在于提供一种数据拆分方法,旨在解决现有的数据库存储系 统在存储有大数据量时性能差的问题。 本发明实施例是这样实现的,一种数据拆分方法,所述方法包括下述步骤
接收数据拆分指令和数据拆分条件; 创建与所述数据拆分指令指定的数据库表结构相同的历史数据库表; 将所述数据拆分指令指定的数据库表中符合所述数据拆分条件的数据拆分至所
述历史数据库表中。 本发明实施例的另一目的在于提供一种数据拆分装置,所述装置包括
拆分指令接收单元,用于接收数据拆分指令和数据拆分条件; 数据库表创建单元,用于创建与所述数据拆分指令指定的数据库表结构相同的历 史数据库表; 数据拆分单元,用于将所述数据拆分指令指定的数据库表中符合所述数据拆分条 件的数据拆分至所述历史数据库表中。 本发明实施例的另一 目的在于提供一种数据库存储系统,所述系统包括所述数据 拆分装置。 在本发明实施例中,通过创建一个与数据库表的结构相同的数据历史表,将数据 库表中的符合预设的拆分条件的数据拆分至数据历史表中,从而在不丢失数据的同时,极 大的减少了数据库表中的数据量,提高了数据库存储系统的性能。另外通过根据数据库表 和历史数据库表创建视图,通过创建的视图即可读取数据库表和历史数据库表中的数据。 通过设置多个数据拆分条件,从而可以满足用户对数据拆分的各种需求。


图1是本发明实施例提供的数据拆分方法的实现流程图;
图2是本发明实施例提供的数据拆分装置的结构框图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 在本发明实施例中,创建一个与数据库表的结构相同的数据历史表,将数据库表 中的符合预设的拆分条件的数据拆分至数据历史表中,从而在不丢失数据的同时,极大的 减少了数据库表中的数据量,提高了数据库存储系统的性能。
图1示出了本发明实施例提供的数据的拆分方法的实现流程,详述如下
在步骤S101中,接收数据拆分指令和数据拆分条件。 其中数据拆分指令中指定了需要进行拆分的数据库表。在本发明实施例中,可以 通过人机交互界面,接收用户输入的数据拆分指令和数据拆分条件,也可以设置数据拆分 的触发条件,当达到数据拆分的触发条件时,自动产生数据拆分指令,并使用默认的数据拆 分条件。如数据拆分的触发条件可以为当到达某个预设的时间点时,即触发产生数据拆分 指令,如可以设置为每个月的月初、月中或月末。当然数据拆分的触发条件还可以设置为其 他条件,不以上述举例说明为限。 其中数据拆分条件可以根据使用需求自行设置。在本发明实施例中,数据拆分条 件包括但不限于按时间点拆分、按时间段拆分和按数据的数量拆分等。其中按时间点拆分 又包括按年拆分、按月拆分、按日期拆分、按期拆分等。当然还可以根据不用用户的需要,设 置其他的数据拆分条件。 在步骤S102中,创建与数据拆分指令指定的数据库表结构相同的历史数据库表。
其中与数据拆分指令指定的数据库表结构相同是指与数据库表的字段、约束的具 体内容、索引的具体内容等相同,但数据库表名称、约束的名称、索引的名称等不同。
在步骤S103中,将数据拆分指令指定的数据库表中符合数据拆分条件的数据拆 分至历史数据库表中。其具体步骤如下 当数据拆分条件为按时间点拆分时,则将数据拆分指令指定的数据库表中在该时 间点之前产生的数据拆分至历史数据库表中,使数据拆分指令指定的数据库表中仅剩下在 该时间点之后产生的数据。在设置具体的时间点时,需要根据业务需要设置,如保证在时间 点之前产生的数据均是已经处理完成的数据等。其中按时间点拆分包括但不限于按年进行 拆分、按月进行拆分、按日期进行拆分和按期进行拆分。为按年进行拆分设置的时间点称为 年点,为按月进行拆分设置的时间点称为月点,为按日期进行拆分的时间点称为日期点,为 按期进行拆分的时间点称为期间点。
举例说明如下 1、按年进行拆分假设数据拆分指令指定的数据库表为TableA,该TableA中保存 了 2006年至2009年之间产生的数据,创建的历史数据库表为TableA_History,为按年进行 拆分设置的时间点(即年点)为2009年。此时,按年对数据库表TableA进行拆分的具体步骤如下 将数据库表TableA中2009年以前(即2006年至2008年)产生的所有数据拆分 并存储至历史数据库表Table—History中,数据库表TableA中仅保留2009年份产生的数 据。根据实验结果,拆分后的数据库表TableA中的数据量可以由1000万骤降到大概100 万到200万的数据。由于对数据库表TableA进行拆分后,既可以保存所有数据,也不会对 业务造成影响,而且由于数据库表TableA中的数据骤降,从而明显的提高了数据库存储系 统的性能。 2、按期进行拆分假设数据拆分指令指定的数据库表为TableA,且客户当前需要 处理的期间为2009年8期,创建的历史数据库表为TableA_History。在选择按期进行拆分 时,需要将期间点设置为2009年8期以前的时间点,如2009年7期或者6期等。如果将期 间点设置为2009年7期,则将2009年7期以前产生的以及2009年7期产生的数据拆分并 存储至历史数据库表Table—History中,数据库表TableA中仅保留2009年7期以后产生 的数据。根据实验结果,拆分后的数据库表TableA中的数据量可以由1000万骤降到大概 30万左右的数据。由于对数据库表TableA进行拆分后,既可以保存所有数据,也不会对业 务造成影响,而且由于数据库表TableA中的数据骤降,从而明显的提高了数据库存储系统 的性能。 3、按日进行拆分在按日进行拆分时,设置的日期点需要早于未进行处理的数据 的最早日期。此时,按年对数据库表TableA进行拆分的具体步骤如下
将数据库表TableA中日期点以前产生的所有数据拆分并存储至历史数据库表 Table—History中,数据库表TableA中仅保留日期点以后产生的数据。 当数据拆分条件为按时间段拆分时,则将数据拆分指令指定的数据库表中在该时 间段内产生的数据拆分至历史数据库表中,使数据拆分指令指定的数据库表中仅剩下在该 时间段以外产生的数据。在设置具体的时间段时,需要根据业务需要设置。如保证在时间 段内产生的数据均是已经处理完成的数据等。 当数据拆分条件为按数据的数量拆分时,将数据库表中预设数量的数据拆分至历 史数据库表中。 在按数据的数量进行拆分时,为了保证拆分至历史数据库表中的数据均为已处理
过的数据,在本发明另一实施例中,在按数据的数量进行拆分时,对数据库表中未进行处理
的数据的最早日期之前的数据按照数据的产生日期,从小到大排序,再从排序后的数据中
选择预设数量的数据,并将选择的数据拆分至历史数据库表中。举例说明如下 假设设置的需要拆分的数据的数量为100万条,此时对数据拆分指令指定的数据
库表中未进行处理的数据的最早日期之前的数据按照数据的产生日期,从小到大排序,再
从排序后的数据中选择100万条数据,并将选择的IOO万条数据拆分至历史数据库表中。 当接收到数据拆分指令和数据拆分条件时,如果配置的数据拆分条件不合理,可
能导致将未进行处理的数据拆分到历史数据库表中了 ,此时,再对历史数据库类中的数据
进行处理时,将带来不便,为了避免上述问题,在本发明另一实施例中,该方法在步骤S103
之前,还包括下述步骤 判断满足数据拆分条件的数据中是否存在未处理的数据,如果是,则提示用户设 置的数据拆分条件不符合要求,如果否,则执行步骤S103。其中未处理的数据是指当前需要进行业务处理的数据,或者以后还需要进行业务处理的数据。 在对数据拆分指令指定的数据库表进行拆分后,为了不影响用户读取拆分至历史 数据库表中的数据,在本发明另一实施例中,在步骤S 103之后,该方法还包括下述步骤
在步骤S104中,根据数据库表和历史数据库表创建视图,通过创建的视图读取数 据库表和历史数据库表中存储的数据。由于其具体实现过程属于现有技术,在此不再赘述。
在本发明另一实施例中,在步骤S103之后,该方法还包括下述步骤
将历史数据库表中满足预设的拆分条件的数据拆分至与历史数据库表的结构相 同的数据库表中。其具体过程与将数据库表中满足预设的拆分条件的数据拆分至与数据库 表结构相同的数据库表中的过程类似,在此不再赘述。 图2示出了本发明实施例提供的数据拆分装置的结构,为了便于说明,仅示出了 与本发明实施例相关的部份。该数据拆分装置可以是内置于数据库存储系统中的软件单 元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到数据库存储系统或者 数据库存储系统的应用系统中。其中 拆分指令接收单元1接收数据拆分指令和数据拆分条件。 其中数据拆分指令中指定了需要进行拆分的数据库表。在本发明实施例中,可以 通过人机交互界面,接收用户输入的数据拆分指令和数据拆分条件,也可以设置数据拆分 的触发条件,当达到数据拆分的触发条件时,自动产生数据拆分指令,并使用默认的数据拆 分条件。 其中数据拆分条件可以根据使用需求自行设置。在本发明实施例中,数据拆分条 件包括但不限于按时间点拆分、按时间段拆分和按数据的数量拆分等。其中按时间点拆分 又包括按年拆分、按月拆分、按日期拆分、按期拆分等。当然还可以根据不用用户的需要,设 置其他的数据拆分条件。 数据库表创建单元2创建与数据拆分指令指定的数据库表结构相同的历史数据 库表。 其中与数据拆分指令指定的数据库表结构相同是指与数据库表的字段、约束的具 体内容、索引的具体内容等相同,但数据库表名称、约束的名称、索引的名称等不同。
数据拆分单元3将接收的数据拆分指令指定的数据库表中符合数据拆分条件的 数据拆分至历史数据库表中。该数据拆分单元包括时间点拆分模块31、时间段拆分模块32 和第一数量拆分模块33。其中 时间点拆分模块31将数据拆分指令指定的数据库表中在预设的时间点之前产生 的数据拆分至历史数据库表中。其中时间点可以是年点、月点、日期点或期间点。其中年点 是指为按年进行拆分设置的时间点,月点是指为按月进行拆分设置的时间点,日期点是指 为按日期进行拆分的时间点,期间点是指为按期进行拆分的时间点。在设置具体的时间点 时,需要根据业务需要设置,如保证在时间点之前产生的数据均是已经处理完成的数据等。
时间段拆分模块32将数据拆分指令指定的数据库表中在预设的时间段内产生的 数据拆分至历史数据库表中。使数据拆分指令指定的数据库表中仅剩下在该时间段以外产 生的数据。在设置具体的时间段时,需要根据业务需要设置。如保证在时间段内产生的数 据均是已经处理完成的数据等。 第一数量拆分模块33将数据库表中预设数量的数据拆分至历史数据库表中。
在按数据的数量进行拆分时,为了保证拆分至历史数据库表中的数据均为已处理 过的数据,在本发明另一实施例中,该数据拆分单元3还包括第二数量拆分模块34。该第二 数量拆分模块34对数据库表中未进行处理的数据的最早日期之前的数据按照数据的产生 日期,从小到大排序,再从排序后的数据中选择预设数量的数据,并将选择的数据拆分至历 史数据库表中。 当接收到数据拆分指令和数据拆分条件时,如果配置的数据拆分条件不合理,可 能导致将未进行处理的数据拆分到历史数据库表中了 ,此时,再对历史数据库类中的数据 进行处理时,将带来不便,为了避免上述问题,在本发明另一实施例中,该装置还包括拆分 条件判断单元4。该拆分条件判断单元4判断满足数据拆分条件的数据中是否存在未处理 的数据。此时,数据拆分单元3在拆分条件判断单元4判定满足数据拆分条件的数据中不 存在未处理的数据时,将数据库表中预设数量的数据拆分至历史数据库表中。其中未处理 的数据是指当前需要进行业务处理的数据,或者以后还需要进行业务处理的数据。
在对数据拆分指令指定的数据库表进行拆分后,为了不影响用户读取拆分至历史 数据库表中的数据,在本发明另一实施例中,该装置还包括视图创建单元5。该视图创建单 元5根据数据库表和历史数据库表创建视图,通过创建的视图读取数据库表和历史数据库 表中存储的数据。 在本发明实施例中,通过创建一个与数据库表的结构相同的数据历史表,将数据
库表中的符合预设的拆分条件的数据拆分至数据历史表中,从而在不丢失数据的同时,极
大的减少了数据库表中的数据量,提高了数据库存储系统的性能。另外通过根据数据库表
和历史数据库表创建视图,通过创建的视图即可读取数据库表和历史数据库表中的数据。
通过设置多个数据拆分条件,从而可以满足用户对数据拆分的各种需求。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种数据拆分方法,其特征在于,所述方法包括下述步骤接收数据拆分指令和数据拆分条件;创建与所述数据拆分指令指定的数据库表结构相同的历史数据库表;将所述数据拆分指令指定的数据库表中符合所述数据拆分条件的数据拆分至所述历史数据库表中。
2. 如权利要求1所述的方法,其特征在于,所述数据拆分条件包括按时间点拆分、按时 间段拆分和按数据的数量拆分中的一种或者多种,所述按时间点拆分包括按年拆分、按月 拆分、按日期拆分和按期拆分中的一种或者多种组合。
3. 如权利要求2所述的方法,其特征在于,所述将所述数据拆分指令指定的数据库表 中符合所述数据拆分条件的数据拆分至所述历史数据库表中的步骤具体包括当数据拆分条件为按时间点拆分时,将所述数据拆分指令指定的数据库表中在预设的 时间点之前产生的数据拆分至所述历史数据库表中;当数据拆分条件为按时间段拆分时,将所述数据拆分指令指定的数据库表中在预设的 时间段内产生的数据拆分至所述历史数据库表中;当数据拆分条件为按数据的数量拆分时,将数据库表中预设数量的数据拆分至历史数 据库表中。
4. 如权利要求3所述的方法,其特征在于,所述当数据拆分条件为按数据的数量拆分 时,将数据库表中预设数量的数据拆分至历史数据库表中的步骤具体包括当数据拆分条件为按数据的数量拆分时,对所述数据拆分指令指定数据库表中未进行 处理的数据的最早日期之前的数据按照数据的产生日期,从小到大排序;从排序后的数据中选择预设数量的数据,并将选择的数据拆分至所述历史数据库表中。
5. 如权利要求1所述的方法,其特征在于,在所述将所述数据拆分指令指定的数据库 表中符合所述数据拆分条件的数据拆分至所述历史数据库表中的步骤之前,所述方法还包 括下述步骤判断满足数据拆分条件的数据中是否存在未处理的数据,如果是,提示用户设置的数 据拆分条件不符合要求,如果否,执行所述将所述数据拆分指令指定的数据库表中符合所 述数据拆分条件的数据拆分至所述历史数据库表中的步骤。
6. 如权利要求1至5任一权利要求所述的方法,其特征在于,在所述将所述数据拆分指 令指定的数据库表中符合所述数据拆分条件的数据拆分至所述历史数据库表中的步骤之 后,所述方法还包括下述步骤根据数据库表和历史数据库表创建视图,通过创建的视图读取数据库表和历史数据库 表中存储的数据。
7. —种数据拆分装置,其特征在于,所述装置包括 拆分指令接收单元,用于接收数据拆分指令和数据拆分条件;数据库表创建单元,用于创建与所述数据拆分指令指定的数据库表结构相同的历史数 据库表;数据拆分单元,用于将所述数据拆分指令指定的数据库表中符合所述数据拆分条件的 数据拆分至所述历史数据库表中。
8. 如权利要求7所述的装置,其特征在于,所述数据拆分单元包括时间点拆分模块,用于在数据拆分条件为按时间点拆分时,将所述数据拆分指令指定 的数据库表中在预设的时间点之前产生的数据拆分至所述历史数据库表中;时间段拆分模块,用于在数据拆分条件为按时间段拆分时,将所述数据拆分指令指定 的数据库表中在预设的时间段内产生的数据拆分至所述历史数据库表中;第一数量拆分模块,用于当数据拆分条件为按数据的数量拆分时,将数据库表中预设 数量的数据拆分至历史数据库表中。
9. 如权利要求8所述的装置,其特征在于,所述数据拆分单元还包括 第二数量拆分模块,用于在数据拆分条件为按数据的数量拆分时,对所述数据拆分指令指定数据库表中未进行处理的数据的最早日期之前的数据按照数据的产生日期,从小到 大排序,从排序后的数据中选择预设数量的数据,并将选择的数据拆分至所述历史数据库 表中。
10. 如权利要求7所述的装置,其特征在于,所述装置还包括拆分条件判断单元,用于判断满足数据拆分条件的数据中是否存在未处理的数据。此时,所述数据拆分单元在所述拆分条件判断单元判定满足数据拆分条件的数据中不存在 未处理的数据时,将数据库表中预设数量的数据拆分至历史数据库表中。
11. 如权利要求7所述的装置,其特征在于,所述装置还包括视图创建单元,用于根据数据库表和历史数据库表创建视图,通过创建的视图读取数 据库表和历史数据库表中存储的数据。
12. —种数据库存储系统,其特征在于,所述系统包括权利要求7至11任一权利要求所 述的数据拆分装置。
全文摘要
本发明适用于数据库领域,提供了一种数据库存储系统及其数据拆分方法和装置,所述方法包括下述步骤接收数据拆分指令和数据拆分条件;创建与所述数据拆分指令指定的数据库表结构相同的历史数据库表;将所述数据拆分指令指定的数据库表中符合所述数据拆分条件的数据拆分至所述历史数据库表中。本发明实施例通过创建一个与数据库表的结构相同的数据历史表,将数据库表中的符合预设的拆分条件的数据拆分至数据历史表中,从而在不丢失数据的同时,极大的减少了数据库表中的数据量,提高了数据库存储系统的性能。
文档编号G06F17/30GK101697152SQ20091011022
公开日2010年4月21日 申请日期2009年10月23日 优先权日2009年10月23日
发明者余锋 申请人:金蝶软件(中国)有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1