CN114356971A - 数据处理方法、装置以及*** - Google Patents
数据处理方法、装置以及*** Download PDFInfo
- Publication number
- CN114356971A CN114356971A CN202111463342.3A CN202111463342A CN114356971A CN 114356971 A CN114356971 A CN 114356971A CN 202111463342 A CN202111463342 A CN 202111463342A CN 114356971 A CN114356971 A CN 114356971A
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- database
- target
- processed
- 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
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。
背景技术
随着网络技术的不断发展,基于网络的服务商为用户提供的数据也越来越丰富(如,电子书籍、音乐等)。
目前,服务商预先会建立自己的数据库***,并将数据存储到数据库***中,以便后续为用户提供需要的数据,即数据库***可供用户进行数据的存储和查询等操作,当用户提交数据处理语句到数据库***时,数据库***会对数据处理语句进行解析,再经过查询优化器生成对应的执行计划,交由执行引擎进行执行。
但由于不同的场景对于底层存储的要求不同,比如高并发OLTP点查场景,会使用行存,而大规模聚合分析的OLAP场景,则会使用列存,这种情况下,通常一个数据库***会同时支持多种不同的数据库引擎,用于满足不同的场景。但对于这种类型的数据库***,使用起来不够方便,且其使用门槛较高,导致数据查询的应用范围也较为有限,亟需一种有效的方法以解决此类问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种数据处理***,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
可选地,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
基于所述分布结果确定包含所述待处理数据的目标数据库引擎,其中,所述目标数据库引擎为所述不同数据库引擎中的任意一个或至少两个;
确定与所述目标数据库引擎对应的引擎接口,通过所述引擎接口将所述数据处理请求发送至所述目标数据库引擎,以执行对应的数据处理操作,生成对应的处理结果并返回;
其中,所述数据接口及所述引擎接口通过目标协议标准封装生成。
可选地,所述基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
基于解析结果确定所述待处理数据的数据存储类型,确定与所述数据存储类型对应的目标数据库引擎,并将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述数据处理请求中包含至少一个数据处理语句,所述解析所述数据处理请求,包括:
解析所述至少一个数据处理语句,生成对应的初始语法树,并将所述初始语法树作为解析结果;
相应的,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
运行优化器对所述初始语法树进行优化处理,生成目标语法树,所述目标语法树包含至少一个待执行信息,每个待执行信息包含待执行语句;
运行优化器将所述至少一个待执行信息发送至执行器,并运行所述执行器将所述至少一个待执行信息发送至对应的目标数据库引擎。
可选地,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析所述数据处理请求,包括:
确定所述至少一条数据处理语句的语言类型,并确定所述语言类型是否属于目标语言类型;
若是,则解析所述至少一条数据处理语句。
可选地,所述数据处理方法,还包括:
在确定所述语言类型不属于目标语言类型的情况下,对所述至少一条数据处理语句进行编码处理,生成所述目标语言类型对应的目标数据处理语句;
解析所述目标数据处理语句。
可选地,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析所述数据处理请求,包括:
确定所述至少一条数据处理语句是否属于结构化查询语言;
若否,则对所述至少一条数据处理语句进行编码处理,生成目标数据处理语句,并解析所述目标数据处理语句,其中,所述目标数据处理语句属于结构化查询语言。
可选地,所述基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
确定所述目标数据处理语句中的指定字段对应的解析结果,并将所述指定字段对应的解析结果作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
解析所述数据处理请求,并根据解析结果确定所述待处理数据对应的数据存储类型;
确定所述数据存储类型对应的服务地址,其中,所述服务地址指向数据库中的目标数据库引擎;
将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
基于所述服务地址,将所述数据处理请求发送至所述服务地址指向的所述目标数据库引擎。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
接收模块,被配置为接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析模块,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
发送模块,被配置为基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
根据本说明书实施例的第三方面,提供了一种数据处理***,包括:
客户端和服务端;
所述客户端,被配置为接收用户通过接口驱动模块针对待处理数据提交的数据处理请求,并将所述数据处理请求通过数据传输链路发送至所述服务端,其中,所述接口驱动模块与所述服务端的服务模块通过目标传输协议建立所述数据传输链路;
所述服务端,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述客户端,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述数据处理方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
本说明书一个实施例通过接收用户通过调用数据接口针对待处理数据提交的数据处理请求,解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
本说明书实施例实现了通过统一的数据接口为用户提供服务,即用户通过访问统一的数据接口,即可实现对数据库***中不同数据库引擎的访问,并且不同数据库引擎可独立使用,因此,通过统一的数据接口,简化了每种数据库***的使用过程,提高了其易用性。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的流程图;
图2a是本说明书一个实施例提供的一种数据处理架构的示意图;
图2b是本说明书一个实施例提供的一种数据处理过程的示意图;
图3是本说明书一个实施例提供的一种数据处理方法的处理过程流程图;
图4是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图5是本说明书一个实施例提供的一种数据处理***的示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
分布式***(Distributed system):分布式***是建立在网络之上的软件***,由多个通过网络连接的节点组成,这些节点协同工作,并对外隐藏内部的拓补结构,向外部提供类似于一般软件***的功能。正是因为软件的特性,所以分布式***具有高度的内聚性和透明性。
节点(Node):构成分布式***的基本单元。一个分布式***可能由众多节点构成。节点承担了管理计算与存储资源的职责。典型的分布式***中一个节点代表一台运行了相应分布式软件的计算机服务器。
SQL:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
OLTP:On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
OLAP:联机分析处理OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis ofShared Multidimensional Information),即共享多维信息的快速分析的特征。其中F是快速性(Fast),指***能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息。
查询优化器/执行引擎:查询优化器是数据库的重要组件,它针对用户的请求进行内部优化,生成(或重用)执行计划,然后交由执行引擎传输给数据库引擎来操作数据,最终返回结果给用户。查询优化器/执行器是关系型数据库管理***的核心之一,决定对特定的查询使用哪些索引、哪些关联算法、从而使其高效运行,它是数据库中最重要的组件之一。
数据库引擎:数据库中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。
行存:传统的关系型数据库,如DB2、MySQL、SQL SERVER等采用行式存储法(Row-based),在基于行式存储的数据库中,数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存储形式存在。
列存:列式存储(Column-based)是相对于行式存储来说的,新兴的Hbase、HPVertica等分布式数据库均采用列式存储。在基于列式存储的数据库中,数据是按照列为基础的逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在。
多模数据库:企业使用云数据库对接的应用越来越多,需求多种多样,传统的做法是在dbPaaS里面提供十几个不同的数据库产品分别应对各种需求,这样的方法在***增加后,整体维护性和数据一致性管理成本很高,会影响到整个***的使用。为了实现业务数据的统一管理和数据融合,新型数据库需要具备多模式(Multi-Model)数据管理和存储的能力。能同时处理结构化数据、半结构化数据和非结构化数据。通常来说,结构化数据特指表单类型的数据存储结构,典型应用包括银行核心交易等传统业务;而半结构化数据则在用户画像、物联网设备日志采集、应用点击流分析等场景中得到大规模使用;非结构化数据则对应着海量的图片、视频、和文档处理等业务,在金融科技的发展下增长迅速。
数据库***主要帮助用户进行数据的存储和查询,SQL语言由于其易用性,被用户广泛使用。当用户提交一个SQL到数据库***时,***会对SQL进行解析,再经过查询优化器生成满足条件的执行计划,交由执行引擎进行执行。
不同的场景对于底层存储的要求不同,比如高并发OLTP点查场景,用行存比较合适。大规模聚合分析的OLAP场景,用列存比较合适。因此通常一个数据库***会同时支持多种不同的数据库引擎,用于满足不同的场景。而查询优化器和不同的数据库引擎交互时,需要一个统一的接口,这样才方便扩展更多不同类型的数据库引擎。
另外,在多模数据库中,同时包含多种数据库类型,比如宽表、时序、搜索、文件等,查询优化器对接底层不同类型的数据库时,也需要一个统一的接口,这样才方便扩展更多不同模型的数据库产品。
以MySQL为例:其通过./sql/handler.h中Hander类定义的API来扩展不同的数据库引擎插件,但其数据库引擎不能独立使用,必须集成在MySQL中才能使用。
或者,以TiDB为例:其通过distsql协议,来对接行存TiKV和列存TiFlash。distsql是位于SQL接口层和coprocessor之间的一层抽象,它把下层的coprocessor请求封装起来对上层提供一个简单的Select方法,执行一个单表的计算任务,但其数据库引擎同样不能独立使用,必须集成在TiDB中才能使用。
基于此,本说明书实施例提供一种多模数据库统一SQL接口的实现方法,最大限度地发挥多模数据库的能力,同时方便扩展更多不同模型的数据库。
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种数据处理***,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。
步骤102,接收用户通过调用数据接口针对待处理数据提交的数据处理请求。
本说明书实施例,数据库***主要帮助用户进行数据的存储和查询,SQL语言由于其易用性,被用户广泛使用。当用户提交一个SQL到数据库***时,***会对SQL进行解析,再经过查询优化器生成满足条件的执行计划,交由执行引擎进行执行。为满足不同的数据处理场景,通常一个数据库***会同时支持多种不同的数据库引擎,而查询优化器和不同的数据库引擎交互时,需要一个统一的接口,这样可简化数据库***的使用过程,提高其易用性,并可为扩展更多不同类型的数据库引擎提供便利。
因此,本说明书实施例为用户提供一个统一的数据接口,用户可通过调用该统一的数据接口,实现对数据库***中其他数据库引擎中的数据进行访问。
其中,所述待处理数据,即数据库***中不同数据库引擎所存储的数据;所述数据处理请求,即可以是所述待处理数据的增、删、改、查等处理请求。
通过统一的数据接口接收该数据处理请求后,可通过对该数据处理请求进行解析,并基于解析结果进行接口映射,以将该数据处理请求通过与不同数据库引擎对应的引擎接口,发送至不同的数据库引擎进行处理。
步骤104,解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果。
具体实施时,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析所述数据处理请求,具体可确定所述至少一条数据处理语句的语言类型,并确定所述语言类型是否属于目标语言类型;若是,则解析所述至少一条数据处理语句。
或者,在确定所述语言类型不属于目标语言类型的情况下,对所述至少一条数据处理语句进行编码处理,生成所述目标语言类型对应的目标数据处理语句,并解析所述目标数据处理语句。
具体的,在数据处理过程中,用户可以通过数据接口向数据库发送数据处理语句。根据数据库支持的语言类型的不同,数据处理语句会有所不同,例如其可以是结构化查询语言,也可以是C语言或Java语言等。数据接口接收到该数据处理语句后,通过引擎接口将该数据处理语句发送至不同的目标数据库引擎,目标数据库引擎主要根据数据处理语句对数据库进行数据查询操作,并向用户返回处理结果。
因此,在接收到数据处理请求后,可确定数据处理请求中包含的至少一条数据处理语句的语言类型是否属于数据库所支持的目标语言类型,若是,则可直接对该至少一条数据处理语句进行解析。
但在至少一条数据处理语句的语言类型不属于数据库所支持的目标语言类型的情况下,则可对该至少一条数据处理语句进行编码处理,以将其编码为目标语言类型的目标数据处理语句,再对目标数据处理语句进行解析。
进一步的,所述目标语言类型即可以是结构化查询语言,在所述数据处理请求中包含至少一条数据处理语句的情况下,解析所述数据处理请求,具体可通过以下方式实现:
确定所述至少一条数据处理语句是否属于结构化查询语言;
若否,则对所述至少一条数据处理语句进行编码处理,生成目标数据处理语句,并解析所述目标数据处理语句,其中,所述目标数据处理语句属于结构化查询语言。
具体的,在数据库支持的目标语言类型为结构化查询语言的情况下,若确定数据处理请求中包含的至少一条数据处理语句的语言类型不属于结构化查询语言,则可对其进行编码,生成结构化查询语言对应的目标数据处理语句。
更进一步的,基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,具体可确定所述目标数据处理语句中的指定字段对应的解析结果,并将所述指定字段对应的解析结果作为所述待处理数据在数据库中不同数据库引擎的分布结果。
具体的,由于数据处理请求中包含的至少一条数据处理语句中需指明待处理数据的存储信息,包括但不限于其所在的数据库、数据表和字段等。而待处理数据在数据库中不同数据库引擎的分布结果,即表示待处理数据分布在数据库中的哪些目标数据库引擎内。
因此,待处理数据在数据库中不同数据库引擎的分布结果,即可通过目标数据处理语句中的指定字段对应的解析结果确定。
实际应用中,数据库引擎是用于存储、处理和保护数据的核心服务,其任务包括处理与数据库相关的事务,例如设计并创建数据库,保存数据库所需的各种列表和文档等,针对数据库提供日常管理支持以优化数据库的性能,以及响应客户端的数据访问请求对数据库进行相关操作并向客户端返回相关操作结果,从而实现数据库中数据的查看、删除、修改、增加等。
在数据库支持的目标语言类型为结构化查询语言的情况下,基于实际应用的不同,分布结果在SQL语句中的位置可能也会不同,因此,相应获取的方式也会不同。
例如,若从SQL语句的指定字段中获取待处理数据在数据库中不同数据库引擎的分布结果,则可将SQL语句中指定字段,如数据表名、数据表中的字段名等的值确定为该待处理数据对应的分布结果。
或者,还可根据SQL语句中的指定标识字符确定该待处理数据在数据库中不同数据库引擎的分布结果。其中,该指定标识字符与SQL规范中的己有字符不同即可。例如,将一个SQL语句中的“$”作为指定标识字符,将两个指定标识字符之间的字符串的解析结果作为该待处理数据的对应的分布结果。
具体实施时,基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,具体可基于解析结果确定所述待处理数据的数据存储类型,确定与所述数据存储类型对应的目标数据库引擎,并将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
具体的,由于数据库***中包含多个数据库引擎,而数据库引擎是数据库如何存储数据、怎样建立索引以及如何查询更新数据等技术的实现方法,数据通过使用不同的技术存储在文件中,使用不同的存储机制、索引方式来提供不同的功能。对于mysql关系型数据中心而言,数据是以表的方式来存储的,因此,数据库引擎可用于表征存储和操作该表的类型。
基于此,在对数据处理请求中的至少一个数据处理语句进行解析,生成对应的解析结果后,还可根据解析结果确定待处理数据在数据库中的数据存储类型,以根据数据存储类型确定满足条件的目标数据库引擎,并将目标数据库引擎作为待处理数据在数据库中不同数据库引擎的分布结果。
另外,解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,具体可通过以下方式实现:
解析所述数据处理请求,并根据解析结果确定所述待处理数据对应的数据存储类型;
确定所述数据存储类型对应的服务地址,其中,所述服务地址指向数据库中的目标数据库引擎;
将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
具体的,可在数据库中增加数据库引擎,并在数据库中嵌入该数据库引擎对应的服务地址,进而在接收到数据处理请求后,可直接基于嵌入的服务地址访问目标数据库引擎,并从目标数据库引擎中获取数据处理请求所请求的待处理数据,执行数据处理操作,并将处理结果返回给用户。
实际应用中,在接收到数据处理请求后,由于所述数据处理请求中可包含至少一条数据处理语句,且所述至少一条数据处理语句中需指明待处理数据的存储信息,例如存储类型,因此,本说明书实施例可通过解析所述数据处理请求,以基于解析结果确定待处理数据对应的数据存储类型。另外,由于不同数据库引擎对应的数据存储类型不同,且不同数据库引擎的服务地址不同,因此,本说明书实施例在解析获得待处理数据对应的数据存储类型后,可确定该数据存储类型对应的服务地址,并确定该服务地址指向的目标数据库引擎,在将该目标数据库引擎作为待处理数据在数据库中不同数据库引擎的分布结果。
步骤106,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
具体实施时,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
基于所述分布结果确定包含所述待处理数据的目标数据库引擎,其中,所述目标数据库引擎为所述不同数据库引擎中的任意一个或至少两个;
确定与所述目标数据库引擎对应的引擎接口,通过所述引擎接口将所述数据处理请求发送至所述目标数据库引擎,以执行对应的数据处理操作,生成对应的处理结果并返回;
其中,所述数据接口及所述引擎接口通过目标协议标准封装生成。
具体的,确定待处理数据在数据库中不同数据库引擎的分布结果后,所述分布结果表征待处理数据分布于哪些目标数据库引擎,因此,可基于分布结果确定包含待处理数据的目标数据库引擎,并确定目标数据库引擎对应的引擎接口,即进行接口映射,将数据处理请求映射至不同引擎接口,从而通过引擎接口将该数据处理请求发送至不同数据库引擎,由不同数据库引擎基于该数据处理请求执行对应的数据处理操作,生成对应的处理结果并返回。通过这种方式实现利用统一的数据接口即可对数据库中不同数据库引擎进行访问。
其中,所述目标协议标准即可以是SQL标准,通过SQL标准封装生成的数据接口及引擎接口均为SQL接口,并且,实际应用中,基于SQL标准进行接口封装具体可通过SQLDriver实现。
或者,该目标协议标准可以是MySQL客户端协议,具体可根据实际需求确定,在此不做限制。
在部署实现上,数据接口与引擎接口可以部署在同一物理设备上实现,并允许用户通过该数据接口访问数据库,当用户需要访问数据库时,可通过数据接口提交数据处理请求。
数据接口可以向数据库引擎的引擎接口发送数据处理请求,数据库引擎可以根据该数据处理请求对其存储的待处理数据进行相应处理操作。
在一种数据查询场景中,用户可以通过数据接口向数据库发送数据查询语句。根据数据库支持的语言类型的不同,数据查询语句会有所不同,例如其可以是结构化查询语言,也可以是C语言或Java语言等。数据接口接收到该数据查询语句后,通过引擎接口将该数据查询语句发送至不同的目标数据库引擎,目标数据库引擎主要根据数据查询语句对数据库进行数据查询操作,并向用户返回查询结果。
具体实施时,所述数据处理请求中包含至少一个数据处理语句,因此,解析所述数据处理请求,具体可解析所述至少一个数据处理语句,生成对应的初始语法树,并将所述初始语法树作为解析结果;
相应的,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
运行优化器对所述初始语法树进行优化处理,生成目标语法树,所述目标语法树包含至少一个待执行信息,每个待执行信息包含待执行语句;
运行优化器将所述至少一个待执行信息发送至执行器,并运行所述执行器将所述至少一个待执行信息发送至对应的目标数据库引擎。
具体的,数据库引擎在根据数据处理语句对数据库进行数据处理的过程中,可以对数据处理语句进行优化处理,这样可以减少计算量,提高查询效率。
本说明书实施例中,对数据处理语句的优化处理可以是普通优化过程和/或执行时的动态优化过程。普通优化过程是指在生成数据处理语句对应的执行计划之前的优化过程,一般由优化器完成,执行时的动态优化过程是指在执行计划运行过程中的相关优化过程,该过程可由执行器和优化器配合完成。
在接收到数据处理语句后,可对其解析并生成对应的初始语法树,优化器负责对初始语法树中的数据处理语句进行优化处理,以得到至少一个待执行信息,每个待执行信息中均包含待执行语句,该待执行语句中包含待处理数据对应的处理方式,例如:查询、求和、统计等。
生成待执行信息后,可运行优化器将待执行信息发送至执行器,并运行执行器将待执行信息发送至对应的目标数据库引擎。
其中,对数据处理语句进行解析的过程,可通过解析器实现,即由解析器在优化器之前,对数据处理语句进行语法解析,将数据处理语句解析成一颗初始语法树,然后将该初始语法树输入优化器。或者,解析器还可以对初始语法树进行语义解析。
对优化器来说,可以对初始语法树进行优化处理可以得到优化后的目标语法树,该优化后的目标语法树包含至少一个待执行信息。
利用优化器实现了执行时动态优化表达式的目的,这不仅提升了执行时表达式优化的能力,而且基于优化器已有优化技术的动态优化耗时相对较少,避免了优化性能提升被动态优化耗时所抵消的问题,有利于进一步提高数据处理效率。
另外,在确定数据存储类型对应的服务地址,并确定服务地址所指向的目标数据库引擎后,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,具体可基于所述服务地址,将所述数据处理请求发送至所述服务地址指向的所述目标数据库引擎。
本说明书实施例提供的数据处理架构的示意图如图2a所示,最下层的KV引擎、时序引擎等代表多模数据库中的不同数据库模型(数据模型);引擎接口代表不同模型实现的SQL Drvier,这层称为引擎接口层;统一的数据接口代表多模数据库对外提供的统一SQL访问入口,这层称为统一接口层。
引擎接口层通过统一数据接口(SQL接口)对外提供服务,解决了MySQL、TiDB中各引擎不能独立使用的问题。同时SQL具备易用性,比如select*from test,上手非常容易,有统一的标准、表达能力强、受众广、标准JDBC接口,开源实现丰富,这些特点极大地简化了各个模型的使用,更容易被用户接受。
引擎接口层和统一接口层采用相同的SQL客户端,极大地降低了用户使用成本,同时可以很方便地集成更多不同的模型。
另外,本说明书实施例在引擎接口(SQL Driver)之上通过用于构建数据库驱动程序的框架做一层连接映射,具体的,由于该框架包含SQL接口驱动模块(SQL Driver)以及框架服务模块,SQL接口驱动模块通过HTTP协议与框架服务模块进行通信,协议包采用ProtocolBuffer进行编码,能支持.NET/Go/Java/Python/JavaScript等多种语言的SQL接口驱动模块进行访问。框架服务模块采用Jetty进行实现,主要功能是进行连接映射,因此,在用户通过SQL接口驱动模块建立JDBC连接,则可由框架服务模块将这个JDBC连接映射成不同模型的SQL连接,例如映射成KV模型的SQL连接,或时序模型的SQL连接。
这样,在引擎接口层和统一接口层我们都可以使用相同的SQL客户端,即SQL接口驱动模块,有利于简化数据库***的使用过程,提高了易用性。
本说明书实施例提供的一种数据处理过程的示意图如图2b所示,在通过统一的数据接口接收到数据处理请求后,可对该数据处理请求进行解析,并基于解析结果将该数据处理请求映射至不同的引擎接口,以通过引擎接口将该数据处理请求发送至对应的多个不同的数据库引擎,数据库引擎接收该数据处理请求后,可基于数据处理请求,对其存储的数据执行增删改查等操作,还可将执行结果返回给用户。
本说明书一个实施例通过接收用户通过调用数据接口针对待处理数据提交的数据处理请求,解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
本说明书实施例实现了通过统一的数据接口为用户提供服务,即用户通过访问统一的数据接口,即可实现对数据库***中不同数据库引擎的访问,并且不同数据库引擎可独立使用,因此,通过统一的数据接口,简化了每种数据库***的使用过程,提高了易用性。
下述结合附图3,以本说明书提供的数据处理方法在实际场景的应用为例,对所述数据处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据处理方法的处理过程流程图,具体包括以下步骤。
步骤302,接收用户通过调用统一数据接口针对待查询数据提交的数据查询请求,其中,所述数据查询请求中包含至少一条数据查询语句。
步骤304,在确定所述至少一条数据查询语句的语言类型属于目标语言类型的情况下,解析所述至少一条数据查询语句。
步骤306,确定所述至少一条数据查询语句中的指定字段对应的解析结果。
步骤308,将所述指定字段对应的解析结果作为所述待查询数据在数据库中不同数据库引擎的分布结果。
步骤310,基于所述分布结果确定包含所述待查询数据的目标数据库引擎,其中,所述目标数据库引擎为所述不同数据库引擎中的任意一个或至少两个。
步骤312,确定与所述目标数据库引擎对应的引擎接口,通过所述引擎接口将所述数据查询请求发送至所述目标数据库引擎。
具体的,所述目标数据库引擎基于所述数据查询请求执行对应的数据查询操作,生成对应的查询结果并返回。
其中,所述数据接口及所述引擎接口通过SQL标准封装生成。
步骤314,接收所述目标数据库引擎发送的数据查询结果,并将所述数据查询结果返回至所述用户。
本说明书实施例实现了通过统一的数据接口为用户提供服务,即用户通过访问统一的数据接口,即可实现对数据库***中不同数据库引擎的访问,并且不同数据库引擎可独立使用,因此,通过统一的数据接口,简化了每种数据库***的使用过程,提高了易用性。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图4示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图4所示,该装置包括:
接收模块402,被配置为接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析模块404,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
发送模块406,被配置为基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
可选地,所述发送模块406,进一步被配置为:
基于所述分布结果确定包含所述待处理数据的目标数据库引擎,其中,所述目标数据库引擎为所述不同数据库引擎中的任意一个或至少两个;
确定与所述目标数据库引擎对应的引擎接口,通过所述引擎接口将所述数据处理请求发送至所述目标数据库引擎,以执行对应的数据处理操作,生成对应的处理结果并返回;
其中,所述数据接口及所述引擎接口通过目标协议标准封装生成。
可选地,所述解析模块404,进一步被配置为:
基于解析结果确定所述待处理数据的数据存储类型,确定与所述数据存储类型对应的目标数据库引擎,并将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述数据处理请求中包含至少一个数据处理语句,所述解析模块404,进一步被配置为:
解析所述至少一个数据处理语句,生成对应的初始语法树,并将所述初始语法树作为解析结果;
相应的,所述发送模块406,进一步被配置为:
运行优化器对所述初始语法树进行优化处理,生成目标语法树,所述目标语法树包含至少一个待执行信息,每个待执行信息包含待执行语句;
运行优化器将所述至少一个待执行信息发送至执行器,并运行所述执行器将所述至少一个待执行信息发送至对应的目标数据库引擎。
可选地,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析模块404,进一步被配置为:
确定所述至少一条数据处理语句的语言类型,并确定所述语言类型是否属于目标语言类型;
若是,则解析所述至少一条数据处理语句。
可选地,所述数据处理装置,还包括编码处理模块,被配置为:
在确定所述语言类型不属于目标语言类型的情况下,对所述至少一条数据处理语句进行编码处理,生成所述目标语言类型对应的目标数据处理语句;
解析所述目标数据处理语句。
可选地,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析模块404,进一步被配置为:
确定所述至少一条数据处理语句是否属于结构化查询语言;
若否,则对所述至少一条数据处理语句进行编码处理,生成目标数据处理语句,并解析所述目标数据处理语句,其中,所述目标数据处理语句属于结构化查询语言。
可选地,所述解析模块404,进一步被配置为:
确定所述目标数据处理语句中的指定字段对应的解析结果,并将所述指定字段对应的解析结果作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述解析模块404,进一步被配置为:
解析所述数据处理请求,并根据解析结果确定所述待处理数据对应的数据存储类型;
确定所述数据存储类型对应的服务地址,其中,所述服务地址指向数据库中的目标数据库引擎;
将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
可选地,所述发送模块406,进一步被配置为:
基于所述服务地址,将所述数据处理请求发送至所述服务地址指向的所述目标数据库引擎。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种数据处理***的示意图,具体包括:
客户端502和服务端504;
所述客户端502,被配置为接收用户通过接口驱动模块针对待处理数据提交的数据处理请求,并将所述数据处理请求通过数据传输链路发送至所述服务端504,其中,所述接口驱动模块与所述服务端504的服务模块通过目标传输协议建立所述数据传输链路;
所述服务端504,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述客户端502,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
本说明书实施例,数据库***主要帮助用户进行数据的存储和查询,SQL语言由于其易用性,被用户广泛使用。当用户提交一个SQL到数据库***时,***会对SQL进行解析,再经过查询优化器生成满足条件的执行计划,交由执行引擎进行执行。为满足不同的数据处理场景,通常一个数据库***会同时支持多种不同的数据库引擎,而查询优化器和不同的数据库引擎交互时,需要一个统一的接口,这样可简化数据库***的使用过程,提高其易用性,并可为扩展更多不同类型的数据库引擎提供便利。
因此,本说明书实施例为用户提供一个统一的数据接口,用户可通过调用该统一的数据接口,实现对数据库***中其他数据库引擎中的数据进行访问。
实际应用中,所述待处理数据,即数据库***中不同数据库引擎所存储的数据;所述数据处理请求,即可以是所述待处理数据的增、删、改、查等处理请求。
由于客户端可包含不同类型的接口驱动模块,例如ODBC接口驱动模块或JDBC接口驱动模块;用户在存在数据处理需求的情况下,即可通过接口驱动模块针对待处理数据提交数据处理请求。其中,该数据处理请求中包含至少一条数据处理语句,根据数据库支持的语言类型的不同,数据处理语句会有所不同,例如其可以是结构化查询语言,也可以是C语言或Java语言等。若所述数据处理请求中的数据处理语句为C语言,则可通过ODBC接收驱动模块接收该数据处理请求,即用户可通过ODBC接收驱动模块发送该数据处理请求;若所述数据处理请求中的数据处理语句为Java语言,则可通过JDBC接收驱动模块接收该数据处理请求,即用户可通过JDBC接收驱动模块发送该数据处理请求。
另外,客户端可通过接口驱动模块与服务端的服务模块建立数据传输链路,而该数据传输链路可采用目标传输协议建立。例如,接口驱动模块可通过HTTP协议与框架服务模块进行通信,协议包采用Protocol Buffer进行编码,能支持.NET/Go/Java/Python/JavaScript等多种语言的SQL接口驱动模块进行访问。服务模块可以是框架服务模块,框架服务模块采用Jetty进行实现,主要功能是进行连接映射,因此,在用户通过SQL接口驱动模块建立JDBC连接,则可由框架服务模块将这个JDBC连接映射成不同模型的SQL连接,例如映射成KV模型的SQL连接,或时序模型的SQL连接。
因此,客户端接收到该数据处理请求后,可通过该数据传输链路将该数据处理请求发送至服务端。
服务端接收到数据处理请求后,可解析该数据处理请求,具体可确定至少一条数据处理语句的语言类型,并确定所述语言类型是否属于目标语言类型;若是,则对至少一条数据处理语句进行解析。
或者,在确定所述语言类型不属于目标语言类型的情况下,对至少一条数据处理语句进行编码处理,生成目标语言类型对应的目标数据处理语句,并对目标数据处理语句进行解析然后可基于解析结果进行接口映射,以将该数据处理请求通过与不同数据库引擎对应的引擎接口,发送至不同的数据库引擎进行处理。
本说明书实施例实现了通过服务端统一的数据接口为用户提供服务,即用户通过访问统一的数据接口,即可实现对数据库***中不同数据库引擎的访问,并且不同数据库引擎可独立使用,因此,通过统一的数据接口,简化了每种数据库***的使用过程,提高了其易用性。
上述为本实施例的一种数据处理***的示意性方案。需要说明的是,该数据处理***的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理***的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种数据处理方法,包括:
接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
2.根据权利要求1所述的数据处理方法,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
基于所述分布结果确定包含所述待处理数据的目标数据库引擎,其中,所述目标数据库引擎为所述不同数据库引擎中的任意一个或至少两个;
确定与所述目标数据库引擎对应的引擎接口,通过所述引擎接口将所述数据处理请求发送至所述目标数据库引擎,以执行对应的数据处理操作,生成对应的处理结果并返回;
其中,所述数据接口及所述引擎接口通过目标协议标准封装生成。
3.根据权利要求1所述的数据处理方法,所述基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
基于解析结果确定所述待处理数据的数据存储类型,确定与所述数据存储类型对应的目标数据库引擎,并将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
4.根据权利要求1所述的数据处理方法,所述数据处理请求中包含至少一个数据处理语句,所述解析所述数据处理请求,包括:
解析所述至少一个数据处理语句,生成对应的初始语法树,并将所述初始语法树作为解析结果;
相应的,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
运行优化器对所述初始语法树进行优化处理,生成目标语法树,所述目标语法树包含至少一个待执行信息,每个待执行信息包含待执行语句;
运行优化器将所述至少一个待执行信息发送至执行器,并运行所述执行器将所述至少一个待执行信息发送至对应的目标数据库引擎。
5.根据权利要求1所述的数据处理方法,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析所述数据处理请求,包括:
确定所述至少一条数据处理语句的语言类型,并确定所述语言类型是否属于目标语言类型;
若是,则解析所述至少一条数据处理语句。
6.根据权利要求5所述的数据处理方法,还包括:
在确定所述语言类型不属于目标语言类型的情况下,对所述至少一条数据处理语句进行编码处理,生成所述目标语言类型对应的目标数据处理语句;
解析所述目标数据处理语句。
7.根据权利要求1所述的数据处理方法,所述数据处理请求中包含至少一条数据处理语句;
相应的,所述解析所述数据处理请求,包括:
确定所述至少一条数据处理语句是否属于结构化查询语言;
若否,则对所述至少一条数据处理语句进行编码处理,生成目标数据处理语句,并解析所述目标数据处理语句,其中,所述目标数据处理语句属于结构化查询语言。
8.根据权利要求7所述的数据处理方法,所述基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
确定所述目标数据处理语句中的指定字段对应的解析结果,并将所述指定字段对应的解析结果作为所述待处理数据在数据库中不同数据库引擎的分布结果。
9.根据权利要求1所述的数据处理方法,所述解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,包括:
解析所述数据处理请求,并根据解析结果确定所述待处理数据对应的数据存储类型;
确定所述数据存储类型对应的服务地址,其中,所述服务地址指向数据库中的目标数据库引擎;
将所述目标数据库引擎作为所述待处理数据在数据库中不同数据库引擎的分布结果。
10.根据权利要求9所述的数据处理方法,所述基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,包括:
基于所述服务地址,将所述数据处理请求发送至所述服务地址指向的所述目标数据库引擎。
11.一种数据处理装置,包括:
接收模块,被配置为接收用户通过调用数据接口针对待处理数据提交的数据处理请求;
解析模块,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果;
发送模块,被配置为基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述用户,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
12.一种数据处理***,包括:
客户端和服务端;
所述客户端,被配置为接收用户通过接口驱动模块针对待处理数据提交的数据处理请求,并将所述数据处理请求通过数据传输链路发送至所述服务端,其中,所述接口驱动模块与所述服务端的服务模块通过目标传输协议建立所述数据传输链路;
所述服务端,被配置为解析所述数据处理请求,并基于解析结果确定所述待处理数据在数据库中不同数据库引擎的分布结果,基于所述分布结果将所述数据处理请求发送至对应的目标数据库引擎,接收所述目标数据库引擎发送的数据处理结果并返回至所述客户端,其中,所述数据处理结果为所述目标数据库引擎对所述待处理数据执行数据处理操作生成。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至10任意一项所述数据处理方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至10任意一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463342.3A CN114356971A (zh) | 2021-12-02 | 2021-12-02 | 数据处理方法、装置以及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463342.3A CN114356971A (zh) | 2021-12-02 | 2021-12-02 | 数据处理方法、装置以及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114356971A true CN114356971A (zh) | 2022-04-15 |
Family
ID=81097381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111463342.3A Pending CN114356971A (zh) | 2021-12-02 | 2021-12-02 | 数据处理方法、装置以及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356971A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996361A (zh) * | 2022-07-29 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 数据处理方法及*** |
CN115599790A (zh) * | 2022-11-10 | 2023-01-13 | 星环信息科技(上海)股份有限公司(Cn) | 一种数据存储***、数据处理方法、电子设备和存储介质 |
CN115994146A (zh) * | 2023-03-22 | 2023-04-21 | 烟台云朵软件有限公司 | 一种混合式数据存储引擎***及数据存储方法、访问方法 |
CN116522415A (zh) * | 2023-04-23 | 2023-08-01 | 杭州前云数据技术有限公司 | 一种实现医疗大数据安全存储及共享的*** |
CN117290451A (zh) * | 2023-09-12 | 2023-12-26 | 上海沄熹科技有限公司 | 一种保证数据库***事务一致性的方法及*** |
-
2021
- 2021-12-02 CN CN202111463342.3A patent/CN114356971A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996361A (zh) * | 2022-07-29 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 数据处理方法及*** |
CN115599790A (zh) * | 2022-11-10 | 2023-01-13 | 星环信息科技(上海)股份有限公司(Cn) | 一种数据存储***、数据处理方法、电子设备和存储介质 |
CN115599790B (zh) * | 2022-11-10 | 2024-03-15 | 星环信息科技(上海)股份有限公司 | 一种数据存储***、数据处理方法、电子设备和存储介质 |
CN115994146A (zh) * | 2023-03-22 | 2023-04-21 | 烟台云朵软件有限公司 | 一种混合式数据存储引擎***及数据存储方法、访问方法 |
CN116522415A (zh) * | 2023-04-23 | 2023-08-01 | 杭州前云数据技术有限公司 | 一种实现医疗大数据安全存储及共享的*** |
CN116522415B (zh) * | 2023-04-23 | 2023-11-07 | 杭州前云数据技术有限公司 | 一种实现医疗大数据安全存储及共享的*** |
CN117290451A (zh) * | 2023-09-12 | 2023-12-26 | 上海沄熹科技有限公司 | 一种保证数据库***事务一致性的方法及*** |
CN117290451B (zh) * | 2023-09-12 | 2024-06-07 | 上海沄熹科技有限公司 | 一种保证数据库***事务一致性的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356971A (zh) | 数据处理方法、装置以及*** | |
US10169433B2 (en) | Systems and methods for an SQL-driven distributed operating system | |
US10311055B2 (en) | Global query hint specification | |
US20230177078A1 (en) | Conversational Database Analysis | |
US20130124545A1 (en) | System and method implementing a text analysis repository | |
CN106294695A (zh) | 一种面向实时大数据搜索引擎的实现方法 | |
WO2018035799A1 (zh) | 数据查询方法、应用和数据库服务器、中间件及*** | |
CN111475584B (zh) | 数据处理方法、***以及装置 | |
US20220413819A1 (en) | Code translations of resilient distributed datasets in databases | |
US11609927B2 (en) | Storing feature sets using semi-structured data storage | |
US20230082563A1 (en) | Data processing method and data processing apparatus | |
EP4174679A1 (en) | Extending database external functions with user-defined functions | |
CN112905618A (zh) | 数据处理方法以及装置 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
US10592506B1 (en) | Query hint specification | |
US11030177B1 (en) | Selectively scanning portions of a multidimensional index for processing queries | |
CN113220710A (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
CN116150437B (zh) | 图查询方法 | |
CN108804502A (zh) | 大数据查询***、方法、计算机设备及存储介质 | |
WO2023164294A1 (en) | Query splitter for an inverted index datastore | |
CN113806376B (zh) | 索引构建方法及装置 | |
CN115827676A (zh) | Sql子查询的执行方法、装置、终端设备以及介质 | |
CN114281842A (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 |