一种库表分区代码生成方法及装置的制作方法

文档序号:6585210阅读:152来源:国知局
专利名称:一种库表分区代码生成方法及装置的制作方法
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种库表分区代码生成方法及装置。
背景技术
现有的一些数据库管理工具,支持对大表进行分区处理的功能,将大表划分成许 多类似小表的方式进行管理,在数据访问时,可以按照单个分区进行,减少了全表扫描,从 而提高数据访问的效率。 当我们对某个或某些库表进行分区时,需要按照一定的分区键值编写大量的分区 脚本。目前,尚没有分区库表定义自动脚本生成工具,在分区定义时,需要一个库表一个库 表的按照分区键值,手工编写分区脚本,当分区键值比较多时,一个库表往往会有上百个、 上千个分区,分区脚本甚至达到几万、几十万行。因此,当分区表比较多、且分区键值比较多 的时候,对于开发人员而言,编写库表分区定义脚本的工作量将非常庞大。

发明内容
为解决以上技术问题,本发明实施例提供了一种库表分区代码生成方法及装置, 以减少对库表进行分区时的工作量,提高工作效率。
本发明实施例所提供的技术方案如下
—种库表分区代码生成方法,包括 选择源库表,根据所选择的源库表,创建分区库表基础视图;
根据所述分区库表基础视图,创建分区规则视图;
根据所述分区规则视图,生成分区库表定义; 获得配置代码参数后,根据所生成的分区库表定义,以及预先设置的分区规则,生 成库表分区代码。 —种库表分区代码生成装置,包括 第一视图创建单元,用于选择源库表,根据所选择的源库表,创建分区库表基础视图;
第一视图创建单元,用于根据所述分区库表基础视图,创建分区规则视图;
定义生成单元,用于根据所述分区规则视图,生成分区库表定义;
代码生成单元,用于在获得配置代码参数后,根据所生成的分区库表定义,以及预 先设置的分区规则,生成库表分区代码。 现有技术中,开发人员在编写分区库表定义过程中,存在大量的重复劳动。通过应 用本发明技术方案,能够根据预先设置的分区规则自动生成所需要的分区定义代码,从而 显著提高工作效率。


