CN117667915A - 一种数据管理方法及相关系统 - Google Patents
一种数据管理方法及相关系统 Download PDFInfo
- Publication number
- CN117667915A CN117667915A CN202211355721.5A CN202211355721A CN117667915A CN 117667915 A CN117667915 A CN 117667915A CN 202211355721 A CN202211355721 A CN 202211355721A CN 117667915 A CN117667915 A CN 117667915A
- Authority
- CN
- China
- Prior art keywords
- sql statement
- service
- metadata
- data
- model
- 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
- 238000013523 data management Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012986 modification Methods 0.000 claims abstract description 66
- 230000004048 modification Effects 0.000 claims abstract description 66
- 238000007726 management method Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000008447 perception Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 241000220317 Rosa Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据管理方法,包括:接收用户输入的SQL语句(也称作第一SQL语句),将该SQL语句拆分为针对基础表的SQL语句(也称作第二SQL语句)和针对扩展表的SQL语句(也称作第三SQL语句),其中,基础表用于存储变更前的业务模型对应的基础业务数据,扩展表用于存储变更后的业务模型对应的扩展业务数据,然后分别执行拆分后的SQL语句。该方法将业务模型对应的业务数据按照基础业务数据和扩展业务数据分别存储在基础表和扩展表中,并将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表(如基础表)的结构,实现了动态变更业务模型,降低了生产事故发生的概率。
Description
本申请要求于2022年08月24日提交中国国家知识产权局、申请号为202211020621.7、发明名称为“一种业务模型扩展方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据管理方法、数据管理系统、计算设备集群、计算机可读存储介质、计算机程序产品。
背景技术
随着数据库技术的不断发展,越来越多的企业、组织选择将业务迁移至线上,将业务数据存储在数据库中。如此,用户可以通过上层的业务系统,调用数据库管理系统(database management systems,DBMS)对数据库中的业务数据进行管理。
其中,业务系统是指提供业务办理能力的系统。例如,业务系统可以为考勤管理系统、考试管理系统或者物料管理系统。业务系统的每个业务对应有业务模型,该业务模型也称作业务对象(Business Object,BO)、业务模型对象。业务模型中包括业务字段,数据库管理系统接收到业务系统的业务请求,可以基于业务模型中定义的业务字段,将相应的业务数据存储在数据库中,并支持对业务数据进行增加、删除、查找或修改等操作。
当业务需求发生变更时,需要对已有的业务模型进行变更,例如是对已有的业务模型扩展字段,或者添加新的业务模型。然而,上述变更往往伴随着数据库表结构的修改。如此,新的业务系统上线时,通常需要中断当前正在进行的数据管理操作,例如中断业务数据的查询操作,容易导致生产事故,影响业务的可靠性和稳定性,降低了用户体验。
发明内容
本申请提供了一种数据管理方法,该方法通过将业务模型对应的业务数据按照基础业务数据和扩展业务数据分别存储在基础表和扩展表中,并将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表(如基础表)的结构,也就无需中断业务,实现了动态变更业务模型,降低了生产事故发生的概率,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。本申请还提供了上述方法对应的数据管理系统、计算设备集群、计算机可读存储介质、计算机程序产品。
第一方面,本申请提供一种数据管理方法。该方法可以由数据管理系统执行。数据管理系统可以是一种为管理数据库而设计的软件系统。上述软件系统可以部署在计算设备集群中,计算设备集群运行软件系统对应的程序代码,从而执行本申请的数据管理方法。需要说明的是,数据管理系统也可以是部署有上述软件系统的硬件系统,例如是部署有上述软件系统的计算设备集群。
具体地,数据管理系统接收用户输入的第一结构化查询语言SQL语句,将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,所述基础表用于存储变更前的业务模型对应的基础业务数据,所述扩展表用于存储变更后的业务模型对应的扩展业务数据,执行针对所述基础表的所述第二SQL语句以及针对所述扩展表的所述第三SQL语句。
每个SQL语句可以对应至少一个操作,该方法将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表(如基础表)的结构,也就无需中断业务,实现了动态变更业务模型,降低了生产事故发生的概率,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。
在一些可能的实现方式中,数据管理系统在拆分SQL语句时,可以根据所述第一SQL语句获取表信息,然后根据所述表信息以及所述变更前的业务模型的元数据,生成针对基础表的第二SQL语句,根据所述表信息以及所述变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
该方法通过结合表信息以及变更前、后的业务模型的元数据,将SQL语句拆分为针对基础表的SQL语句和针对扩展表的SQL语句,一方面保证操作的完整性,另一方面无需更改已有数据库表的结构,保障了业务的可靠性和稳定性。
在一些可能的实现方式中,数据管理系统可以解析第一SQL语句,获得抽象语法树。抽象语法树,是源代码的抽象语法结构的树状表现形式。抽象语法树上的每个节点都表示源代码中的一种结构。基于此,数据管理系统解析第一SQL语句获得的抽象语法树中的每个节点可以表示第一SQL语句中的一种结构。数据管理系统可以从抽象语法树中获取表信息。其中,表信息包括所要处理的数据库表的表名。进一步地,表信息还可以包括所要处理的数据库表中数据列的列名。数据管理系统可以识别抽象语法树中表示表名、列名或者包括列名的条件表达式的节点,从而获得表信息。
数据管理系统通过对SQL语句进行语法解析,可以提取到表信息,从而为后续的SQL语句拆分提供帮助。
在一些可能的实现方式中,所述扩展表用于按列存储所述扩展业务数据,相应地,数据管理系统可以根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址,然后数据管理系统可以按照所述地址执行对所述目标数据的操作。如此,可以实现灵活的扩展,不存在空间浪费。
在一些可能的实现方式中,所述第一SQL语句用于查询业务数据。相应地,数据管理系统还可以将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并,然后向用户返回合并后的结果集。
该方法通过将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,并将操作所得的结果集合并,在实现了动态变更业务模型,保障业务正常运行的基础上,实现用户无感知,提升了用户体验。
在一些可能的实现方式中,数据管理系统在合并结果集时,可以根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。具体地,数据管理系统可以依次遍历基础表的数据,对于每一行基础表的数据,都从扩展表数据中将属于该行的扩展列数据按照元数据中定义的位置关系进行合并,并产生新的完整行数据。
该方法通过将对业务数据的操作拆分为对基础表的操作和对扩展表的操作,然后将结果集中属于同一行的数据进行合并,可以达到重构业务模型时直接对业务数据进行操作的效果,由此实现用户无感知。
在一些可能的实现方式中,所述变更后的业务模型的元数据包括所述变更前的业务模型的元数据和扩展列的元数据。
该方法通过新增元数据对业务模型描述,通过维护业务模型的元数据、扩展列元数据实现对业务模型的管理,降低了业务模型的复杂度,进而降低了业务模型的管理难度。
在一些可能的实现方式中,变更后的业务模型是在运行时根据所述变更前的业务模型变更得到。如此,该方法可以实现在运行时动态扩展或新增业务模型,能够实现对业务模型的运行时变更,且不用修改任何数据库表结构;适用于业务模型经常变更的场景以及经常需要新增业务模型的情况,可以减少因数据库表结构变更引发的事故。
在一些可能的实现方式中,所述变更前的业务模型为模板业务模型或从所述模板业务模型派生出的模型。模板业务模型用于描述具备派生能力的业务模型,具备字段扩展能力,可以派生出有相同字段的模型。扩展业务模型可以继承自模板业务模型。扩展业务模型用于描述从模板业务模型派生出的业务模型,具备字段扩展能力。扩展业务模型可以对应多个扩展字段。
该方法通过在模板业务模型或由模板业务模型派生出的模型基础上新增扩展列元数据,即可实现动态新增业务模型,大大降低了动态新增业务模型的复杂度。
在一些可能的实现方式中,第一SQL语句所处理的数据包括所述扩展业务数据。如此,第一SQL语句可以被拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,如此可以不必更改已有数据库表(如基础表)的结构,也就无需中断业务,实现了动态变更业务模型,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。
在一些可能的实现方式中,第二SQL语句和第三SQL语句还可以具有嵌套关系。例如,查询条件中包括扩展字段时,第二SQL语句中嵌套有第三SQL语句,查询字段包括扩展字段时,第三SQL语句中嵌套有第二SQL语句。数据管理系统也可以在生成第二SQL语句、第三SQL语句后,按照嵌套关系先后执行上述第二SQL语句、第三SQL语句。
该方法通过按照嵌套关系执行第二SQL语句、第三SQL语句,可以保证对业务数据的操作的准确性,进而保证操作结果的准确性。
在一些可能的实现方式中,当第一SQL语句用于更新业务数据时,数据管理系统可以识别更新字段是否有扩展字段,然后再识别更新条件是否涉及基础表、扩展表,更新条件的识别结果可以分为三种情况:涉及基础表;涉及扩展表;涉及基础表和扩展表。数据管理系统可以根据上述识别结果,生成相应的SQL语句。其中,在更新字段无扩展字段,且更新条件不涉及扩展表的情况下,数据管理系统也可以不生成第三SQL语句。当第一SQL语句用于插入业务数据时,数据管理系统可以识别是否插入有扩展字段,若是,则生成第二SQL语句和第三SQL语句,将插入的业务数据拆分为基础业务数据、扩展业务数据,然后执行上述第二SQL语句和第三SQL语句,以将拆分后的业务数据分别插入基础表和扩展表。当第一SQL语句用于删除业务数据时,数据管理系统可以识别删除条件是否涉及基础表、扩展表,识别结果可以分为三种情况:涉及基础表;涉及扩展表;涉及基础表和扩展表。数据管理系统可以根据上述识别结果,生成相应的SQL语句。
该方法支持对更新、插入、删除等不同操作,识别操作字段或操作条件是否涉及扩展字段、扩展表,然后根据识别结果将第一SQL语句拆分为相应的第二SQL语句、第三SQL语句,具有较高可用性。
第二方面,本申请提供一种数据管理系统。该系统包括:
对象扩展模块,用于接收用户输入的第一结构化查询语言SQL语句;
所述对象扩展模块,还用于将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,所述基础表用于存储变更前的业务模型对应的基础业务数据,所述扩展表用于存储变更后的业务模型对应的扩展业务数据,所述业务模型由元数据管理模块进行管理,然后执行针对所述基础表的所述第二SQL语句以及针对所述扩展表的所述第三SQL语句。
在一些可能的实现方式中,所述对象扩展模块具体用于:
根据所述第一SQL语句获取表信息;
根据所述表信息以及所述变更前的业务模型的元数据,生成针对基础表的第二SQL语句,根据所述表信息以及所述变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
在一些可能的实现方式中,所述扩展表用于按列存储所述扩展业务数据,所述对象扩展模块具体用于:
根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址;
按照所述地址执行对所述目标数据的操作。
在一些可能的实现方式中,所述第一SQL语句用于查询业务数据,所述对象扩展模块还用于:
将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并;
向用户返回合并后的结果集。
在一些可能的实现方式中,所述对象扩展模块具体用于:
根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。
在一些可能的实现方式中,所述变更后的业务模型的元数据包括所述变更前的业务模型的元数据和扩展列的元数据。
在一些可能的实现方式中,所述变更后的业务模型是在运行时根据所述变更前的业务模型变更得到。
在一些可能的实现方式中,所述变更前的业务模型为模板业务模型或从所述模板业务模型派生出的模型。
第三方面,本申请提供一种计算设备集群。所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算设备或计算设备集群执行如第一方面或第一方面的任一种实现方式所述的数据管理方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的数据管理方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的数据管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种数据管理系统的架构示意图;
图2为本申请实施例提供的一种元数据模型的关系示意图;
图3为本申请实施例提供的一种数据管理方法的流程图;
图4为本申请实施例提供的一种配置界面的界面示意图;
图5为本申请实施例提供的一种数据管理方法中数据流和控制流的示意图;
图6为本申请实施例提供的一种计算设备的结构示意图;
图7为本申请实施例提供的一种计算设备集群的结构示意图;
图8为本申请实施例提供的另一种计算设备集群的结构示意图;
图9为本申请实施例提供的又一种计算设备集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
业务系统,是指提供业务办理能力的信息技术(information technology,IT)系统。该系统可以是软件系统,软件系统部署在计算设备集群中,计算设备集群运行软件系统对应的程序代码,以对外提供业务办理能力。该系统也可以是硬件系统,例如是具有业务办理能力的计算设备集群。
业务模型,也称作业务模型对象、业务对象,用于定义业务系统所处理的业务数据。业务模型通常包括至少一个业务字段。每个业务字段可以对应数据库表中的一个数据列。业务字段具有属性,例如为字段名称、字段类型、基数(Cardinality)中的一种或多种。基数是指数据库表的某个列中不重复行的总个数。高基数的业务字段通常可以作为索引字段,以提升查询效果。进一步地,业务字段的属性还可以包括缺省值。业务字段的上述属性也即业务数据的元数据,基于此,业务模型实质上是元数据模型。
为了便于理解,下面以业务模型“USER”示例说明。该示例中,业务模型“USER”包括字段名称为“USER_ID”、“USER_Name”、“gender”、“age”的业务字段。“USER_ID”的字段类型为“int”,缺省值可以为“1”,“USER_Name”的字段类型为“string”,缺省值可以为“Allen”,“gender”的字段类型为“string”,缺省值可以为“other”,“age”的字段类型为“int”,缺省值可以为“18”。上述业务字段中字段名称为“USER_ID”的业务字段的基数最高,可以作为索引字段。
随着业务系统的运行,业务需求可以发生变更,为了满足变更的业务需求,通常需要对已有的业务模型进行变更,例如是对已有的业务模型扩展字段,或者添加新的业务模型。相关技术通常是在创建数据库表时,预留若干数据库表的字段来为后期的业务模型扩展字段做准备,通过赋予扩展字段的含义实现扩展已有的业务模型。
如表1所示,在创建数据库表时提前预留ext1、ext2等字段,在后续业务需求变更时,为预留的字段赋予新的含义,例如是为ext1字段赋予名称“contact_info”,为ext2字段赋予名称“career”,实现扩展业务模型。
表1数据库表
id | name | address | age | gender | ext1 | ext2 | … |
1 | Steve | Shanghai | 18 | male | steve@abc.com | student | … |
2 | Rose | Beijing | 30 | female | rose@abc.com | teacher | … |
3 | Jack | Chengdu | 20 | male | jack@abc.com | engineer | … |
创建数据库表时预留字段能够一定程度上实现对已有业务模型的扩展,但是需要提前预留数据列。预留的数据列数量较少,则难以满足后续业务需求,并且预留的数据列的字段类型已经确定,只能存储对应类型数据,灵活性差。此外,数据库表的列数量通常有限制,比如MySQL表的最大列数量限制为4096,扩展性有限。为此,在很多场景中,通常需要中断业务,然后新增业务模型,并修改数据库表的结构,以满足变更后的业务需求。
其中,中断业务意味着需要中断当前正在进行的数据管理操作,例如中断业务数据的查询操作,容易导致生产事故,影响业务的可靠性和稳定性,降低了用户体验。
有鉴于此,本申请提供了一种数据管理方法。该方法可以由数据管理系统执行。数据管理系统可以是一种为管理数据库而设计的软件系统。该系统支持通过结构化查询语言(Structured Query Language,SQL)对数据库中业务数据进行管理。例如,数据管理系统可以基于SQL语句,通过Access、MySQL或者是PostgreSQL等DBMS对数据库中业务数据进行管理。上述软件系统可以部署在计算设备集群中,计算设备集群运行软件系统对应的程序代码,从而执行本申请的数据管理方法。需要说明的是,数据管理系统也可以是部署有上述软件系统的硬件系统,例如是部署有上述软件系统的计算设备集群。为了便于描述,下文以数据管理系统为软件系统示例说明。
具体地,数据管理系统采用基础表存储变更前的业务模型对应的基础业务数据,采用扩展表存储变更后的业务模型对应的扩展业务数据,相应地,数据管理系统接收到用户输入的SQL语句(为了描述方便,称作第一SQL语句),可以将该SQL语句拆分为针对基础表的SQL语句(为了描述方便,称作第二SQL语句)和针对扩展表的SQL语句(为了描述方便,称作第三SQL语句),然后分别执行上述第二SQL语句和第三SQL语句。
该方法通过将业务模型对应的业务数据按照基础业务数据和扩展业务数据分别存储在基础表和扩展表中,并将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表(如基础表)的结构,也就无需中断业务,实现了动态变更业务模型,降低了生产事故发生的概率,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图,对本申请的系统架构进行介绍。
参见图1所示的数据管理系统的架构示意图,该数据管理系统10位于上层的业务系统20和底层的数据库驱动30之间。该示例中,数据管理系统10、业务系统20、数据库驱动30为软件。
其中,业务系统20可以是应用或微服务,例如是基于Spring boot框架开发的应用或微服务。业务系统20属于代码层,业务系统20可以包括控制器controller、服务service和业务business。其中,controller用于提供业务接口,以供使用。service定义业务逻辑,通常是与数据库操作无关的逻辑,用于实现业务流程,business定义与数据库操作相关的逻辑,用于实现对数据库中业务数据的管理。
数据库驱动30是指数据库管理系统的驱动(driver)程序。该驱动程序可以连接数据库,从而实现访问数据库(图1未示出),并对数据库中的业务数据进行增加、删除、查找、修改等管理。在图1的实例中,数据库驱动30可以包括但不限于Access driver、MySQLdriver或者是PostgreSQL driver。
数据管理系统10可以是独立的应用或微服务,或者集成在DBMS中。图1以数据管理系统10独立于DBMS进行示例说明。具体地,数据管理系统10负责代理业务系统20(代码层)对数据库驱动层中数据库驱动30的调用,从而实现对数据库(图1未示出)中业务数据的管理。
数据管理系统10可以包括对象扩展模块102和元数据管理模块104。下面分别对各功能模块进行介绍。
元数据管理模块104用于管理业务模型。例如,用户可以新增扩展列的元数据,对业务模型进行描述,相应地,元数据管理模块104可以根据扩展列的元数据对业务模型进行变更,获得变更后的业务模型。变更后的业务模型的元数据包括变更前的业务模型的元数据和扩展列的元数据。其中,元数据管理模块104可以是在运行时根据变更前的业务模型变更得到变更后的业务模型。
其中,变更前的业务模型可以是模板业务模型(Stereo Business Object,StereoBO),或者是从模板业务模型派生出的业务模型。其中,从模板业务模型派生出的业务模型为扩展业务模型(Extend Business Object,Extend BO)。
参见图2所示的元数据模型的关系示意图,模板业务模型通常是继承自抽象业务模型(Abstract Business Object,Abstract BO)。抽象业务模型用于描述所有业务模型的抽象模型,不具备实例化能力。抽象业务模型通常对应多个业务字段,抽象业务模型对应的多个业务字段通过field表示。模板业务模型用于描述具备派生能力的业务模型,具备字段扩展能力,可以派生出有相同字段的模型。扩展业务模型可以继承自模板业务模型。扩展业务模型用于描述从模板业务模型派生出的业务模型,具备字段扩展能力。扩展业务模型可以对应多个扩展字段。其中,模板业务模型以及从模板业务模型派生出的业务模型的业务字段可以通过Extend Filed表示。此外,抽象业务模型还可以派生出具体的业务模型,记作BO,具体的业务模型具备实例化能力。
相应地,变更后的业务模型可以是从上述模板业务模型中派生出的扩展业务模型,或者是有扩展业务模型中派生出的扩展业务模型。
对象扩展模块102用于接收用户输入的第一SQL语句,将第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,执行针对基础表的第二SQL语句以及针对扩展表的第三SQL语句。其中,在拆分第一SQL语句时,对象扩展模块102可以解析第一SQL语句,获得抽象语法树(Abstract Syntax Tree,AST),然后通过抽象语法树和元数据将第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句。进一步地,当第一SQL语句用于查询业务数据,对象扩展模块102还用于将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并,向用户返回合并后的结果集。
元数据管理模块102通过维护业务模型的元数据、扩展列的元数据实现对业务模型的管理,对象扩展模块104接管对数据库访问的所有操作,将对业务数据的操作拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表的结构,也就无需中断业务,实现了动态变更业务模型,降低了生产事故发生的概率,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。
接下来,将从数据管理系统10的角度,对本申请提供的数据管理方法进行介绍。
参见图3所示的数据管理方法的流程图,该方法包括如下步骤:
S302:数据管理系统10获取扩展列的元数据。
扩展列是指在扩展表中的数据列。扩展列的元数据具体是描述扩展列存储的业务数据的数据。扩展列的元数据可以包括扩展列对应的字段名称、字段类型。进一步地,扩展列的元数据还可以包括缺省值、基数。其中,基数可以随着业务运行而更新。
当业务需求发生变更时,运营人员(如系统管理员)可以配置扩展列的元数据。参见图4所示的配置界面的示意图,配置界面400包括扩展字段配置组件402,扩展字段配置组件402包括字段名称配置控件4022、字段类型配置控件4024、缺省值配置控件4026,上述配置控件分别用于配置扩展字段的字段名称、字段类型、缺省值。进一步地,扩展字段配置组件402还包括字段添加控件4028、字段删除控件4029,字段添加控件4028用于添加新的扩展字段,字段删除控件4029用于删除已有的扩展字段,例如是删除已有的扩展字段中的指定字段。配置界面400还包括提交管理组件404,提交管理组件404包括确定控件4042和取消控件4044,其中,确定控件4042用于提交配置好的扩展列的元数据,取消控件4044用于取消对扩展列的元数据的配置。
当运营人员点击“确定控件4042”,数据管理系统10可以接收到运营人员根据业务需求的变更,所配置的扩展列的元数据。需要说明,图4是以配置界面为图形用户界面(graphical user interface,GUI)示例说明,在本申请实施例其他可能的实现方式中,配置界面也可以是命令用户界面(command user interface,CUI),运营人员也可以通过CUI配置扩展列的元数据。
S304:数据管理系统10根据变更前的业务模型以及扩展列的元数据,获得变更后的业务模型。
变更前的业务模型可以是模板业务模型。变更后的业务模型可以是由模板业务模型派生的业务模型,即扩展业务模型。进一步地,变更前的业务模型也可以是扩展业务模型,变更后的业务模型可以是由扩展业务模型派生出的扩展业务模型。其中,扩展列的元数据可以用于描述业务模型对应的数据库表所需要增加的业务数据。基于此,扩展列的元数据可以包括扩展字段的属性,包括但不限于字段名称、字段类型、缺省值或基数。
下面结合一示例进行说明。该示例中,变更前的业务模型为“User”,“User”中包括字段名称分别为“USER_ID”、“USER_Name”、“gender”、“age”的业务字段。针对不同类型用户(如教师和学生),往往还需要处理其他业务数据。例如,针对教师,可以增加字段名称为“course”的扩展列,运营人员可以配置扩展列的元数据为:(字段名称,course)、(字段类型,string)、(缺省值,null)。数据管理系统10根据扩展列的元数据对业务模型如“User”进行变更,获得变更后的业务模型。该变更户的业务模型的元数据包括变更前的业务模型的元数据以及扩展列的元数据。
需要说明的是,数据管理系统10在变更业务模型时,可以是在运行时变更得到业务模型。也就是,数据管理系统10可以在不中断当前正在执行的业务的情况下,执行上述S302、S304,从而实现用户无感知的业务模型变更(如业务模型动态扩展、动态新增)。
上述S302、S304为本申请实施例的可选步骤,在完成业务模型变更后,数据管理系统10可以执行后续步骤对数据库中的业务数据进行管理,而不必重复执行上述S302至S304。当业务需求再次发生变更,数据管理系统10可以再次执行上述S302至S304。
S306:数据管理系统10接收用户输入的第一SQL语句。
第一SQL语句用于对数据库表中业务数据进行管理。数据库表包括基础表和扩展表中的至少一种。基础表用于存储变更前的业务模型对应的基础业务数据,扩展表用于存储变更后的业务模型对应的扩展业务数据。
对数据库表中业务数据进行管理可以是增加、删除、修改或查询业务数据。基于此,第一SQL语句可以用于对基础业务数据和/或扩展业务数据进行增加、删除、修改或查询。第一SQL语句中可以包括关键字,如增加、删除、修改或查询,进一步地,第一SQL语句中还可以包括条件,例如为查询条件。
为了便于理解,本申请实施例还提供了示例对第一SQL语句进行说明。在一个示例中,第一SQL语句可以为:SELECT*FROM USER WHERE id=1。在另一个示例中,第一SQL语句也可以为:SELECT id,name,gender,age FROM USER WHERE course=“law”。
S308:数据管理系统10解析第一SQL语句,获得抽象语法树。
具体地,数据管理系统10可以将第一SQL语句输入语法分析器,如parser,进行语法分析,从而生成抽象语法树。抽象语法树,或者简称为语法树,是源代码的抽象语法结构的树状表现形式。抽象语法树上的每个节点都表示源代码中的一种结构。基于此,数据管理系统10解析第一SQL语句获得的抽象语法树中的每个节点可以表示第一SQL语句中的一种结构。该结构可以包括操作符、表名、列名、条件表达式中的任意一种或多种。其中,条件表达式中也可以包括列名,如“id”、“course”。
S310:数据管理系统10从抽象语法树中获取表信息。
表信息包括所要处理的数据库表的表名。进一步地,表信息还可以包括所要处理的数据库表中数据列的列名。数据管理系统10可以识别抽象语法树中表示表名、列名或者包括列名的条件表达式的节点,从而获得表信息。
上述S308、S310为本申请实施例的可选步骤,执行本申请实施例的数据管理方法也可以不执行上述步骤,例如数据管理系统10可以直接对第一SQL语句进行拆分,而无需将第一SQL语句转换为抽象语法树,并从中提取表信息。
S312:数据管理系统10根据表信息以及变更前的业务模型的元数据,生成针对基础表的第二SQL语句。
S314:数据管理系统10执行第二SQL语句。
具体地,数据管理系统10根据表信息识别第一SQL语句所处理的业务数据(例如是条件中涉及的业务数据或执行增加、删除、查找、修改操作的业务数据)是否包括基础业务数据,若是,则根据变更前的业务模型对应的基础表的表名,生成针对基础表的第二SQL语句。需要说明,当表信息中包括与基础业务数据对应的列名,数据管理系统10根据表信息中与基础业务数据对应的列名以及基础表的表名,生成针对基础表的第二SQL语句。
例如,第一SQL语句为SELECT*FROM T_USER WHERE id=1时,数据管理系统10识别到该SQL语句所处理的业务数据包括基础业务数据,根据基础表的表名“T_USER”生成第二SQL语句,具体为SELECT*FROM T_USER WHERE id=1。
然后,数据管理系统10可以根据第二SQL语句生成执行计划,例如数据管理系统10可以先生成逻辑执行计划,并通过优化器对逻辑执行计划进行优化,然后将优化后的逻辑执行计划转换为优化后的物理执行计划,再对物理执行计划进行优化,从而获得最终的执行计划,并按照该执行计划执行对基础表的操作。
S316:数据管理系统10根据表信息以及变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
S318:数据管理系统10执行第三SQL语句。
具体地,数据管理系统10根据表信息识别第一SQL语句所处理的业务数据是否包括扩展业务数据,若是,则根据变更后的业务模型对应的扩展表的表名,生成针对扩展表的第二SQL语句。需要说明,当表信息中包括与扩展业务数据对应的列名,数据管理系统10根据表信息中与扩展业务数据对应的列名以及扩展表的表名,生成针对扩展表的第三SQL语句。
例如,第一SQL语句为SELECT*FROM T_USER WHERE id=1时,数据管理系统10识别到该SQL语句所处理的业务数据包括扩展业务数据,根据扩展表的表名“T_USER_extend”生成第三SQL语句,具体为SELECT*FROM T_USER_extend WHERE rowKey=1。
类似地,数据管理系统10可以根据第三SQL语句生成执行计划,例如数据管理系统10可以先生成逻辑执行计划,并通过优化器对逻辑执行计划进行优化,然后将优化后的逻辑执行计划转换为优化后的物理执行计划,再对物理执行计划进行优化,从而获得最终的执行计划,并按照该执行计划执行对扩展表的操作。
在一些可能的实现方式中,扩展表可以采用按列存储方式存储扩展业务数据。基于此,数据管理系统10在执行对扩展表的操作时,可以根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址,然后按照所述地址执行对所述目标数据的操作。如此,可以实现灵活的扩展,不存在空间浪费。
在上述示例中,S312、S314与S316、S318相互独立,可以并行执行。在一些可能的实现方式中,第二SQL语句和第三SQL语句还可以具有嵌套关系。例如,查询条件中包括扩展字段时,第二SQL语句中嵌套有第三SQL语句,查询字段包括扩展字段时,第三SQL语句中嵌套有第二SQL语句。数据管理系统10也可以在生成第二SQL语句、第三SQL语句后,按照嵌套关系先后执行上述第二SQL语句、第三SQL语句。
例如,第一SQL语句为SELECT id,name,gender,age FROM USER WHERE course=“law”,数据管理系统10识别到该SQL语句所要查询的业务数据不包括扩展业务数据(查询字段不包括扩展字段),但是查询条件所涉及的业务数据包括扩展业务数据(查询条件包括扩展字段),数据管理系统10先生成第三SQL语句,具体为SELECT rowKey FROM T_USER_extend WHERR colName=“course”AND value=“Law”,然后生成第二SQL语句,具体为SELECT id,name,gender,age FROM T_USER WHERE id IN(SELECT rowKey FROM T_USER_extend WHERR colName=“course”AND value=“Law”)。
以上以第一SQL语句用于查询业务数据示例说明,第一SQL语句也可以用于增加(即插入)、删除业务数据或者是修改(即更新)业务数据。下面对第一SQL语句用于更新业务数据、插入业务数据、删除业务数据的场景进行示例说明。
与查询业务数据类似,当第一SQL语句用于更新业务数据时,数据管理系统10可以识别更新字段是否有扩展字段,然后再识别更新条件是否涉及基础表、扩展表,更新条件的识别结果可以分为三种情况:涉及基础表;涉及扩展表;涉及基础表和扩展表。数据管理系统10可以根据上述识别结果,生成相应的SQL语句。其中,在更新字段无扩展字段,且更新条件不涉及扩展表的情况下,数据管理系统10也可以不生成第三SQL语句。
当第一SQL语句用于插入业务数据时,数据管理系统10可以识别是否插入有扩展字段,若是,则生成第二SQL语句和第三SQL语句,将插入的业务数据拆分为基础业务数据、扩展业务数据,然后执行上述第二SQL语句和第三SQL语句,以将拆分后的业务数据分别插入基础表和扩展表。
当第一SQL语句用于删除业务数据时,数据管理系统10可以识别删除条件是否涉及基础表、扩展表,识别结果可以分为三种情况:涉及基础表;涉及扩展表;涉及基础表和扩展表。数据管理系统10可以根据上述识别结果,生成相应的SQL语句。
上述S312、S316为数据管理系统10将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句的一种具体实现,在本申请实施例其他可能的实现方式中,数据管理系统10也可以通过其他方式进行SQL语句拆分。
还需要说明的是,上述S306主要是从数据流(数据面)的角度进行了说明,参见图5,数据管理系统10在接管第一SQL语句后,还涉及控制面的处理逻辑。如图5所示,从控制流的角度,数据管理系统10还可以从数据库获取元数据,以便于对第一SQL语句进行拆分。在执行拆分后的SQL语句时,如执行第二SQL语句、第三SQL语句时,还可以更新元数据至数据库。
S320:数据管理系统10将执行第二SQL语句所得的第一结果集与执行第三SQL语句所得的第二结果集合并。
当第一SQL语句具有返回值,例如第一SQL语句用于查询业务数据时,数据管理系统10还可以将执行第二SQL语句所得的第一结果集与执行第三SQL语句所得的第二结果集合并。
其中,数据管理系统10可以根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。具体地,数据管理系统10可以依次遍历基础表的数据,对于每一行基础表的数据,都从扩展表数据中将属于该行的扩展列数据按照元数据中定义的位置关系进行合并,并产生新的完整行数据。
S322:数据管理系统10向用户返回合并后的结果集。
合并后的结果集可以包括上述新的完整行数据。完整行数据包括基础表中的行数据和扩展表中的行数据。
需要说明的是,上述S320、S322为本申请实施例的可选步骤,执行本申请实施例的方法,也可以不执行上述S322。例如,第一SQL语句不涉及扩展字段时,可以不执行上述S320、S322;又例如,第一SQL语句不包括返回值时,如第一SQL语句用于删除业务数据时,可以不执行上述S320、S322。
基于上述内容描述,本申请实施例提供了一种数据管理方法,该方法将业务模型对应的业务数据按照基础业务数据和扩展业务数据分别存储在基础表和扩展表中,并将对业务数据的增删改查等操作自动拆分为对基础表的操作和对扩展表的操作,无需更改已有数据库表(如基础表)的结构,也就无需中断业务,实现了动态变更业务模型,降低了生产事故发生的概率,保障了业务的可靠性和稳定性,并且业务模型变更可以实现用户无感知,提升了用户体验。此外,扩展表中按列存储扩展业务数据,可以实现灵活的扩展,减少了空间浪费。
基于上述方法实施例,本申请还提供一种数据管理系统10,如图1所示,该系统10包括:
对象扩展模块102,用于接收用户输入的第一结构化查询语言SQL语句;
所述对象扩展模块102,还用于将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,所述基础表用于存储变更前的业务模型对应的基础业务数据,所述扩展表用于存储变更后的业务模型对应的扩展业务数据,所述业务模型由元数据管理模块104进行管理,然后执行针对所述基础表的所述第二SQL语句以及针对所述扩展表的所述第三SQL语句。
示例性地,上述对象扩展模块102、元数据管理模块104可以通过硬件实现,或者可以通过软件实现。为了便于描述,下面以对象扩展模块102示例说明。
其中,当通过软件实现时,对象扩展模块102可以是运行在计算设备上的应用程序,如计算引擎等。该应用程序可以以虚拟化服务的方式提供给用户使用。虚拟化服务可以包括虚拟机(virtual machine,VM)服务、裸金属服务器(bare metal server,BMS)服务以及容器(container)服务。其中,VM服务可以是通过虚拟化技术在多个物理主机(如计算设备)上虚拟出虚拟机(virtual machine,VM)资源池以为用户按需提供VM进行使用的服务。BMS服务是在多个物理主机上虚拟出BMS资源池以为用户按需提供BMS进行使用的服务。容器服务是在多个物理主机上虚拟出容器资源池以为用户按需提供容器进行使用的服务。VM是模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。BMS是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以达到隔离用户空间、进程和资源的目的。应理解,上述虚拟化服务中的VM服务、BMS服务以及容器服务仅仅是作为具体的示例,在实际应用中,虚拟化服务还可以是其他轻量级或者重量级的虚拟化服务,此处不作具体限定。
当通过硬件实现时,对象扩展模块102中可以包括至少一个计算设备,如服务器等。或者,对象扩展模块102也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
在一些可能的实现方式中,所述对象扩展模块102具体用于:
根据所述第一SQL语句获取表信息;
根据所述表信息以及所述变更前的业务模型的元数据,生成针对基础表的第二SQL语句,根据所述表信息以及所述变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
在一些可能的实现方式中,所述扩展表用于按列存储所述扩展业务数据,所述对象扩展模块102具体用于:
根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址;
按照所述地址执行对所述目标数据的操作。
在一些可能的实现方式中,所述第一SQL语句用于查询业务数据,所述对象扩展模块102还用于:
将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并;
向用户返回合并后的结果集。
在一些可能的实现方式中,所述对象扩展模块102具体用于:
根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。
在一些可能的实现方式中,所述变更后的业务模型的元数据包括所述变更前的业务模型的元数据和扩展列的元数据。
在一些可能的实现方式中,所述变更后的业务模型是在运行时根据所述变更前的业务模型变更得到。
在一些可能的实现方式中,所述变更前的业务模型为模板业务模型或从所述模板业务模型派生出的模型。
本申请还提供一种计算设备600。如图6所示,计算设备600包括:总线602、处理器604、存储器606和通信接口608。处理器604、存储器606和通信接口608之间通过总线602通信。计算设备600可以是服务器或终端设备。应理解,本申请不限定计算设备600中的处理器、存储器的个数。
总线602可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线604可包括在计算设备600各个部件(例如,存储器606、处理器604、通信接口608)之间传送信息的通路。
处理器604可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器606可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器604还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。存储器606中存储有可执行的程序代码,处理器604执行该可执行的程序代码以实现前述数据管理方法。具体的,存储器606上存有数据管理系统10用于执行数据管理方法的指令。
通信接口603使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备600与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图7所示,所述计算设备集群包括至少一个计算设备600。计算设备集群中的一个或多个计算设备600中的存储器606中可以存有相同的、数据管理系统10用于执行数据管理方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备600也可以用于执行数据管理系统10用于执行数据管理方法的部分指令。换言之,一个或多个计算设备600的组合可以共同执行数据管理系统10用于执行数据管理方法的指令。
需要说明的是,计算设备集群中的不同的计算设备600中的存储器606可以存储不同的指令,用于执行数据管理系统10的部分功能。
图8示出了一种可能的实现方式。如图8所示,两个计算设备600A和600B通过通信接口608实现连接。计算设备600A中的存储器上存有用于执行对象扩展模块102的功能的指令。计算设备600B中的存储器上存有用于执行元数据管理模块104的功能的指令。换言之,计算设备600A和600B的存储器606共同存储了数据管理系统10用于执行数据管理方法的指令。
图8所示的计算设备集群之间的连接方式可以是考虑到本申请提供的数据管理方法需要维护元数据。因此,考虑将元数据管理模块104实现的功能交由计算设备600B执行。
应理解,图8中示出的计算设备600A的功能也可以由多个计算设备600完成。同样,计算设备600B的功能也可以由多个计算设备600完成。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图9示出了一种可能的实现方式。如图9所示,两个计算设备600C和600D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备600C中的存储器606中存有执行对象扩展模块102的功能的指令。同时,计算设备600D中的存储器606中存有执行元数据管理模块104的功能的指令。
图9所示的计算设备集群之间的连接方式可以是考虑到本申请提供的数据管理方法需要维护元数据,因此考虑将元数据管理模块104实现的功能交由计算设备600D执行。
应理解,图9中示出的计算设备600C的功能也可以由多个计算设备600完成。同样,计算设备600D的功能也可以由多个计算设备600完成。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于数据管理系统10用于执行数据管理方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述数据管理方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (19)
1.一种数据管理方法,其特征在于,所述方法包括:
接收用户输入的第一结构化查询语言SQL语句;
将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,所述基础表用于存储变更前的业务模型对应的基础业务数据,所述扩展表用于存储变更后的业务模型对应的扩展业务数据;
执行针对所述基础表的所述第二SQL语句以及针对所述扩展表的所述第三SQL语句。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,包括:
根据所述第一SQL语句获取表信息;
根据所述表信息以及所述变更前的业务模型的元数据,生成针对基础表的第二SQL语句,根据所述表信息以及所述变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
3.根据权利要求1或2所述的方法,其特征在于,所述扩展表用于按列存储所述扩展业务数据,所述执行针对所述扩展表的所述第三SQL语句,包括:
根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址;
按照所述地址执行对所述目标数据的操作。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一SQL语句用于查询业务数据,所述方法还包括:
将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并;
向用户返回合并后的结果集。
5.根据权利要求4所述的方法,其特征在于,所述将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并,包括:
根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述变更后的业务模型的元数据包括所述变更前的业务模型的元数据和扩展列的元数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述变更后的业务模型是在运行时根据所述变更前的业务模型变更得到。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述变更前的业务模型为模板业务模型或从所述模板业务模型派生出的模型。
9.一种数据管理系统,其特征在于,所述系统包括:
对象扩展模块,用于接收用户输入的第一结构化查询语言SQL语句;
所述对象扩展模块,还用于将所述第一SQL语句拆分为针对基础表的第二SQL语句和针对扩展表的第三SQL语句,所述基础表用于存储变更前的业务模型对应的基础业务数据,所述扩展表用于存储变更后的业务模型对应的扩展业务数据,所述业务模型由元数据管理模块进行管理,然后执行针对所述基础表的所述第二SQL语句以及针对所述扩展表的所述第三SQL语句。
10.根据权利要求9所述的系统,其特征在于,所述对象扩展模块具体用于:
根据所述第一SQL语句获取表信息;
根据所述表信息以及所述变更前的业务模型的元数据,生成针对基础表的第二SQL语句,根据所述表信息以及所述变更后的业务模型的元数据,生成针对扩展表的第三SQL语句。
11.根据权利要求9或10所述的系统,其特征在于,所述扩展表用于按列存储所述扩展业务数据,所述对象扩展模块具体用于:
根据所述扩展表的列长,确定所述第三SQL语句所操作的目标数据的地址;
按照所述地址执行对所述目标数据的操作。
12.根据权利要求9至11任一项所述的系统,其特征在于,所述第一SQL语句用于查询业务数据,所述对象扩展模块还用于:
将执行所述第二SQL语句所得的第一结果集与执行所述第三SQL语句所得的第二结果集合并;
向用户返回合并后的结果集。
13.根据权利要求12所述的系统,其特征在于,所述对象扩展模块具体用于:
根据所述变更前的业务模型的元数据以及所述变更后的业务模型的元数据,将所述第一结果集和所述第二结果集中属于同一行的数据合并。
14.根据权利要求9至13任一项所述的系统,其特征在于,所述变更后的业务模型的元数据包括所述变更前的业务模型的元数据和扩展列的元数据。
15.根据权利要求9至14任一项所述的系统,其特征在于,所述变更后的业务模型是在运行时根据所述变更前的业务模型变更得到。
16.根据权利要求9至15任一项所述的系统,其特征在于,所述变更前的业务模型为模板业务模型或从所述模板业务模型派生出的模型。
17.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至8任一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/081002 WO2024040931A1 (zh) | 2022-08-24 | 2023-03-13 | 一种数据管理方法及相关系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020621 | 2022-08-24 | ||
CN2022110206217 | 2022-08-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667915A true CN117667915A (zh) | 2024-03-08 |
Family
ID=90068820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211355721.5A Pending CN117667915A (zh) | 2022-08-24 | 2022-11-01 | 一种数据管理方法及相关系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667915A (zh) |
-
2022
- 2022-11-01 CN CN202211355721.5A patent/CN117667915A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491485B (zh) | 生成执行计划的方法、计划单元装置和分布式NewSQL数据库系统 | |
US10282664B2 (en) | Method and device for constructing event knowledge base | |
US20180225353A1 (en) | Distributed Database Processing Method and Device | |
US10635668B2 (en) | Intelligently utilizing non-matching weighted indexes | |
US10915532B2 (en) | Supporting a join operation against multiple NoSQL databases | |
US10095731B2 (en) | Dynamically converting search-time fields to ingest-time fields | |
US20180293257A1 (en) | Method for accessing distributed database and distributed data service apparatus | |
US11226960B2 (en) | Natural-language database interface with automated keyword mapping and join-path inferences | |
US10372760B2 (en) | Building queries directed to objects hosted on clouds | |
US10339151B2 (en) | Creating federated data source connectors | |
US11074260B2 (en) | Space-efficient methodology for representing label information in large graph data for fast distributed graph query | |
US9330372B2 (en) | Generating an improved development infrastructure | |
CN111666372A (zh) | 解析查询词query的方法、装置、电子设备和可读存储介质 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
US20220300503A1 (en) | Querying distributed databases | |
CN112463814A (zh) | 一种数据查询方法及装置 | |
CN116185389A (zh) | 一种代码生成方法、装置、电子设备及介质 | |
US10628416B2 (en) | Enhanced database query processing | |
CN117667915A (zh) | 一种数据管理方法及相关系统 | |
CN115292313A (zh) | 一种伪列实现方法、装置、电子设备及存储介质 | |
WO2024040931A1 (zh) | 一种数据管理方法及相关系统 | |
US11940966B2 (en) | Method, apparatus, and system for estimating database management system performance | |
US20240054112A1 (en) | Database view generator for safe object names | |
US11741312B2 (en) | Systems and methods for unsupervised paraphrase mining | |
US20210141777A1 (en) | Information management apparatus, information processing apparatus, and non-transitory computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |