一种创建数据库表模型的方法及装置的制造方法

文档序号:9349966阅读:270来源:国知局
一种创建数据库表模型的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别地涉及一种创建数据库表模型的方法及装置。
【背景技术】
[0002]数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
[0003]在电子商务行业,大数据平台仓库的数据源是企业的各个业务系统,因企业内部业务场景的不同,使用的数据库系统也繁多,例如sqlserver,mysql,oracle,hive等等。但是各个数据库因其适用的场合限制,有时候会根据业务的需要进行相互之间的转换。例如,现有的关系型据库mysql,oracle等在高并发读写、海量数据的高效率读写、高扩展性和可用性等几个方面遇到了瓶颈,因此,为进行海量数据的处理需要建立面向海量数据访问的非关系型数据库(例如,基于hadoop的hive大数据仓库)来进行数据处理,hive在海量数据的读写、模型计算、性价比等方面比关系数据库有明显优势。又例如,为进行数据的高性能并发读写,可建立具有极高的并发读写性能的key-value数据库(例如:redis等)。
[0004]在进行数据库的创建时,如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL (Extract-Transform-Load,数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程)就是建设大厦的过程。其中最难的部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60 %?80 %,这是国内外从众多实践中得到的普遍共识。
[0005]由于企业内部业务场景的不同,使用的数据库系统也不同,各数据库的语法存在差异,因此极大的增加了需求分析和模型设计的复杂度。随着电子商务企业业务的不断扩展,产生的数据会越来越多,这对ETL的时效性提出了更高的要求。每有一张表从业务系统的源数据库进入目标数据库时,都需要调研该表的属性,分区属性,列属性,所在库名称,所在服务器地址等,继而还要设计这张表在目标数据库对应的数据存储模型,然后再配置调度作业流,开发批量作业程序等一系列操作。因此,找到一种方法能提高ETL需求分析、模型设计的效率,对于提高系统的运行效率有至关重要的意义。
[0006]现有的ETL需求分析、模型设计方案一般是需求分析人员与源系统数据库研发人员进行沟通,通过线下方式获取模型信息后,模型设计人员通过使用office、UE编辑器等简单工具开发数据库模型。但是,现有的技术方案存在以下几个缺点:
[0007]1、人工进行线下调研的版本与实际模型有差异;
[0008]2、人工调研效率低,设计开发周期长;
[0009]3、建立的目标数据库表类型不统一,不利于维护及扩展。

【发明内容】

[0010]有鉴于此,本发明提供一种创建数据库表模型的方法及装置,能够大幅度缩短目标数据库创建前的需求分析、模型设计阶段,快速实现标准的数据库表模型建立,提高数据入库的效率,加速数据仓库建设。
[0011]为实现上述目的,根据本发明的一个方面,提供了一种创建数据库表模型的方法。
[0012]本发明的一种创建数据库表模型的方法包括:保存从源数据库的字典表中获取的创建目标表需要的源表信息,其中,所述源表信息包括:源表标识信息、源表字段名称、源表字段类型、源表字段描述及源表描述;对所述源表字段名称及源表字段类型进行转换,得到目标数据库能识别的目标表字段名称及目标表字段类型;由所述源表标识信息得到对应的目标表名称,并根据所述目标表名称、目标表字段名称、目标表字段类型、源表字段描述及源表描述得到目标表的建表代码;执行所述建表代码,以生成完整的目标表模型。
[0013]可选地,所述源表标识信息包括:源表唯一标识符、源数据库名称及源表名称。
[0014]可选地,对所述源表字段名称及源表字段类型进行转换的步骤包括:根据字段名称映射规则,将目标数据库的关键字黑名单中包含的非源表关键字的源表字段名称转换为非关键字的目标表字段名称;根据字段类型关系映射表,将源表字段类型转换为目标数据库能识别且兼容的目标表字段类型。
[0015]可选地,所述字段类型关系映射表包括:源数据库的字段类型与目标数据库的字段类型的对应关系。
[0016]根据本发明的另一方面,提供了一种创建数据库表模型的装置。
[0017]本发明的一种创建数据库表模型的装置包括:解析模块,用于保存从源数据库的字典表中获取的创建目标表需要的源表信息,其中,所述源表信息包括:源表标识信息、源表字段名称、源表字段类型、源表字段描述及源表描述;转换模块,用于对所述源表字段名称及源表字段类型进行转换,得到目标数据库能识别的目标表字段名称及目标表字段类型;封装模块,用于由所述源表标识信息得到对应的目标表名称,并根据所述目标表名称、目标表字段名称、目标表字段类型、源表字段描述及源表描述得到目标表的建表代码;建表模块,用于执行所述建表代码,以生成完整的目标表模型。
[0018]可选地,所述源表标识信息包括:源表唯一标识符、源数据库名称及源表名称。
[0019]可选地,所述转换模块还用于:根据字段名称映射规则,将目标数据库的关键字黑名单中包含的非源表关键字的源表字段名称转换为非关键字的目标表字段名称;根据字段类型关系映射表,将源表字段类型转换为目标数据库能识别且兼容的目标表字段类型。
[0020]可选地,所述字段类型关系映射表包括:源数据库的字段类型与目标数据库的字段类型的对应关系。
[0021]根据本发明的技术方案,利用源数据库数据字典信息,获取数据模型,并通过数据映射,快速实现了源数据库模型转换为目标数据库模型的过程,避免了人为调研产生的错误,且大大减少了调研及建模的时间,从而大幅提高了数据仓库的基础模型建立的效率。同时,由于调研及创建模型的程序统一,从而方便了数据库的维护与扩展。
【附图说明】
[0022]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0023]图1是根据本发明实施例的一种创建数据库表模型的方法的主要步骤示意图;
[0024]图2是根据本发明实施例的一种创建数据库表模型的装置的主要模块示意图;
[0025]图3是根据本发明实施例的一种创建数据库表模型的装置的系统架构图。
【具体实施方式】
[0026]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0027]图1是根据本发明实施例的一种创建数据库表模型的方法的主要步骤示意图。如图1所示,本发明的一种创建数据库表模型的方法主要包括如下的步骤Sll至步骤S14。
[0028]步骤Sll:保存从源数据库的字典表中获取的创建目标表需要的源表信息。其中,所述源表信息包括:源表标识信息、源表字段名称、源表字段类型、源表字段描述及源表描述。本发明实施例中所述的源数据库例如为mysql、sqlserver、oracle等数据库,目标数据库例如为hive数据仓库。通过源数据库系统自带的应用程序编程接口(API接口),可获取已具备访问权的源数据库字典表,根据建立目标数据库表模型的参数需求,从源数据库字典表中获取所需要的源表信息。源表信息中所包含的源表标识信息包括:源表唯一标识符、源数据库名称及源表名称。
[0029]步骤S12:对所述源表字段名称及源表字段类型进行转换,得到目标数据库能识别的目标表字段名称及目标表字段类型。由于源数据库和目标数据库的数据规则的不同,在进行数据库建模时,需要将源表信息中的源表字段名称和源表字段类型进行转换,以便得到目标数据库能够识别的相对应的目标表信息。由于其他的源表信息,目标数据库可以识别,因此无需进行转换,但将在后续步骤中进行处理。
[0030]在进行字段名称转换时,根据字段名称映射规则,将目标数据库的关键字黑名单中包含的非源表关键字的源表字段名称转换为非关键字的目标表字段名称。目标数据库的关键字黑名单记录了在目标数据库环境下,会被目标数据库系统误识别为关键字的字段名称信息,但是其实该字段名称在源数据库中不是关键字。例如:在源数据库中“sort”、“end”等不是关键字字段,但是在目标数据库hive中会认为该字段为关键字,因此需要对关键字黑名单中的字段名称信息根据字段名称映射规则进行处理。该映射规则例如可以但不限于是:在关键字黑名单中关键字的字段名称前追加唯一但是可识别的字符以转换成非关键字的字段名称。例如,将源数据库中的非关键字“sort”、“end”转换为目标数据库中的“V_SOrt”、“V_end”,即可将源数据库中的会被误识别为关键字的非关键字转换为目标数据库中的非关键字。
[0031]在进行字段类型转换时,根据字段类型关系映射表,将源表字段类型转换为目标数据库能识别且兼容的目标表字段类型。字段类型关系映射表记录了源数据库的字段类型与目标数据库的字段类型的对应关系。例如假设源数据库为mysql,其中的数据类型“text”在目标数据库hive中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1