CN113297165A - 数据处理方法、装置及数据库操作系统 - Google Patents
数据处理方法、装置及数据库操作系统 Download PDFInfo
- Publication number
- CN113297165A CN113297165A CN202010604984.XA CN202010604984A CN113297165A CN 113297165 A CN113297165 A CN 113297165A CN 202010604984 A CN202010604984 A CN 202010604984A CN 113297165 A CN113297165 A CN 113297165A
- Authority
- CN
- China
- Prior art keywords
- data
- connection
- database
- target
- expression information
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供数据处理方法、装置及数据库操作系统,其中所述数据处理方法包括:获取数据库中数据表的属性信息;根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及数据处理方法、装置及数据库操作系统。
背景技术
随着技术的发展,数据库不仅可以长期存储大量数据的集合,还能够实现有组织、可共享的管理数据,实现对数据安全稳定存储的同时,加快对数据处理的效率;在此过程中,数据库的优化器将起着至关重要的作用,不仅可以实现在合理的时间内寻找到一个合理的执行计划,还能够确保查询可以稳定快速的返回正确的结果,是支撑数据库操作数据的核心组件;而对于优化器来讲连接重新排序是比较复杂的,消耗的规则也是较多的,连接重新排序将直接影响优化器的性能,现有技术中优化器通常是基于交换律和结合律来进行连接顺序的枚举,每次只能够产生一到两个新连接顺序,效率低下。故对于连接重新排序来讲如何快速的枚举出全部的新连接顺序,将直接关系到优化器的性能。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法。本申请同时涉及一种数据处理装置,一种数据库操作系统,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
可选的,所述根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,包括:
提取所述属性信息中的主键信息;
在所述数据表中筛选出所述主键信息相同的数据表,组成所述数据表集合。
可选的,所述根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接,包括:
将所述数据表集合中的数据表作为节点,并基于所述数据表集合中数据表的主键信息,构建所述表连接。
可选的,所述将所述表连接分割为至少一个连接组,包括:
对所述表连接进行转换,获得中间表连接;
对所述中间表连接进行分割处理,获得至少一个所述连接组。
可选的,所述对所述中间表连接进行分割处理,获得至少一个所述连接组,包括:
确定所述中间表连接中包含的中间数据表;
基于所述中间数据表之间的关联关系对所述中间表连接进行分割处理,获得至少一个所述连接组。
可选的,所述根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接,包括:
确定所述数据表集合中数据表之间的关联关系;
根据所述关联关系构建所述数据表集合中数据表的连接网;
将所述连接网转换后获得的连接树作为所述表连接。
可选的,所述基于所述连接组生成对所述数据库进行数据操作的表达信息,包括:
确定所述连接组中包含的第一子连接和第二子连接;
通过读取所述连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
可选的,所述基于所述连接组生成对所述数据库进行数据操作的表达信息步骤执行之后,还包括:
获取针对所述数据库中的数据表提交的操作请求;
根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息;
将所述目标表达信息输入至所述数据库对应的数据库优化器,获得所述操作请求对应的目标数据组成的目标数据表。
可选的,所述根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息,包括:
对所述操作请求进行解析,获得所述操作数据;
根据所述操作数据判断与所述操作请求关联的数据表数目是否大于预设的数目阈值;
若是,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的至少两个子表达信息,组成所述目标表达信息;
若否,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的子表达信息,作为所述目标表达信息。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:
获取模块,被配置为获取数据库中数据表的属性信息;
组成模块,被配置为根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
构建模块,被配置为根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
生成模块,被配置为将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
根据本申请实施例的第三方面,提供了一种数据库操作系统,包括:
客户端,计算节点,存储节点;
所述客户端,用于接收用户输入的查询指令;
所述计算节点,用于对所述查询指令进行解析,获得针对数据库进行操作的表达信息;基于所述表达信息确定目标连接组,并读取所述目标连接组对应的主键信息;
所述存储节点,用于在所述数据库中查询所述主键信息对应的数据表,并在所述数据表中读取与所述查询指令对应的目标数据返回所述客户端。
可选的,所述基于所述表达信息确定目标连接组,包括:
将所述表达信息输入至所述数据库对应的数据库优化器,获得所述目标连接组。
可选的,所述表达信息通过如下方式创建:
确定所述目标连接组中包含的第一子连接和第二子连接;
通过读取所述目标连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
可选的,所述在所述数据表中读取与所述查询指令对应的目标数据返回所述客户端,包括:
通过对所述表达信息进行解析,获得数据键值;
基于所述数据键值读取所述数据表,根据读取结果确定所述目标数据;
根据所述目标数据组成目标数据表,并向所述客服端返回所述目标数据表。
根据本申请实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
根据本申请实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本申请提供的数据处理方法,通过获取数据库中数据表的属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,根据数据表集合中各个数据表之间的关联关系,构建所述数据表集合对应的表连接,之后将表连接分割为至少一个连接组,最后生成针对所述数据库进行数据操作的表达信息,实现了通过构建所述表连接的方式,将数据库中具有关联关系的数据表进行绑定,并对所述表连接进行分割,可以快速的枚举出较多的表达信息,从而做到与数据库的优化器具有更好的结合,实现支持更多的数据库优化规则,进一步提高数据库的数据处理效率。
附图说明
图1是本申请一实施例提供的一种数据处理方法的流程图;
图2是本申请一实施例提供的第一种表连接的示意图;
图3是本申请一实施例提供的第二种表连接的示意图;
图4是本申请一实施例提供的一种中间表连接的示意图;
图5是本申请一实施例提供的一种应用于查询场景中的数据处理方法的处理流程图;
图6是本申请一实施例提供的一种数据处理装置的结构示意图;
图7是本申请一实施例提供的一种数据库操作系统的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请中,提供了一种数据处理方法,本申请同时涉及一种数据处理装置,一种数据库操作系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种数据处理方法的流程图,具体包括以下步骤:
步骤S102,获取数据库中数据表的属性信息。
实际应用中,在从数据库中查询数据之前,需要将数据库中数据表涉及的全部连接顺序进行枚举,然后根据枚举出的各个连接顺序的损失选择出最终的连接顺序,作为查询结果输出;然而在枚举的过程中,通常是基于交换律和结合律实现,并且每次调用只能够产生一到两个新顺序,效率低下。
本申请提供的数据处理方法,为了提高枚举效率,从而实现提高数据库的数据处理效率,通过获取数据库中数据表的属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,根据数据表集合中各个数据表之间的关联关系,构建所述数据表集合对应的表连接,之后将表连接分割为至少一个连接组,生成针对所述数据库进行数据操作的表达信息,实现了通过构建所述表连接的方式,将数据库中具有关联关系的数据表进行绑定,并对所述表连接进行分割,可以快速的枚举出较多的表达信息,从而做到与数据库的优化器具有更好的结合,实现支持更多的数据库优化规则,进一步提高数据库的数据处理效率。
实际应用中,所述数据库是遵循SQL(结构化查询语言,Structured QueryLanguage)标准的数据库,可以实现查询、新增、更新、删除、求和排序等操作;相应的,所述数据表具体是指所述数据库中存储数据的存储格式,即数据库中大量的数据以数据表的形式存在,并且不同类型的数据对应不同的数据表,需要说明的是,不同类型的数据可以理解为数据种类不同、数据维度不同或者数据结构不同。
基于此,所述数据表的属性信息具体是指所述数据库中各个数据表对应的描述信息,所述属性信息可以理解为描述所述数据表的属性以及数据表的标识等信息,例如,在数据库中存在数据表P和数据表O,其中“ID_P”是数据表P的主键,“ID_O”是数据表O的主键,在P表中记录有“姓氏”、“名字”、“地址”和“城市”相关的数据,在O表中记录有“命令”和“P表主键”的相关数据,则此时可以确定数据表P的属性信息为{姓氏,名字,地址,城市,主键},数据表O的属性信息为{命令,P表主键,主键},从而可以根据属性信息对数据表进行后续的处理操作,实现快速枚举出较多的表达信息。
步骤S104,根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合。
具体的,在上述获取数据表的属性信息的基础上,进一步的,将根据所述属性信息,在获取的数据表中筛选出具有关联关系的数据表组成数据表集合,以用于后续构建所述数据表集合中数据表的表连接。
实际应用中,在从所述数据表中筛选组成所述数据表集合的数据表的过程中,由于所述数据库中包含的数据表的数量较多,并且按照不同的数据类型进行了区分,故在数据库中存在部分数据表具有关联关系,部分数据表不具有关联关系的情况,而在对数据库中的数据进行操作的过程中,往往是需要多个数据表联系起来后才能够获得符合操作需求的操作结果,并且对数据进行操作是基于表达信息完成的,从而需要将具有关联关系的数据表组成数据表集合,以用于后续生成表达信息,实现支持对数据库中的数据进行操作。
进一步的,在组建所述数据表集合的过程中,为了支持表达信息生成的准确性,以及提高枚举表达信息的效率,将以属性信息中的主键信息为基础筛选出符合组建所述数据表集合的数据表,本实施例中,具体实现方式如下所述:
提取所述属性信息中的主键信息;
在所述数据表中筛选出所述主键信息相同的数据表,组成所述数据表集合。
具体的,在获取到所述数据库中各个数据表的属性信息之后,提取所述属性信息中的主键信息,所述主键信息与所述数据库中的各个数据表相对应,之后选择主键信息相同的数据表组成所数据表集合。
实际应用中,由于不同的数据表具有不同的主键信息,而为了表明数据表之间的关联关系,会将具有关联关系的数据表的主键信息也记录在自身的数据表中,从而可以实现体现多个数据表之间的关联关系;故本实施例中筛选出主键信息相同的数据表,具体是指在大量的数据表中筛选出数据表中记录有其他数据表主键信息的数据表组成所述数据表集合。
例如,在数据库中存在数据表O和数据表P之外,还存在数据表Q,其中数据表P如表(1)所示:
表1
ID_P | LastName | FirstName | Address | City |
1 | A | A.J | OS | LC |
2 | B | B.G | FS | NC |
3 | C | C.T | CS | BC |
数据表O如表(2)所示:
表2
ID_O | OrderNo | ID_P |
1 | 77895 | 3 |
2 | 44678 | 2 |
3 | 22456 | 1 |
数据表Q如表(3)所示:
表3
根据数据表O、数据表P和数据表Q的属性信息,分别提取各个数据表的主键信息,从而确定数据表O和数据表P具有相同的主键信息,即数据表O中记录有数据表P的主键信息,故此时选择数据表O和数据表P组成数据表集合,用于后续生成数据库的表达信息,实现快速枚举出全部顺序(order),从而提高数据库的优化器的优化性能。
此外,在所述数据库中筛选出具有关联关系的数据表组成数据表集合的过程中,还可以通过其他方式确定具有关联关系的数据表,比如通过查询各个数据表的关键词,从而确定具有关联关系的数据表,或者查询各个数据表的唯一标识确定具有关联关系的数据表;具体筛选出具有关联关系的数据表组成数据表集合的方式可以根据实际应用场景进行设定,本申请在此不作过多限定。
步骤S106,根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接。
具体的,在上述筛选出具有关联关系的数据表组成数据表集合的基础上,进一步的,将根据所述数据表集合中数据表的关联关系,构建所述数据表集合对应的表连接,其中,所述表连接可以是网连接或树连接,从而实现更加方便进行枚举表达信息,支持所述数据库的更多优化规则。
进一步的,构建所述表连接,是支持后续分割表连接,实现快速枚举表达信息的基础,故在构建所述表连接的过程中,需要以数据表集合中的数据表为节点,数据表之间的关联关系作为边,构建所述表连接,本实施例中,具体实现方式如下所述:
将所述数据表集合中的数据表作为节点,并基于所述数据表集合中数据表的主键信息,构建所述表连接。
具体的,所述数据表集合中各个数据表之间的关联关系是基于所述属性信息中的主键信息确定,故在构建所述表连接的过程中,以所述数据表集合中各个数据表之间的主键信息作为构建所述表连接的边,以各个数据表作为节点,即可构建所述表连接。
实际应用中,在构建所述表连接的过程中,为了方便后续对表连接进行分割处理,可以在构建的过程中,将所述表连接构建为树状结构,即构建出的表连接为树连接;比如,在TPC-DS Q6场景中,针对数据库中的数据表构建表连接,构建出的表连接如图2所示,以树状结构存在,在如图2所示的树连接中,各个节点分别对应数据表集合中的数据表,各个节点之间的连接线,则表示相邻的数据表之间存在的关联关系;
基于此,根据图2所示的内容,可以得出商店销售额(Store_sales)对应的数据表与顾客(customer)、项目(item)和日期(date_dim)分别对应的数据表存在关联关系,并且与顾客(customer)对应的数据表具有关联关系的数据表是顾客地址(customer_addres),与项目(item)对应的数据表具有关联关系的数据表是聚合1(aggregate1),与日期(date_dim)对应的数据表具有关联关系的数据表是聚合2(aggregate2),实现后续可以对该树连接可以分割出6个连接组,从而生成6个表达信息,可以提高在该场景中进行所属数据库的查询处理等操作的效率。
需要说明的,TPC-DS是一套决策支持系统测试基准,主要针对零售行业对应的数据库,是一个面向决策支持系统(decision support system)的包含多维度常规应用模型的决策支持基准,包括查询(queries)与数据维护。此基准对被测系统(System UnderTest's,SUT)在决策支持系统层面上的表现进行的评估具有代表性;可以实现测试大规模数据,对实际商业问题进行解答,执行需求多样或复杂的查询(如临时查询,报告,迭代OLAP,数据挖掘),解决大数据问题,如关系型数据库(RDBMS);从而在此场景中进行表连接的构建,可以快速且精准的枚举出数据库对应的大量表达信息,实现高效、多样的复杂查询。
此外,在构建所述表连接的过程中,由于数据表集合中的各个数据表之间可能交叉存在关联关系,故此时构建出的表连接可能存在网状结构,这样可能导致在后续分割处理的过程中降低分割处理效率,本实施例中,在构建出的表连接为连接网的情况下,可以通过转换的方式实现变更为连接树,从而提高后续的分割处理效率,具体实现方式如下所述:
确定所述数据表集合中数据表之间的关联关系;
根据所述关联关系构建所述数据表集合中数据表的连接网;
将所述连接网转换后获得的连接树作为所述表连接。
实际应用中,在确定所述数据表集合中各个数据表之间的关联关系之后,可以基于该关联关系构建所述数据表集合中数据表的连接网,所述连接网可以将数据集中存在关联关系的数据表进行连接,此时若对所述连接网进行分割处理,需要同时对多个关联关系进行分割处理,很大程度上会降低分割处理效率,则可以对所述连接网进行转换处理,使连接网转换为连接树,这样方便进行分割处理,并且可以实现全面覆盖表连接,从而更加方便后续进行枚举。
参见图3所示,其中S1-S6均表示数据表集合中的各个数据表,并且其中数据表S1与数据表S2、S3、S5和S6均具有关联关系,数据表S2与数据表S1和S4具有关联关系,数据表S3与数据表S1和S4具有关联关系,数据表S4与数据表S6、S5、S3和S2具有关联关系,数据表S5与数据表S1和S4具有关联关系,数据表S6与数据表S4和S1具有关联关系,基于各个数据表之间的关联关系构建出的连接网如图3所示,此时可以对连接网进行转换,获得多个连接树,将连接树作为数据表集合对应的表连接,从而实现更加方便后续的分割处理,提高处理效率。
综上,在基于所述数据表集合中数据表的关联关系构建所述数据表集合对应的表连接的过程中,为了方便后续分割处理,以及提高分割处理的效率,首先基于关联关系和数据表构建连接网,其次对连接网进行转换,从而获得连接树作为表连接,实现可以通过连接树表达出表连接的全部连接关系,并且可以有效的提高后续的分割处理效率。
步骤S108,将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
具体的,在上述构建所述数据表集合中数据表的表连接的基础上,进一步的,将对所述表连接进行分割处理,获得至少一个连接组,从而实现可以基于连接组中子连接的关联关系生成数据库的表达信息。
实际应用中,在对所述表连接进行分割处理的过程中,由于所述表连接中存在较多的数据表,并且数据表之间存在关联关系,故对所述表现连接进行分割处理,将分割出较多的连接组,每个连接组均表示一种连接关系,从而才能够实现支持枚举更多表达信息,本实施例中,将基于任意一个连接组生成表达信息的过程进行描述,表连接分割为多个连接组,进而生成多个表达信息的过程可以参见本实施例中描述的内容,在此不作过多赘述。
具体实施时,由于表连接是基于多个数据表和数据表之间的关联关系构建,故在所述表连接分割为至少一个连接组后,所述至少一个连接组将由两部分组成,分别是第一子连接和第二子连接;例如基于数据表O和数据表P构建了表连接,此时对该表连接进行分割处理,分割位置是数据表O和数据表P之间的连接关系,分割后获得的连接组即为包含数据表O的第一子连接和包含数据表P的第二子连接组成;即第一子连接和第二子连接表示分割处理后各自包含具有关联关系的数据表的两部分连接。
进一步的,在对所述表连接进行分割处理的过程中,为了加快分割处理效率,本实施例中,具体实现方式如下所述:
对所述表连接进行转换,获得中间表连接;
对所述中间表连接进行分割处理,获得至少一个所述连接组。
更进一步的,在对所述中间表连接进行分割处理时,实则是基于中间表连接中中间数据表的关联关系实现分割处理,本实施例中,具体实现方式如下所述:
确定所述中间表连接中包含的中间数据表;
基于所述中间数据表之间的关联关系对所述中间表连接进行分割处理,获得至少一个所述连接组。
具体的,所述中间表连接,具体是指对所述表连接进行转换后获得的连接结构,通过对所述表连接进行转换,可以方便进行分割处理,并且能够覆盖表连接中表达的全部连接关系;
基于此,在获得转换后的中间表连接的基础上,进一步的,此时确定所述中间表连接中的中间数据表,之后基于所述中间数据表之间的关联关系对所述中间表连接进行分割处理,即可获得所述连接组。
实际应用中,所述表连接可以转换出多个中间表连接,由于数据表之间的关联关系存在交叉情况,故将需要通过多个中间表连接才能够体现出表连接中复杂的连接关系,从而实现通过多个中间表连接体现出表连接的全部连接关系。
参见图3所示,为数据表S1-S6构建的表连接,此时为了方便进行分割处理,将对表连接进行转换,转换后的中间表连接如图4中的(a)和图4中的(b)所示,此外,对该表连接进行转后获得的中间表连接,还包含除图4中的(a)和图4中的(b)所示的中间表连接之外的中间表连接,由于转换后获得的表连接过多,本实施例中只以图4中的(a)和图4中的(b)所示的中间表连接进行描述,其他中间表连接均可参见相应的描述内容,在此不作过多赘述;
基于此,在确定如图4中的(a)所示的中间表连接之后,确定数据表S1-S6在中间表连接的分布,之后对中间表连接进行分割处理,分割处理位置为数据表S2与上一节点对应的数据表的关联关系,此时获得的连接组由包含数据表S2的子连接和包含数据表S1、S3-S6的子连接组成,以用于后续生成数据表S1-S6所属数据库的表达信息。
综上,在对所述表连接进行分割处理的过程中,为了提高分割处理效率,以及实现全面覆盖表连接中各个数据表之间的关联关系,可以将所述表连接转换为中间表连接,再进行分割处理,从而获得至少一个连接组,用于后续生成数据库的表达信息,故对表达信息进行枚举的过程中,可以通过分割的方式实现获得大量的连接组,从而枚举出大量的表达信息,从而提高枚举效率的同时,加快后续数据库的数据处理效率。
更进一步的,在上述对所述表连接进行分割处理获得至少一个连接组的基础上,此时所述连接组中将包含的子连接之间的关联关系,即表达为数据库中的一种新连接顺序,基于该关联关系即可生成对所述数据库进行数据操作的一种表达信息;其中,所述表达信息具体是指针对所述数据库进行数据操作的表达字符串,可以应用于所述数据库的优化器。
实际应用中,对所述表连接分割为多个连接组的情况下,此时各个连接组中包含的子连接之间的关联关系,均表达数据库中的一种新连接顺序,多个连接组则对应多个新连接顺序,基于多个关联关系即可生成对所述数据库进行数据操作的多种表达信息,从而实现枚举出针对数据库的大量新连接顺序,生成大量的表达信息,以此作为基础实现数据库支持更多的优化规则。
具体实施时,在生成所述表达信息的过程中,为了提高生成表达信息的准确性,以及方便应用过程中可以与数据库的优化器充分的结合,本实施例中,可以通过如下方式生成所述表达信息:
确定所述连接组中包含的第一子连接和第二子连接;
通过读取所述连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
实际应用中,在对所述表连接进行分割的过程中,将分割为第一子连接和第二子连接,故所述连接组由第一子连接和第二子连接组成,此时通过读取所述连接组的等值数据,即可确定所述第一子连接和所述第二子连接的关联关系;最后按照所述第一子连接和所述第二子连接的关联关系,即可生成所述数据库的表达信息。
具体实施时,所述等值数据具体是指第一子连接中包含的数据表与所述第二子连接中包含的数据表具有的关联关系对应的连接条件为相等的情况下,则表示为等值数据,此时即可通过所述等值数据确定所述第一子连接和所述第二子连接的关联关系,从而可以生成针对所述连接组的表达信息,以记录在所述数据库中,后续即可根据该表达信息查询到第一子连接中包含的数据表和第二子连接中包含的数据表中的数据。
此外,在生成所述表连接分割处理获得的全部连接组对应的表达信息后,此时可以将全部表达信息记录在所述数据库的元数据表中,方便在应用的过程中,可以直接提取与查询请求对应的表达信息,从而获得表达信息对应的数据组成的数据表。
基于此,在针对所述数据库中的数据存在操作需求的情况下,将从记录表达信息的元数据集出发,从而选择出符合操作需求的数据组成目标数据,本实施例中,具体实现方式如下所述:
获取针对所述数据库中的数据表提交的操作请求;
根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息;
将所述目标表达信息输入至所述数据库对应的数据库优化器,获得所述操作请求对应的目标数据组成的目标数据表。
具体的,所述操作请求具体是指对所述数据库中的数据表进行查询的请求、删除的请求或增加的请求等,基于所述操作请求中包含的操作信息,在所述表达信息映射的元数据表中选择与所述操作请求对应的目标表达信息,即确定所述操作请求涉及的数据表,此时再将所述目标表达信息输入至所述数据库对应的数据库优化器,即可从所述数据表集合中包含的数据表中筛选出与所述操作请求对应的数据组成目标数据,从而完成对数据表的操作处理。
实际应用中,所述数据库优化器可以是Cascades优化器,Cascades优化器的优化过程具体是指:首先将抽象语法树转换为初始的逻辑执行计划,也就是确定由逻辑计划所表示的算子树,其次将算子树等价的拆分到表连接,从而得到Cascades优化器的初始输入,此时Cascades优化器的搜索过程分割两个阶段,第一阶段是探索,该阶段不停的遍历整个表连接,应用所有的转换规则,产生新的表连接,不停迭代直至没有新的表连接生成为止;第二阶段是实施,Cascades优化器通过对表连接应用对应的实施规则,为每一个表连接搜索满足要求的物理执行计划;最后,在第二阶段结束后,Cascades优化器将生成一个目标物理执行计划,至此优化过程结束,将目标物理执行计划交给后续的模块进行处理即可获得符合操作需求的目标数据表。
更进一步的,在所述元数据表中选择目标表达信息的过程中,由于不同的操作请求涉及的数据表数目不同,故可以采用不同的方式确定目标表达信息,本实施例中,具体实现方式如下所述:
对所述操作请求进行解析,获得所述操作数据;
根据所述操作数据判断与所述操作请求关联的数据表数目是否大于预设的数目阈值;
若是,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的至少两个子表达信息,组成所述目标表达信息;
若否,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的子表达信息,作为所述目标表达信息。
具体的,首先对所述操作请求进行解析,获得所述操作数据,其次根据所述操作数据判断所述操作请求关联的数据表数目是否大于预设的数目阈值;若是,表明所述操作请求涉及的数据表过多,故需要多个数据表才能够获得操作请求对应的目标数据表,则此时可以在所述元数据表中,选择与所述操作请求关联的目标连接组对应的至少两个子表达信息,组成所述目标表达信息;
若否,表明所述操作请求涉及的数据表较少,则在所述元数据表中,选择与所述操作请求关联的目标连接组对应的子表达信息,作为所述目标表达信息即可。
沿用上例,在获取针对数据库中的数据表提交的操作请求为查询用户A的住址的情况下,根据查询请求确定涉及数据库中的数据表为数据表O和数据表P,确定数据表数目小于预设的数目阈值,则将数据表O和数据表P组成的连接组对应的表达信息作为目标表达信息即可,并将该表达信息输入到Cascades优化器即可获得包含用户A姓名、住址(OS)和城市(LC)的数据表,将该数据表作为查询请求的查询结果即可。
综上,通过将全部的表达信息记录在所述数据库的元数据表中,实现了可以快速且准确的获得与所述操作请求对应的目标表达信息,从而提高了针对数据库中的数据的查询效率。
本申请提供的数据处理方法,通过获取数据库中数据表的属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,根据数据表集合中各个数据表之间的关联关系,构建所述数据表集合对应的表连接,之后将表连接分割为至少一个连接组,生成针对所述数据库进行数据操作的表达信息,实现了通过构建所述表连接的方式,将数据库中具有关联关系的数据表进行绑定,并对所述表连接进行分割,可以快速的枚举出较多的表达信息,从而做到与数据库的优化器具有更好的结合,实现支持更多的数据库优化规则,进一步提高数据库的数据处理效率。
下述结合附图5,以本申请提供的数据处理方法在查询场景中的应用为例,对所述数据处理方法进行进一步说明。其中,图5示出了本申请一实施例提供的一种应用于查询场景中的数据处理方法的处理流程图,具体包括以下步骤:
步骤S502,获取数据库中数据表的属性信息。
具体的,为了提高对所述数据库中数据表的连接顺序的枚举,从而实现对数据库中的优化器的优化支持,将根据数据库中具有关联关系的数据表构建表连接,通过对表连接进行分割处理,实现对连接顺序的枚举,从而生成数据库对应的全部表达信息,方便进行数据的查询处理。
步骤S504,提取属性信息中的主键信息。
步骤S506,在数据表中筛选出主键信息相同的数据表,组成数据表集合。
步骤S508,将数据表集合中的数据表作为节点,并基于数据表集合中数据表的主键信息,构建表连接。
步骤S510,对表连接进行转换,获得中间表连接。
步骤S512,确定中间表连接中包含的中间数据表。
步骤S514,基于中间数据表之间的关联关系对中间表连接进行分割处理,获得至少一个连接组。
实际应用中,表连接可以转换出多个中间表连接,由于数据表之间的关联关系存在交叉情况,故将需要通过多个中间表连接才能够体现出表连接中复杂的连接关系,从而实现通过多个中间表连接体现出表连接的全部连接关系。
参见图3所示,为数据表S1-S6构建的表连接,此时为了方便进行分割处理,将对表连接进行转换,转换后的中间表连接如图4中的(a)和图4中的(b)所示,基于此,在确定如图4中的(a)所示的中间表连接之后,确定数据表S1-S6在中间表连接的分布,之后对中间表连接进行分割处理,分割处理位置为数据表S2与上一节点对应的数据表的关联关系,此时获得的连接组由包含数据表S2的子连接和包含数据表S1、S3-S6的子连接组成,以用于后续生成数据表S1-S6所属数据库的表达信息。
步骤S516,确定连接组中包含的第一子连接和第二子连接。
步骤S518,通过读取连接组的等值数据,确定第一子连接和第二子连接的关联关系。
步骤S520,按照第一子连接和第二子连接的关联关系,生成对数据组对应的数据库进行数据操作的表达字符串。
实际应用中,在对表连接进行分割的过程中,将分割为第一子连接和第二子连接,故连接组由第一子连接和第二子连接组成,此时通过读取连接组的等值数据,即可确定第一子连接和第二子连接的关联关系;最后按照第一子连接和第二子连接的关联关系,即可生成数据库的表达字符串。
具体实施时,等值数据具体是指第一子连接中包含的数据表与所述第二子连接中包含的数据表具有的关联关系对应的连接条件为相等的情况下,则表示为等值数据,此时即可通过等值数据确定第一子连接和第二子连接的关联关系,从而可以生成针对连接组的表达字符串,以记录在数据库中,后续即可根据该表达字符串查询到第一子连接中包含的数据表和第二子连接中包含的数据表中的数据。
综上所述,通过获取数据库中数据表的属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,根据数据表集合中各个数据表之间的关联关系,构建所述数据表集合对应的表连接,之后将表连接分割为至少一个连接组,生成针对所述数据库进行数据操作的表达信息,实现了通过构建所述表连接的方式,将数据库中具有关联关系的数据表进行绑定,并对所述表连接进行分割,可以快速的枚举出较多的表达信息,从而做到与数据库的优化器具有更好的结合,实现支持更多的数据库优化规则,进一步提高数据库的数据处理效率。
与上述方法实施例相对应,本申请还提供了数据处理装置实施例,图6示出了本申请一实施例提供的一种数据处理装置的结构示意图。如图6所示,该装置包括:
获取模块602,被配置为获取数据库中数据表的属性信息;
组成模块604,被配置为根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
构建模块606,被配置为根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
生成模块608,被配置为将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
一个可选的实施例中,所述组成模块604,包括:
提取单元,被配置为提取所述属性信息中的主键信息;
筛选单元,被配置为在所述数据表中筛选出所述主键信息相同的数据表,组成所述数据表集合。
一个可选的实施例中,所述构建模块606进一步被配置为:
将所述数据表集合中的数据表作为节点,并基于所述数据表集合中数据表的主键信息,构建所述表连接。
一个可选的实施例中,所述生成模块608,包括:
转换单元,被配置为对所述表连接进行转换,获得中间表连接;
分割单元,被配置为对所述中间表连接进行分割处理,获得至少一个所述连接组。
一个可选的实施例中,所述分割单元,包括:
确定子单元,被配置为确定所述中间表连接中包含的中间数据表;
分割子单元,被配置为基于所述中间数据表之间的关联关系对所述中间表连接进行分割处理,获得至少一个所述连接组。
一个可选的实施例中,所述构建模块606,包括:
确定关联关系单元,被配置为确定所述数据表集合中数据表之间的关联关系;
构建连接网单元,被配置为根据所述关联关系构建所述数据表集合中数据表的连接网;
转换连接网单元,被配置为将所述连接网转换后获得的连接树作为所述表连接。
一个可选的实施例中,所述生成模块608,包括:
确定子连接单元,被配置为确定所述连接组中包含的第一子连接和第二子连接;
读取等值数据单元,被配置为通过读取所述连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
生成表达信息单元,被配置为按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
一个可选的实施例中,所述数据处理装置,还包括:
获取操作请求模块,被配置为获取针对所述数据库中的数据表提交的操作请求;
选择模块,被配置为根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息;
输入模块,被配置为将所述目标表达信息输入至所述数据库对应的数据库优化器,获得所述操作请求对应的目标数据组成的目标数据表。
一个可选的实施例中,所述选择模块,包括:
解析单元,被配置为对所述操作请求进行解析,获得所述操作数据;
判断单元,被配置为根据所述操作数据判断与所述操作请求关联的数据表数目是否大于预设的数目阈值;
若是,运行第一选择单元,所述第一选择单元,被配置为在所述元数据表中,选择与所述操作请求关联的目标连接组对应的至少两个子表达信息,组成所述目标表达信息;
若否,运行第二选择单元,所述第二选择单元,被配置为在所述元数据表中,选择与所述操作请求关联的目标连接组对应的子表达信息,作为所述目标表达信息。
本申请提供的数据处理装置,通过获取数据库中数据表的属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,根据数据表集合中各个数据表之间的关联关系,构建所述数据表集合对应的表连接,之后将表连接分割为至少一个连接组,生成针对所述数据库进行数据操作的表达信息,实现了通过构建所述表连接的方式,将数据库中具有关联关系的数据表进行绑定,并对所述表连接进行分割,可以快速的枚举出较多的表达信息,从而做到与数据库的优化器具有更好的结合,实现支持更多的数据库优化规则,进一步提高数据库的数据处理效率。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
下述为本申请提供的一种数据库操作系统的实施例:
图7示出了根据本申请一实施例提供的一种数据库操作系统的结构示意图,所述数据库操作系统700包括客户端702,计算节点704以及存储节点706;
所述客户端702,用于接收用户输入的查询指令;
所述计算节点704,用于对所述查询指令进行解析,获得针对数据库进行操作的表达信息;基于所述表达信息确定目标连接组,并读取所述目标连接组对应的主键信息;
所述存储节点706,用于在所述数据库中查询所述主键信息对应的数据表,并在所述数据表中读取与所述查询指令对应的目标数据返回所述客户端702。
实际应用中,在数据库中查询数据的过程中,需要将数据库中数据表涉及的全部连接顺序进行枚举,然后根据枚举出的各个连接顺序的损失选择出最终的连接顺序,之后从各个连接顺序中选择与查询指令对应的目标连接顺序进行数据的读取,作为查询结果并输出即可,然而在枚举的过程中,通常是基于交换律和结合律实现,并且每次调用只能够产生一到两个新顺序,效率较为低下,导致向用户返回数据的速度较慢。
本申请提供的数据库操作系统,为了能够提高枚举效率,从而提高数据库在进行读写数据时的处理效率,将通过对用户提交的查询指令进行解析,获得表达信息,之后再通过计算节点对表达信息进行进一步的处理,确定目标连接组以及目标连接组对应的主键信息,最后通过数据库中的存储节点按照所述主键信息查询数据表,并在数据表中读取与所述查询指令对应的目标数据返回至所述客户端,实现通过计算节点确定目标连接组的方式,快速的确定所述查询指令指向的主键信息,再结合存储节点即可快速的完成目标数据的读取,不仅提高了对数据库中的数据进行读写的效率,还提高了用户的体验效果。
具体实施时,所述数据库操作系统具体是指能够根据用户的查询指令进行数据查询,并向用户反馈目标数据的操作系统,所述数据库操作系统中包括客户端702,所述客户端702具体表示对接用户的前端接口,具有查询需求的用户可以通过对客户端集成的控件进行操作,提交数据查询指令。
此时数据库操作系统将客户端上传的查询指令转发至计算节点704进行处理,计算节点704具体是指解析指令并确定查询指令的指向的节点,所述计算节点704在接收到查询指令之后,将对查询指令进行解析,获得查询数据所对应的表达信息,之后根据表达信息确定目标连接组,并读取目标连接组对应的主键信息,实现可以根据查询指令确定所要查询的数据的具体位置,最后由存储节点706按照所述主键信息在数据库中查询到数据表,并从数据表中读取与查询指令对应的目标数据返回客户端702即可,所述存储节点706具体是指进行数据读写操作的节点,主要对接数据库,可以完成数据读写操作的同时,对数据库的元数据表进行更新,实现对数据库进行监控的目的。
本实施例中,所述计算节点706进一步被配置为:
将所述表达信息输入至所述数据库对应的数据库优化器,获得所述目标连接组。
具体的,所述计算节点706在确定目标连接组的过程中,由于通过表达信息查询数据库需要数据形式的转换,并且数据库已经枚举出大量的连接组,故为了能够精准的输出满足查询指令的目标数据,可以通过数据库优化器完成目标连接组的确定,所述数据库优化器可以根据所述表达信息确定用户的查询需求,以及确定查询需求所对应的目标连接组,后续再根据目标连接组即可完成数据的查询操作。
进一步的,所述表达信息具体是指能够针对数据库进行数据操作的表达字符串,可以应用于数据库优化器,实现对目标数据的定位,所述表达信息实则是将具有关联关系的两部分数据表进行关联,从而实现确定查询指令的目标数据,本实施例中,所述表达信息通过如下方式创建:
确定所述目标连接组中包含的第一子连接和第二子连接;
通过读取所述目标连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
具体实施时,目标连接组将通过对表连接进行分割后获得,表连接分割处理的过程可参见上述实施例中相应的描述内容,本实施例在此不作过多赘述,基于此,此时即可获得由第一子连接和第二子连接组成的连接组,之后再读取所述连接组的等值数据,即可确定所述第一子连接和所述第二子连接的关联关系;最后按照所述第一子连接和所述第二子连接的关联关系,即可生成所述数据库的表达信息。
其中,所述等值数据具体是指第一子连接中包含的数据表与所述第二子连接中包含的数据表具有的关联关系对应的连接条件为相等的情况下,则表示为等值数据,此时即可通过所述等值数据确定所述第一子连接和所述第二子连接的关联关系,从而可以生成针对所述连接组的表达信息,以记录在所述数据库中,后续即可根据该表达信息查询到第一子连接中包含的数据表和第二子连接中包含的数据表中的数据。
在生成所述表连接分割处理获得的全部连接组对应的表达信息后,此时可以将全部表达信息记录在所述数据库的元数据表中,方便在应用的过程中,可以直接提取与查询请求对应的表达信息,从而获得表达信息对应的数据组成的数据表。
本实施例中,所述存储节点706进一步被配置为:
通过对所述表达信息进行解析,获得数据键值;
基于所述数据键值读取所述数据表,根据读取结果确定所述目标数据;
根据所述目标数据组成目标数据表,并向所述客服端返回所述目标数据表。
具体的,所述存储节点706在查询到所述主键信息对应的数据表后,将需要从数据表中提取目标数据返回给用户,而由于所述数据表中存储的数据可能比较多,并且数据表中存储数据的形式多以相似的数据存储至同一数据表,故为了能够准确的确定用户所需要查询的数据,可以通过表达信息确定数据键值,通过键值读取数据表,即可精准的确定所述目标数据,之后可以将所述目标数据组成目标数据表返回至所述客户端,实现不仅可以向用户返回符合查询需求的数据,还能够对目标数据进行结构化处理,方便用户使用或者查看,进一步提高了用户的体验效果。
例如,在获取到用户S的查询指令是查询用户A的住址的情况下,计算节点通过对查询指令进行解析,确定表达信息是数据表O和数据表P组成的表达信息(数据表O中存储有用户A的属性信息,数据表P中存储有用户A的外部信息),此时即可确定目标连接组,并通过读取目标连接组确定数据表O的主键信息O_u,以及数据表P的主键信息P_u,此时数据库操作系统的存储节点即可根据主键信息O_u和P_u确定数据表O和数据表P,并对数据表O和数据表P进行查询,确定用户A姓名、住址和城市的数据,最后将用户A姓名、住址和城市的数据组成新的数据表返回至客户端,即可实现向用户S展示用户A的相关信息。
本申请提供的数据库操作系统,为了能够提高枚举效率,从而提高数据库在进行读写数据时的处理效率,将通过对用户提交的查询指令进行解析,获得表达信息,之后再通过计算节点对表达信息进行进一步的处理,确定目标连接组以及目标连接组对应的主键信息,最后通过数据库中的存储节点按照所述主键信息查询数据表,并在数据表中读取与所述查询指令对应的目标数据返回至所述客户端,实现通过计算节点确定目标连接组的方式,快速的确定所述查询指令指向的主键信息,再结合存储节点即可快速的完成目标数据的读取,不仅提高了对数据库中的数据进行读写的效率,还提高了用户的体验效果。
图8示出了根据本申请一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820用于执行如下计算机可执行指令:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (16)
1.一种数据处理方法,包括:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
2.根据权利要求1所述的数据处理方法,所述根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合,包括:
提取所述属性信息中的主键信息;
在所述数据表中筛选出所述主键信息相同的数据表,组成所述数据表集合。
3.根据权利要求2所述的数据处理方法,所述根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接,包括:
将所述数据表集合中的数据表作为节点,并基于所述数据表集合中数据表的主键信息,构建所述表连接。
4.根据权利要求1所述的数据处理方法,所述将所述表连接分割为至少一个连接组,包括:
对所述表连接进行转换,获得中间表连接;
对所述中间表连接进行分割处理,获得至少一个所述连接组。
5.根据权利要求4所述的数据处理方法,所述对所述中间表连接进行分割处理,获得至少一个所述连接组,包括:
确定所述中间表连接中包含的中间数据表;
基于所述中间数据表之间的关联关系对所述中间表连接进行分割处理,获得至少一个所述连接组。
6.根据权利要求1所述的数据处理方法,所述根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接,包括:
确定所述数据表集合中数据表之间的关联关系;
根据所述关联关系构建所述数据表集合中数据表的连接网;
将所述连接网转换后获得的连接树作为所述表连接。
7.根据权利要求1所述的数据处理方法,所述基于所述连接组生成对所述数据库进行数据操作的表达信息,包括:
确定所述连接组中包含的第一子连接和第二子连接;
通过读取所述连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
8.根据权利要求1所述的数据处理方法,所述基于所述连接组生成对所述数据库进行数据操作的表达信息步骤执行之后,还包括:
获取针对所述数据库中的数据表提交的操作请求;
根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息;
将所述目标表达信息输入至所述数据库对应的数据库优化器,获得所述操作请求对应的目标数据组成的目标数据表。
9.根据权利要求8所述的数据处理方法,所述根据所述操作请求中包含的操作数据,在所述表达信息映射的元数据表中选择目标表达信息,包括:
对所述操作请求进行解析,获得所述操作数据;
根据所述操作数据判断与所述操作请求关联的数据表数目是否大于预设的数目阈值;
若是,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的至少两个子表达信息,组成所述目标表达信息;
若否,在所述元数据表中,选择与所述操作请求关联的目标连接组对应的子表达信息,作为所述目标表达信息。
10.一种数据处理装置,包括:
获取模块,被配置为获取数据库中数据表的属性信息;
组成模块,被配置为根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
构建模块,被配置为根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
生成模块,被配置为将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
11.一种数据库操作系统,包括:
客户端,计算节点,存储节点;
所述客户端,用于接收用户输入的查询指令;
所述计算节点,用于对所述查询指令进行解析,获得针对数据库进行操作的表达信息;基于所述表达信息确定目标连接组,并读取所述目标连接组对应的主键信息;
所述存储节点,用于在所述数据库中查询所述主键信息对应的数据表,并在所述数据表中读取与所述查询指令对应的目标数据返回所述客户端。
12.根据权利要求11所述的数据库操作系统,所述基于所述表达信息确定目标连接组,包括:
将所述表达信息输入至所述数据库对应的数据库优化器,获得所述目标连接组。
13.根据权利要求11所述的数据库操作系统,所述表达信息通过如下方式创建:
确定所述目标连接组中包含的第一子连接和第二子连接;
通过读取所述目标连接组的等值数据,确定所述第一子连接和所述第二子连接的关联关系;
按照所述第一子连接和所述第二子连接的关联关系,生成所述表达信息。
14.根据权利要求11所述的数据库操作系统,所述在所述数据表中读取与所述查询指令对应的目标数据返回所述客户端,包括:
通过对所述表达信息进行解析,获得数据键值;
基于所述数据键值读取所述数据表,根据读取结果确定所述目标数据;
根据所述目标数据组成目标数据表,并向所述客服端返回所述目标数据表。
15.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取数据库中数据表的属性信息;
根据所述属性信息,在所述数据表中筛选出具有关联关系的数据表组成数据表集合;
根据所述数据表集合中数据表之间的关联关系,构建所述数据表集合中数据表的表连接;
将所述表连接分割为至少一个连接组,并基于所述连接组生成对所述数据库进行数据操作的表达信息。
16.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至9任意一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604984.XA CN113297165A (zh) | 2020-06-29 | 2020-06-29 | 数据处理方法、装置及数据库操作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604984.XA CN113297165A (zh) | 2020-06-29 | 2020-06-29 | 数据处理方法、装置及数据库操作系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297165A true CN113297165A (zh) | 2021-08-24 |
Family
ID=77318119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010604984.XA Pending CN113297165A (zh) | 2020-06-29 | 2020-06-29 | 数据处理方法、装置及数据库操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297165A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370361A (zh) * | 2023-12-08 | 2024-01-09 | 朴道征信有限公司 | 数据表操作方法、装置、电子设备和计算机可读介质 |
-
2020
- 2020-06-29 CN CN202010604984.XA patent/CN113297165A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370361A (zh) * | 2023-12-08 | 2024-01-09 | 朴道征信有限公司 | 数据表操作方法、装置、电子设备和计算机可读介质 |
CN117370361B (zh) * | 2023-12-08 | 2024-03-08 | 朴道征信有限公司 | 数据表操作方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110292775B (zh) | 获取差异数据的方法及装置 | |
CN113297320B (zh) | 分布式数据库系统及数据处理方法 | |
US9251212B2 (en) | Profiling in a massive parallel processing environment | |
CN103955538B (zh) | HBase数据持久和查询方法及HBase系统 | |
CN107291770B (zh) | 一种分布式系统中海量数据的查询方法及装置 | |
CN111475588B (zh) | 数据处理方法及装置 | |
CN111475584B (zh) | 数据处理方法、系统以及装置 | |
CN114356971A (zh) | 数据处理方法、装置以及系统 | |
CN111506621A (zh) | 一种数据统计方法及装置 | |
CN109885585B (zh) | 支持存储过程、触发器与视图的分布式数据库系统和方法 | |
CN109857833B (zh) | 一种规则引擎实现方法、装置及电子设备 | |
CN109376153A (zh) | 一种基于NiFi的数据写入图数据库的系统及方法 | |
CN113535749A (zh) | 查询语句生成方法及装置 | |
WO2013111287A1 (ja) | Sparqlクエリ最適化方法 | |
CN113297165A (zh) | 数据处理方法、装置及数据库操作系统 | |
CN113239063A (zh) | 一种图数据库更新方法及装置 | |
CN111984625B (zh) | 数据库负载特征处理方法、装置、介质和电子设备 | |
CN113806376B (zh) | 索引构建方法及装置 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN113722337B (zh) | 业务数据确定方法、装置、设备及存储介质 | |
CN111752927B (zh) | 基于克隆的数据形态生成方法、装置、终端设备及介质 | |
CN112767933B (zh) | 公路养护管理系统的语音交互方法、装置、设备及介质 | |
CN113779215A (zh) | 数据处理平台 | |
Gašpar et al. | Integrating Two Worlds: Relational and NoSQL | |
CN115630086B (zh) | 一种将Access应用转化为Web应用程序的方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40058620 Country of ref document: HK |