图1为本发明一种库表分区代码生成方法的流程 图2为图1中S101的具体实现流程图; 图3为图1中S102的具体实现流程图; 图4为图1中S103的具体实现流程图; 图5为图1中S104的生成库表分区代码的示意图; 图6为本发明一种库表分区代码生成装置的结构示意图。
具体实施例方式
营销业务应用有较多的库表可以作为分区库表管理,这些库表的数据量往往都很 大,要么具有年月键值,要么具有供电单位键值。通过对这些键值进行分析和抽象,发现这 些键值具有较强的规律性,但是又不能让数据库按照某个函数进行定义分区,必须将具体 的分区键写入分区定义中去,且为保证代码可读性,难以做成公共代码使用,因此,用户在 编写分区库表定义过程中,存在大量的重复劳动,如果可以自动生成这些代码将大大减轻
他们的编码量,提供工作效率,而且还能保证多个地方的数据库分区规则和管理的一致性。
采用代码生成可以帮助用户自动生成营销业务应用系统大量的分区定义代码,减 少数据库管理中重复的脚本定义工作,同时提高代码的质量,进而縮短数据库准备周期。代 码生成可分为多种方式,其中一种是基于模板,基于模板的方式将生成代码的逻辑存储在 模板文件中,最后要根据传入的参数或者属性来决定采用哪种逻辑,生成什么代码,用户可 以根据实际需要编写合适自己业务需求的模板。 下面首先对本发明实施例的一种库表分区代码生成方法进行说明,参见图1所 示,包括以下步骤 S101,选择源库表,根据所选择的源库表,创建分区库表基础视图;
S102,根据所述分区库表基础视图,创建分区规则视图;
S103,根据所述分区规则视图,生成分区库表定义; S104,获得配置代码参数后,根据所生成的分区库表定义,以及预先设置的分区规 则,生成库表分区代码。 为了使本技术领域的人员能够更好地理解本发明方案,下面对本发明的具体实施 方式作进一步的详细说明。 图2所示为S101的具体实现流程图,包括以下步骤 S101a,分析当前的营销业务应用数据模型,选择适合分区处理的源库表; S101b,对选择的源库表选择合适分区字段即分区键,包括联合分区的主分区键、
子分区键等; S101c,根据选择的源库表及分区键创建分区库表基础视图。 图3所示为S102的具体实现流程图,包括以下步骤 S102a,创建传递起始年月、分区规划年数的数据初始包; S102b,根据分区库表基础视图,创建分区名称前缀和分区命名规则视图; S102c,创建月份模型基础视图; S102d,创建表空间规划视图及其默认地市存放规则视图;
S102e,创建分区存放规则视图;
S102f,创建分区详细规划视图。
5
图4所示为S103的具体实现流程图,包括以下步骤 S103a,从数据字典中取出分区命名规则视图中对应库表的字段定义信息,按照语 法格式生成库表字段定义部分; S103b,根据所述分区详细规划视图,按照语法格式生成库表分区定义; S103c,根据所述分区详细规划视图,按照语法格式生成默认的分区索引定义; S103d,从数据字典中取出库表说明,生成库表说明定义; S103e,从数据字典中取出字段说明,生成字段说明定义; S103f ,从数据字典中取出主键信息,生成主键定义; S103g,从数据字典中取出库表索引信息,生成索引定义; S103h,从数据字典中取出外键信息,生成外键定义。 图5所示为S104的生成库表分区代码的示意图,通过配置获得网省代码后,对于 每个网省分区定义代码的具体内容,则是通过为每种分区方式提供分区代码模板来决定 的。 本发明把营销业务应用中常用的业务库表进行分析和提炼,抽象出三种分区规 则按照年月进行单独分区、按照供电单位进行单独分区、按照供电单位和年月联合分区。 按照年月进行单独分区处理的,库表中的分区键都是按照年月的方式进行存放,需要指定 分区的起始年月和需要做多少年的分区规划。按照供电单位单独分区的,供电单位都必须 遵照统一的编码规则进行编码,需要指定地市供电单位编码。按照供电单位和年月联合分 区的,需要同时指定供电单位编码和起始年月以及分区年数规划。在自动生成代码的过程 中,需要根据这些参数信息,提取和生成分区定义。 在分区代码模板中,可以包含上述三种分区方式的通用代码框架,当然也可以包 括其他分区方式的通用代码框架,利用代码引擎生成代码时需要结合配置代码参数(包括 网省代码、分区起始年月和分区规划年数)以及数据字典模板的具体配置信息来生成对应 网省库表分区代码。 应用本发明技术方案,用户只需要分析当前业务需要将哪些库表纳入分区管理,
选择合适的分区键,配置基础库表视图,就可以针对当前营销业务应用生成一套完整的分
区定义代码,用户基本不需要编码或者只需要进行少量的修改就可以现实营销业务应用中
的分区库表增、删、改基本工作,这样可以让用户减少对分区定义工作的关注,而将大部分
的精力投入到营销业务应用系统的优化与监控,从而减少编码出错率和提高系统质量。 另一方面,通过应用本发明技术方案,也为营销业务应用数据库分区管理降低了
难度,因为本发明是通过对营销业务应用的配置来自动生成代码的,即使对数据库了解很
少的用户,只要将合适的库表加入基础库表视图,也可以生成所需要的分区库表定义。此
外,本发明还对每个分区采用了命名规则,便于查询和管理分区数据,也有利于对分区进行
扩展、删除、合并、交换等操作。 相应于上面的方法实施例,本发明实施例还提供一种库表分区代码生成装置,参 见图6所示,包括 第一视图创建单元601,用于选择源库表,根据所选择的源库表,创建分区库表基 础视图; 第二视图创建单元602,用于根据所述分区库表基础视图,创建分区规则视 定义生成单元603,用于根据所述分区规则视图,生成分区库表定义; 代码生成单元604,用于在获得配置代码参数后,根据所生成的分区库表定义,以
及预先设置的分区规则,生成库表分区代码。 其中,所述第一视图创建单元601,可以包括 源库表选择子单元,用于选择源库表; 分区键选择子单元,用于用于选择源库表中的分区键; 基础视图创建子单元,用于根据所选择的库表及分区键创建分区库表基础视图。
其中,所述第二视图创建单元602,可以包括 初始包创建子单元,用于创建传递起始年月、分区规划年数的数据初始包; 命名规则视图创建子单元,用于根据所述分区库表基础视图,创建分区名称前缀
和分区命名规则视图; 月份模型基础视图创建子单元,用于创建月份模型基础视图; 空间规划视图创建子单元,用于创建表空间规划视图及其默认地市存放规则视 图; 分区存放规则视图创建子单元,用于创建分区存放规则视图;
分区详细规划视图创建子单元,用于创建分区详细规划视图。
其中,所述定义生成单元603,可以包括 库表字段定义生成子单元,用于从数据字典中,取出分区命名规则视图中对应库 表的字段定义信息,按照语法格式生成库表字段定义部分; 库表分区定义生成子单元,用于根据所述分区详细规划视图,按照语法格式生成 库表分区定义; 分区索引定义生成子单元,用于根据所述分区详细规划视图,按照语法格式生成 默认的分区索引定义; 库表说明定义生成子单元,用于从数据字典中取出库表说明,生成库表说明定 义; 字段说明定义生成子单元,用于从数据字典中取出字段说明,生成字段说明定 义; 主键定义生成子单元,用于从数据字典中取出主键信息,生成主键定义; 索引定义生成子单元,用于从数据字典中取出库表索引信息,生成索引定义; 外键定义生成子单元,用于从数据字典中取出外键信息,生成外键定义。 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本
发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可 借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品 可以存储在存储介质中,如ROM/AM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些 部分所述的方法。 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实 施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例 的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是 物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出 创造性劳动的情况下,即可以理解并实施。
本发明可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务
器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶 盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的
分布式计算环境等等。 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。 以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
8
权利要求
一种库表分区代码生成方法,其特征在于,包括选择源库表,根据所选择的源库表,创建分区库表基础视图;根据所述分区库表基础视图,创建分区规则视图;根据所述分区规则视图,生成分区库表定义;获得配置代码参数后,根据所生成的分区库表定义,以及预先设置的分区规则,生成库表分区代码。
2. 根据权利要求1所述的方法,其特征在于,所述根据所选择的源库表,创建分区库表 基础视图,包括选择源库表; 选择源库表中的分区键;根据所选择的库表及分区键创建分区库表基础视图。
3. 根据权利要求1所述的方法,其特征在于,所述根据分区库表基础视图,创建分区规 则视图,包括创建传递起始年月、分区规划年数的数据初始包;根据所述分区库表基础视图,创建分区名称前缀和分区命名规则视图; 创建月份模型基础视图;创建表空间规划及其默认地市存放规则视图; 创建分区存放规则视图; 创建分区详细规划视图。
4. 根据权利要求3所述的方法,其特征在于,所述根据分区规则视图,生成分区库表定 义,包括从数据字典中,取出分区命名规则视图中对应库表的字段定义信息,按照语法格式生 成库表字段定义部分;根据所述分区详细规划视图,按照语法格式生成库表分区定义; 根据所述分区详细规划视图,按照语法格式生成默认的分区索引定义; 从数据字典中取出库表说明,生成库表说明定义; 从数据字典中取出字段说明,生成字段说明定义; 从数据字典中取出主键信息,生成主键定义; 从数据字典中取出库表索引信息,生成索引定义; 从数据字典中取出外键信息,生成外键定义。
5. 根据权利要求1至4任一项所述的方法,其特征在于,所述配置代码参数,包括 网省代码、分区起始年月和分区规划年数。
6. 根据权利要求1至4任一项所述的方法,其特征在于,所述预先设置的分区规则,包括按照年月进行单独分区、按照供电单位进行单独分区、或按照供电单位和年月联合分区。
7. —种库表分区代码生成装置,其特征在于,包括第一视图创建单元,用于选择源库表,根据所选择的源库表,创建分区库表基础视图; 第一视图创建单元,用于根据所述分区库表基础视图,创建分区规则视图;定义生成单元,用于根据所述分区规则视图,生成分区库表定义;代码生成单元,用于在获得配置代码参数后,根据所生成的分区库表定义,以及预先设 置的分区规则,生成库表分区代码。
8. 根据权利要求7所述的装置,其特征在于,第一视图创建单元,包括 源库表选择子单元,用于选择源库表; 分区键选择子单元,用于用于选择源库表中的分区键;基础视图创建子单元,用于根据所选择的库表及分区键创建分区库表基础视图。
9. 根据权利要求7所述的装置,其特征在于,所述第二视图创建单元,包括 初始包创建子单元,用于创建传递起始年月、分区规划年数的数据初始包; 命名规则视图创建子单元,用于根据所述分区库表基础视图,创建分区名称前缀和分区命名规则视图;月份模型基础视图创建子单元,用于创建月份模型基础视图;空间规划视图创建子单元,用于创建表空间规划视图及其默认地市存放规则视图; 分区存放规则视图创建子单元,用于创建分区存放规则视图; 分区详细规划视图创建子单元,用于创建分区详细规划视图。
10. 根据权利要求9所述的装置,其特征在于,所述定义生成单元,包括 库表字段定义生成子单元,用于从数据字典中,取出分区命名规则视图中对应库表的字段定义信息,按照语法格式生成库表字段定义部分;库表分区定义生成子单元,用于根据所述分区详细规划视图,按照语法格式生成库表 分区定义;分区索引定义生成子单元,用于根据所述分区详细规划视图,按照语法格式生成默认 的分区索引定义;库表说明定义生成子单元,用于从数据字典中取出库表说明,生成库表说明定义; 字段说明定义生成子单元,用于从数据字典中取出字段说明,生成字段说明定义; 主键定义生成子单元,用于从数据字典中取出主键信息,生成主键定义; 索引定义生成子单元,用于从数据字典中取出库表索引信息,生成索引定义; 外键定义生成子单元,用于从数据字典中取出外键信息,生成外键定义。
全文摘要
本发明公开了一种库表分区代码生成方法及装置。一种库表分区代码生成方法,包括选择源库表,根据所选择的源库表,创建分区库表基础视图;根据所述分区库表基础视图,创建分区规则视图;根据所述分区规则视图,生成分区库表定义;获得配置代码参数后,根据所生成的分区库表定义,以及预先设置的分区规则,生成库表分区代码。
文档编号G06F17/30GK101727488SQ200910242790
公开日2010年6月9日 申请日期2009年12月17日 优先权日2009年12月17日
发明者苏占文 申请人:中国电力科学研究院;国家电网公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1