CN115658694A - 一种数据库表的生成***、方法及装置 - Google Patents
一种数据库表的生成***、方法及装置 Download PDFInfo
- Publication number
- CN115658694A CN115658694A CN202211388533.2A CN202211388533A CN115658694A CN 115658694 A CN115658694 A CN 115658694A CN 202211388533 A CN202211388533 A CN 202211388533A CN 115658694 A CN115658694 A CN 115658694A
- Authority
- CN
- China
- Prior art keywords
- database
- information
- field
- generating
- building
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库表的生成***、方法及装置,用以自动生成与数据库的类型相对应的数据库表,提升不同类型数据库的数据库表的建表效率。本申请提供的一种数据库表的生成方法,包括:获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库表的生成***、方法及装置。
背景技术
不同的数据库在不同的场景下有着各自的优劣势,在大数据场景下,想要适用各种场景下的数据存储,以及具备较好的查询性能,需要不同的数据库配合使用,且生成数据库表,需要掌握各种数据库操作技术,手动编写各种数据库的建表语句,进行导入数据任务、清理数据任务等操作,使用门槛高、且操作繁琐。
发明内容
本申请实施例提供了一种数据库表的生成***、方法及装置,用以自动生成与数据库的类型相对应的数据库表,提升不同类型数据库的数据库表的建表效率。
本申请实施例提供的一种数据库表的生成***,包括:
生成模块,用于获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
建表模块,用于根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
通过该***,实现自动生成与数据库的类型相对应的数据库表,从而提升不同类型数据库的数据库表的建表效率。
在一些实施例中,所述生成模块根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
所述建表模块根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
通过该***,实现根据建表语句字段转换关系列表,生成对应数据库类型的建表语句,兼容性高。
在一些实施例中,所述***还包括:
检测模块,用于根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,所述生成模块根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
通过该***,实现根据不存在冲突字段的需求表信息生成建表语句。
在一些实施例中,所述建表模块生成与所述数据库对应的数据库表之后,还用于:
所述建表模块根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
通过该***,实现将第三方数据快速导入到新建成的数据库表中,或对该数据库表的数据进行清理,进而实现对该数据库表的维护。
本申请实施例提供的一种数据库表的生成方法,所述方法包括:
获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
通过该方法,获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表,从而实现自动生成与数据库的类型相对应的数据库表,操作简单,建表效率高。
在一些实施例中,根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
通过该方法,实现根据建表语句字段转换关系列表,生成对应数据库类型的建表语句,兼容性高。
在一些实施例中,所述获取并根据需求表信息,生成建表语句,包括:
根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
通过该方法,实现根据不存在冲突字段的需求表信息生成建表语句。
在一些实施例中,所述根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,包括:
利用所述当前存在的数据库中同一类型数据库表中的表信息生成第一键值对集合,利用所述需求表信息生成第二键值对集合;其中,任一所述键值对集合包括:表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息;
比较所述第一键值对集合和第二键值对集合中同名字段的键值,当所述同名字段在两个集合中的两个键相同,并且这两个键各自对应的取值也相同,确定所述需求表信息不存在冲突字段。
通过该方法,实现确定需求表信息中是否存在不符合建表规范的冲突字段,提升建表的成功率。
在一些实施例中,当确定所述需求表信息存在冲突字段时,所述方法还包括:
输出错误信息;其中,所述错误信息包括:冲突字段以及所述需求表信息中所述冲突字段的字段属性信息;
根据所述错误信息,修改所述需求表信息。
通过该方法,实现根据错误信息修改需求表信息,提升建表的成功率。
在一些实施例中,生成与所述数据库对应的数据库表之后,所述方法还包括:
根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
通过该方法,实现将第三方数据快速导入到新建成的数据库表中,或对该数据库表的数据进行清理,进而实现对该数据库表的维护。
在一些实施例中,所述向所述数据库表中添加新的数据,包括:
通过消息中间件接收来自所述数据库之外的数据,并存储在消息队列中;
获取所述消息队列中的数据,并添加至所述数据库表中。
通过该方法,实现将第三方数据通过消息中间件添加至数据库表中,提升数据导入效率。
本申请另一实施例提供了一种数据库表的生成装置,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
此外,根据实施例,例如提供了一种用于计算机的计算机程序产品,其包括软件代码部分,当所述产品在计算机上运行时,这些软件代码部分用于执行上述所定义的方法的步骤。该计算机程序产品可以包括在其上存储有软件代码部分的计算机可读介质。此外,该计算机程序产品可以通过上传过程、下载过程和推送过程中的至少一个经由网络直接加载到计算机的内部存储器中和/或发送。
本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据库表的生成***的结构示意图;
图2为本申请实施例提供的一种评审及维护excel表信息的流程示意图;
图3为本申请实施例提供的一种建表模块执行建表的具体流程示意图;
图4为本申请实施例提供的一种数据库表的生成方法的整体流程示意图;
图5为本申请实施例提供的一种数据库表的生成装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据库表的生成***、方法及装置,用以自动生成与数据库的类型相对应的数据库表,提升不同类型数据库的数据库表的建表效率。
其中,***、方法和装置是基于同一申请构思的,由于***、方法和装置解决问题的原理相似,因此***、装置和方法的实施可以相互参见,重复之处不再赘述。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下示例和实施例将只被理解为是说明性的示例。虽然本说明书可能在若干处提及“一”、“一个”或“一些”示例或实施例,但这并非意味着每个这种提及都与相同的示例或实施例有关,也并非意味着该特征仅适用于单个示例或实施例。不同实施例的单个特征也可以被组合以提供其他实施例。此外,如“包括”和“包含”的术语应被理解为并不将所描述的实施例限制为仅由已提及的那些特征组成;这种示例和实施例还可以包含并未具体提及的特征、结构、单元、模块等。
下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
需要说明的是,本申请实施例提供的技术方案,以实现在Elasticsearch、Mpp、Oracle、PostgreSql四种类型数据库中生成数据库表为例进行说明,但并不限于此。
下面对文中出现的一些名词进行解释:
1、本申请实施例中术语“Map集合”,即键值对集合,Map中的每一个对象都包含一个键对象和一个值对象。
2、本申请实施例中术语“XSSFWorkbook”,读取excel2007及以上版本中表信息的一种工具。
3、本申请实施例中术语“DDL”,即数据定义语言,用于描述数据库中要存储的现实世界实体的语言,属于SQL语言(结构化查询语言)的组成部分。
不同的数据库在不同的场景下有着各自的优劣势,在大数据场景下,想要适用各种场景下的数据存储,以及具备较好的查询性能,需要不同的数据库配合使用,且生成数据库表,需要掌握各种数据库操作技术,手动编写各种数据库的建表语句,进行导入数据任务、清理数据任务等操作,使用门槛高、且操作繁琐。
Elasticsearch(分布式搜索和分析引擎)作为大数据场景下常用的搜索引擎,能够更快速高效的处理普通查询,但在Elasticsearch中生成数据库表时,同一类型下不同的数据库表的相同字段、字段类型和index(索引)属性一致时才能够建表成功。
目前在Elasticsearch中生成数据库表,需要人为介入,且建表失败以后,只能通过查看Elasticsearch的日志信息,找到冲突的字段,修改建表语句再次执行建表操作,从而在同一类型下增加数据库表,需要频繁的重试才能建表成功,操作繁琐。
为解决上述问题,本申请实施例提出了一种数据库表的生成***,可以应用于例如采用ElasticSearch、Mpp、Oracle、PostgreSql数据库的数据库服务器。该生成***可以先对需求表信息进行检测,当确定需求表信息中不存在冲突字段时,根据需求表信息生成通用的建表语句,无需手动编写数据库建表语句,就能根据需要建表的数据库的类型,将通用的建表语句转换成对应该数据库类型的建表语句,从而生成与该数据库对应的数据库表。
参见图1,上述生成***例如包括模板管理模块100、检测模块200、生成模块300和建表模块400;其中,模板管理模块100用于对excel模板进行维护;检测模块200用于对已输入需求表信息的excel进行检测,以确定该excel是否存在冲突字段,并将不存在冲突字段的excel发送给生成模块300;生成模块300用于接收检测模块200发送的不存在冲突字段的excel,并根据该excel的表信息生成建表语句;建表模块400用于执行生成模块300生成的建表语句,生成与数据库对应的数据库表。
用户可通过模板管理模块100下载excel模板,并在该excel模板中输入需求表信息,再将已输入需求表信息的excel例如通过程序接口发送给检测模块200;检测模块200接收该excel(即需要评审的excel),并对其进行检测,检测模块200例如通过java IO流(用于处理输入并产生输出)的形式,分别读取该excel的表信息和总库中的表信息,以检测该excel是否存在冲突字段;
其中,所述总库为所述生成***的数据库,用于维护不存在冲突字段的excel,不同于需要建表的数据库;
所述冲突字段,指不符合数据库对应的建表规范要求的字段,在后续生成建表语句操作该字段时会发生错误,从而导致无法建表成功。
为实现根据建表语句字段转换关系列表,生成对应数据库类型的建表语句,在一些实施例中,所述生成模块300根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
所述建表模块400根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
为实现根据不存在冲突字段的需求表信息生成建表语句,在一些实施例中,所述***还包括:
检测模块200,用于根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,所述生成模块300根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
为实现对数据库表的维护,在一些实施例中,所述建表模块400生成与所述数据库对应的数据库表之后,还用于:
所述建表模块400根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
需要说明的是,本申请实施例中以将需求表信息输入excel为例进行说明,但不限于此,也可以输入到其他格式的文件中。
参见图2,本申请实施例提供的一种评审及维护excel表信息的方法,具体步骤包括:
步骤S201、检测模块200读取需要评审的excel中的表信息,并存储到上述生成***内存中;
步骤S202、检测模块200读取总库中的表信息,并存储到上述生成***内存中;
步骤S203、检测模块200遍历上述生成***内存中需要评审的excel表信息和总库中的表信息,并进行比对,以确定该excel是否存在冲突字段,若存在,则进行步骤S204;若不存在,则进行步骤S205;
将总库中同一索引下的数据库表的表信息,例如表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息组成一个Map集合;其中,同一索引下的数据库表都属于同一种类型的数据库表,也就是说,一个总库中有n个索引,就有n种类型的数据库表,就可以组成n个Map集合;
将上述excel的表信息,例如表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息组成一个Map集合;
遍历上述这些Map集合,比较该excel的表信息组成的Map集合与这n个Map集合中同名字段的属性参数例如键值,确定同名字段的属性参数是否一致,当同名字段在这些集合中的键(即key值)相同时,若在这些集合中该键对应的取值(即value值)也相同,则表示该excel的表信息中不存在冲突字段。
步骤S204、检测模块200在***用户界面输出错误信息,该错误信息包括:冲突字段以及数据库表存在该冲突字段的字段属性信息,便于后续用户根据该错误信息对该excel的表信息进行修改;用户根据上述错误信息,对该excel中的冲突字段的字段属性信息进行修改,以提高建表的成功率,再将修改后的excel重新通过程序接口发送给检测模块进行检测,进行步骤S201;
步骤S205、检测模块200通过XSSFWorkbook工具自动复制不存在冲突字段的excel的表信息到总库中;
通过XSSFWorkbook工具读取excel中的表信息生成XSSFWorkbook类,通过操作XSSFWorkbook类的属性来复制该excel的表信息及风格样式等信息到总库中。也就是说,总库对所有不存在冲突字段的表信息进行保存并维护,便于后续建新表时对新excel的表信息进行比对,从而确定新excel的表信息中不存在不符合规范的字段,从而提升建表的成功率;
步骤S206、生成模块300根据不存在冲突字段的excel的表信息,生成建表所需要的通用的DDL建表语句;
步骤S207、建表模块400检查需要建表的数据库中是否已经生成与上述excel表信息相对应的数据库表,若未生成,则根据数据库的类型将通用的DDL建表语句转换成对应该数据库类型的建表语句,执行建表操作;
需要说明的是,建表模块400在执行建表操作时,可以根据转换后的DDL建表语句中的参数选择是否创建导入任务以及清理任务;创建导入任务,将存入消息中间件消息队列中的第三方数据(即数据库之外的数据)自动添加到已建好的数据库表中,实现批量添加新数据到数据库表中,减少人工操作,提高数据导入效率;创建清理任务,可将数据库表中的数据自动清除,减少存储空间占用。
上述DDL建表语句,例如:
其中,sql就是建表语句;importInfo表示创建导入任务的参数,cleanInfo表示创建清理任务的参数。
上述建表模块400执行建表操作,并根据转换后的DDL建表语句中的参数选择是否创建导入任务以及清理任务,参见图3,具体步骤包括:
步骤S301、通过读取上述生成***配置文件中的参数,获取底层存储组件的类型(即数据库的类型);
本申请实施例中需要建表的数据库的类型例如:ElasticSearch、Mpp、Oracle、PostgreSql;
步骤S302、根据存储组件类型相应的映射关系,将上述生成模块300生成的通用的DDL建表语句转换成对应该数据库类型的DDL建表语句;
***程序中预先设置了DDL建表语句与上述4种数据库的建表语句的映射关系表,该映射关系表包括建表语句字段类型在这4种数据库中的编写方法,例如参见表1,包含了DDL建表语句字段类型与ES、Mpp数据库的对应关系;
在数据库中执行建表之前,根据该映射关系表对通用的DDL建表语句进行转换,将通用的DDL建表语句转换成对应该数据库类型的DDL建表语句,保证建表成功;
DDL建表语句传入字段类型 | 映射到ES字段类型 | 映射到Mpp字段类型 |
INT | long | numeric |
INT2 | integer | numeric |
BYTE | byte | numeric |
DOUBLE | double | numeric |
VARchar | keyword | text |
TIMESTAMP | long | TIMESTAMP |
BIGINT | long | bigint |
表1
其中,DDL建表语句传入字段类型表示通用DDL建表语句字段;ES表示ElasticSearch类型的数据库对应的建表语句字段;Mpp表示Massively ParallelProcessing类型的数据库对应的建表语句字段。
步骤S303、执行转换后的DDL建表语句;
步骤S304、根据转换后的DDL建表语句中的参数,确定参数中是否包含importInfo(表示创建导入任务的参数),若包含,则进行步骤S305;若不包含,则进行步骤S307;
步骤S305、检查是否已经存在导入任务,若存在,则进行步骤S307;若不存在,则进行步骤S306;
步骤S306、创建导入任务,将消息中间件消息队列中的第三方数据导入到数据库表中;
其中,所述消息中间件,基于队列与消息传递技术,在网络环境中为应用***提供同步或异步、可靠的消息传输的支撑性软件***;发送者将消息发送给消息中间件的消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者;所述消息队列,根据接收者的需求完成指定消息的接收;
所述第三方数据,即上述生成***之外的数据。
步骤S307、根据转换后的DDL建表语句中的参数,确定参数中是否包含cleanInfo(表示创建清理任务的参数),若包含,则进行步骤S308;若不包含,则结束操作;
步骤S308、检查是否已经存在清理任务,若存在,则结束操作;若不存在,则进行步骤S309;
需要说明的是,清理任务是一项定时任务,根据预定的时间执行即可;
步骤S309、创建清理任务,并定时执行清理任务,用于对数据库表中的数据进行清除操作。
综上所述,参见图4,本申请实施例提供的一种数据库表的生成方法,包括:
步骤S101、获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
其中,所述需求表信息,例如上述在excel模板中输入需求信息的excel;所述建表语句,例如上述的DDL建表语句;
步骤S102、根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表;
其中,所述数据库的类型,例如包括上述的ElasticSearch、Mpp、Oracle、PostgreSql数据库;
通过步骤S102,无需手动编写建表语句,就可实现将通用的建表语句自动转换成对应该数据库类型的建表语句,实现一套建表语句满足在不同类型数据库中的建表需求,兼容性高。
为实现生成对应数据库类型的建表语句,获得较好的兼容性,在一些实施例中,根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句;
其中,所述通用的建表语句,例如上述的DDL建表语句;所述预设的建表语句字段转换关系列表,例如上述的DDL建表语句与不同类型数据库的建表语句的映射关系表,例如上述的表1。
为实现根据需求表信息生成通用的建表语句,在一些实施例中,所述获取并根据需求表信息,生成建表语句,包括:
根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功;
其中,所述检测,通过上述检测接口对需求表信息进行评审,比较需求表信息与总库中的表信息,以确定需求表信息中不存在影响建表成功的不规范字段,这些字段就是所述冲突字段。
为提升建表的成功率,在一些实施例中,所述根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,包括:
利用所述当前存在的数据库中同一类型数据库表中的表信息生成第一键值对集合,利用所述需求表信息生成第二键值对集合;其中,任一所述键值对集合包括:表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息;
比较所述第一键值对集合和第二键值对集合中同名字段的键值,当所述同名字段在两个集合中的两个键相同,并且这两个键各自对应的取值也相同,确定所述需求表信息不存在冲突字段;
其中,所述当前存在的数据库,例如上述的总库;所述键值对集合,例如上述的Map集合;所述键值,例如上述的key值和value值,两个集合中的同名字段,当两个key值相同时,对应各自key值的两个value值也相同时,确定需求表信息中不存在冲突字段。
为实现根据错误信息修改需求表信息,提升建表的成功率,在一些实施例中,当确定所述需求表信息存在冲突字段时,所述方法还包括:
输出错误信息;其中,所述错误信息包括:冲突字段以及所述需求表信息中所述冲突字段的字段属性信息;
根据所述错误信息,修改所述需求表信息;
其中,所述字段属性信息,例如字段名称、字段类型、字段长度。
为实现对数据库表的管理,在一些实施例中,生成与所述数据库对应的数据库表之后,所述方法还包括:
根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据;
其中,所述参数,例如上述的importInfo、cleanInfo;所述新的数据,例如上述的第三方数据。
为提升数据的导入效率,减少人工操作,在一些实施例中,所述向所述数据库表中添加新的数据,包括:
通过消息中间件接收来自所述数据库之外的数据,并存储在消息队列中;
获取所述消息队列中的数据,并添加至所述数据库表中。
下面介绍一下本申请实施例提供的设备或装置,其中与上述方法中所述的相同或相应的技术特征的解释或举例说明,后续不再赘述。
参见图5,本申请实施例提供的另一种数据库表的生成装置,包括:
处理器600,用于读取存储器620中的程序,执行下列过程:
获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
在一些实施例中,根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
在一些实施例中,所述获取并根据需求表信息,生成建表语句,包括:
根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
在一些实施例中,所述根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,包括:
利用所述当前存在的数据库中同一类型数据库表中的表信息生成第一键值对集合,利用所述需求表信息生成第二键值对集合;其中,任一所述键值对集合包括:表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息;
比较所述第一键值对集合和第二键值对集合中同名字段的键值,当所述同名字段在两个集合中的两个键相同,并且这两个键各自对应的取值也相同,确定所述需求表信息不存在冲突字段。
在一些实施例中,当确定所述需求表信息存在冲突字段时,所述方法还包括:
输出错误信息;其中,所述错误信息包括:冲突字段以及所述需求表信息中所述冲突字段的字段属性信息;
根据所述错误信息,修改所述需求表信息。
在一些实施例中,生成与所述数据库对应的数据库表之后,所述方法还包括:
根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
在一些实施例中,所述向所述数据库表中添加新的数据,包括:
通过消息中间件接收来自所述数据库之外的数据,并存储在消息队列中;
获取所述消息队列中的数据,并添加至所述数据库表中。
在一些实施例中,本申请实施例提供的数据库表的生成装置还包括收发机610,用于在处理器600的控制下接收和发送数据。
其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
在一些实施例中,本申请实施例提供的数据库表的生成装置还包括用户接口630,用户接口630可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
在一些实施例中,处理器600可以是CPU(中央处埋器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
本申请实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的任一所述方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的任一所述方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例提供了一种计算机可读存储介质,用于储存为上述本申请实施例提供的装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。所述计算机可读存储介质,可以是非暂时性计算机可读介质。
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据库表的生成***,其特征在于,包括:
生成模块,用于获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
建表模块,用于根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
2.根据权利要求1所述的***,其特征在于,所述生成模块根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
所述建表模块根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
3.根据权利要求1所述的***,其特征在于,还包括:
检测模块,用于根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,所述生成模块根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
4.根据权利要求1所述的***,其特征在于,所述建表模块生成与所述数据库对应的数据库表之后,还用于:
所述建表模块根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
5.一种数据库表的生成方法,其特征在于,所述方法包括:
获取并根据需求表信息,生成建表语句;其中,所述需求表信息中包括需要新建的数据库表的表信息;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库类型对应的建表语句;通过执行与所述数据库类型对应的建表语句,生成与所述数据库对应的数据库表。
6.根据权利要求5所述的方法,其特征在于,根据需求表信息,生成建表语句,包括:根据需求表信息,生成多种类型数据库表对应的通用的建表语句;
根据需要新建的数据库表所对应的数据库的类型,将所述建表语句转换成与所述数据库的类型对应的建表语句,包括:
获取预设的建表语句字段转换关系列表,其中包括所述数据库的类型对应的建表语句的字段,与所述通用的建表语句的字段的对应关系;
根据所述建表语句字段转换关系列表,将所述通用的建表语句转换成与所述数据库的类型对应的建表语句。
7.根据权利要求5所述的方法,其特征在于,所述获取并根据需求表信息,生成建表语句,包括:
根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,当确定所述需求表信息中不存在冲突字段时,根据所述需求表信息,生成建表语句;其中,所述冲突字段,指不符合所述数据库对应的建表规范要求的字段,执行所述冲突字段将导致无法建表成功。
8.根据权利要求7所述的方法,其特征在于,所述根据当前存在的数据库中的数据库表的表信息,对所述需求表信息进行检测,包括:
利用所述当前存在的数据库中同一类型数据库表中的表信息生成第一键值对集合,利用所述需求表信息生成第二键值对集合;其中,任一所述键值对集合包括:表名称、字段名称、字段类型、字段长度以及用于指示字段是否是查询字段的标记信息;
比较所述第一键值对集合和第二键值对集合中同名字段的键值,当所述同名字段在两个集合中的两个键相同,并且这两个键各自对应的取值也相同,确定所述需求表信息不存在冲突字段。
9.根据权利要求5所述的方法,其特征在于,生成与所述数据库对应的数据库表之后,所述方法还包括:
根据转换后的建表语句中的参数,创建导入任务和/或清理任务,对所述数据库表中的数据进行管理,其中,所述导入任务用于向所述数据库表中添加新的数据;所述清理任务用于从所述数据库表中清除数据。
10.一种数据库表的生成装置,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求5至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211388533.2A CN115658694A (zh) | 2022-11-08 | 2022-11-08 | 一种数据库表的生成***、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211388533.2A CN115658694A (zh) | 2022-11-08 | 2022-11-08 | 一种数据库表的生成***、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115658694A true CN115658694A (zh) | 2023-01-31 |
Family
ID=85016699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211388533.2A Pending CN115658694A (zh) | 2022-11-08 | 2022-11-08 | 一种数据库表的生成***、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658694A (zh) |
-
2022
- 2022-11-08 CN CN202211388533.2A patent/CN115658694A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
EP3940550A1 (en) | Data compression methods and systems based on key-value store | |
CN110618999A (zh) | 数据的查询方法及装置、计算机存储介质、电子设备 | |
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
CN110704325B (zh) | 数据处理方法及装置、计算机存储介质及电子设备 | |
CN116244387A (zh) | 实体关系构建方法、装置、电子设备及存储介质 | |
CN113190517B (zh) | 数据集成方法、装置、电子设备和计算机可读介质 | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
WO2024012195A1 (zh) | 统一校验方法、装置、设备和存储介质 | |
CN113220710A (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN115658694A (zh) | 一种数据库表的生成***、方法及装置 | |
WO2022068348A1 (zh) | 关系图谱构建方法、装置、电子设备及存储介质 | |
CN113468258A (zh) | 一种异构数据的转换方法、装置及存储介质 | |
CN114238390A (zh) | 数据仓库优化方法、装置、设备及存储介质 | |
CN113868138A (zh) | 测试数据的获取方法、***、设备及存储介质 | |
CN113127496A (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
CN110928898A (zh) | 数据采集方法、数据采集装置、存储介质及电子设备 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN116680299B (zh) | 数据库查询方法、***、存储介质以及设备 | |
CN115563183B (zh) | 查询方法、装置及程序产品 | |
CN113326268A (zh) | 一种数据写入、读取方法及装置 | |
CN115757640A (zh) | 一种基于大数据技术的报表查询方法及*** | |
CN118331990A (zh) | 数据库操作语句的优化方法及相关产品 | |
CN115827677A (zh) | 一种数据库操作的方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |