CN115455036A - 联合语句的处理方法、装置、设备和介质 - Google Patents
联合语句的处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN115455036A CN115455036A CN202211417809.5A CN202211417809A CN115455036A CN 115455036 A CN115455036 A CN 115455036A CN 202211417809 A CN202211417809 A CN 202211417809A CN 115455036 A CN115455036 A CN 115455036A
- Authority
- CN
- China
- Prior art keywords
- function
- statement
- split
- calculation
- joint
- 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.)
- Granted
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种联合语句的处理方法、装置、设备和介质,该方法包括:基于联合语句获取第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数;第一表标识是第一设备的第一数据表的标识,第二表标识是第二设备的第二数据表的标识;若第二函数需调用第一数据表,则基于第二函数生成联合语句的第一拆分语句;基于裁剪掉第二函数的第一函数和第一拆分语句的计算结果的结果标识生成联合语句的第二拆分语句;基于第一拆分语句和第二拆分语句与第二设备协同确定联合语句的计算结果。采用本申请,可丰富联合语句的计算场景,并降低对联合语句进行计算的难度。
Description
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种联合语句的处理方法、装置、设备和介质。
背景技术
随着大数据时代的到来,需要存储的数据也越来越多。而大多数据通常是通过数据表进行存储的,后续需要对存储数据的数据表进行操作时,可以通过结构化语句来对数据表进行相应的操作。
现有应用中,可以采用联邦计算方法对针对两个或两个以上数据表的结构化语句进行联邦计算,并可以采用单方计算方法对针对己方数据表的结构化语句进行单方计算,而当要对嵌套的需要进行联邦计算的结构化语句和需要进行单方计算的结构化语句同时进行计算时,其难度很大,不易实现。
发明内容
本申请提供了一种联合语句的处理方法、装置、设备和介质,可丰富联合语句的计算场景,并降低对联合语句进行计算的难度。
本申请一方面提供了一种联合语句的处理方法,该方法可以应用于第一设备,该方法包括:
对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;
对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则基于裁剪的第二函数生成联合语句的第一拆分语句;
获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;
基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。
本申请一方面提供了一种联合语句的处理装置,该装置可以应用于第一设备,该装置用于:
解析模块,用于对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;
第一生成模块,用于对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则基于裁剪的第二函数生成联合语句的第一拆分语句;
第二生成模块,用于获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;
确定模块,用于基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。
可选的,若第一函数是联邦计算函数,第二函数是非联邦计算函数,则确定模块基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
基于第一数据表计算第一拆分语句,得到第一拆分语句的计算结果;
基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果;
基于调用的第一拆分语句的计算结果与第二设备协同计算第二拆分语句,得到第二拆分语句的计算结果;
将第二拆分语句的计算结果确定为联合语句的计算结果。
可选的,第一函数和第二函数包含于联合语句中的函数调用语句中;上述装置还用于:
对函数调用语句进行语法解析,得到函数调用语句的语法树;函数调用语句的语法树中包含函数调用语句中的函数的函数节点;
从函数调用语句的语法树中最后一个函数节点开始,向上依次回溯函数调用语句的语法树中的函数节点;
若回溯到联邦函数节点,则停止回溯,并将回溯到的联邦函数节点所属的函数确定为第一函数,以及根据在联邦函数节点之前回溯到的非联邦函数节点所属的函数确定第二函数;
其中,联邦函数节点是指所属的函数是联邦计算函数的函数节点,非联邦函数节点是指所属的函数是非联邦计算函数的函数节点。
可选的,上述装置还用于:
将联合语句发送给第二设备,使第二设备基于联合语句生成第三拆分语句和用于指示第三拆分语句的计算结果的第二结果标识,并基于裁剪掉第二函数的第一函数和第二结果标识生成第四拆分语句;第三拆分语句是在第二函数需要调用第二数据表时由第二设备基于第二函数生成的;
其中,第二设备用于基于第二数据表计算第三拆分语句,得到第三拆分语句的计算结果,并用于基于第三拆分语句的计算结果与第一设备协同计算第四拆分语句;
第一设备和第二设备协同计算第二拆分语句的过程与第一设备和第二设备协同计算第四拆分语句的过程是同一个过程。
可选的,若第一函数是非联邦计算函数,第二函数是联邦计算函数,则确定模块基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
基于第一数据表与第二设备协同计算第一拆分语句,得到第一拆分语句的计算结果;
基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果;
基于调用的第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果;
将第二拆分语句的计算结果确定为联合语句的计算结果。
可选的,上述装置还用于:
将联合语句发送给第二设备,使第二设备基于第二函数生成第五拆分语句,并基于第二数据表与第一设备协同计算第五拆分语句;
第一设备和第二设备协同计算第二拆分语句的过程与第一设备和第二设备协同计算第五拆分语句的过程是同一个过程。
可选的,若联合语句还包含第三函数,第一函数嵌套在第三函数内,第三函数是非联邦计算函数,第一函数是联邦计算函数,则确定模块基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
对第一拆分语句进行计算,得到第一拆分语句的计算结果,并基于第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果;
获取用于指示第二拆分语句的计算结果的第三结果标识;
裁剪第三函数中的第一函数,并基于裁剪后的第三函数和第三结果标识生成联合语句的第六拆分语句;
基于第六拆分语句确定联合语句的计算结果。
可选的,确定模块基于第六拆分语句确定联合语句的计算结果的方式,包括:
基于第六拆分语句中组装的第三结果标识调用第二拆分语句的计算结果;
基于调用的第二拆分语句的计算结果计算第六拆分语句,得到第六拆分语句的计算结果;
将第六拆分语句的计算结果确定为联合语句的计算结果。
可选的,第二函数是由依次嵌套的N个非联邦计算函数构成,第三函数是由依次嵌套的M个非联邦计算函数构成,N和M均为正整数。
可选的,第一函数和第二函数中的联邦计算函数表示为目标函数,联合语句包含目标函数的补充语句,补充语句用于指示目标函数的计算规则;
解析模块对联合语句进行语法解析,得到第一表标识和第二表标识的方式,包括:
对联合语句中的补充语句进行语法解析,得到补充语句的语法树;补充语句的语法树包含目标函数需调用的数据表的表标识;
从补充语句的语法树中提取出目标函数需调用的第一数据表的第一表标识、及目标函数需调用的第二数据表的第二表标识。
可选的,第一生成模块基于裁剪的第二函数生成联合语句的第一拆分语句的方式,包括:
获取第二函数在第一数据表中需调用的数据的数据标识;
基于裁剪的第二函数和数据标识生成第一拆分语句。
可选的,若第二函数是非联邦计算函数,第二函数不需调用第一数据表,第二函数需要调用第二数据表,则上述装置还用于:
基于裁剪后的第一函数生成联合语句的第七拆分语句;
基于第一数据表与第二设备协同计算第七拆分语句,得到第七拆分语句的计算结果;第二设备用于基于第二数据表计算针对第二函数的计算结果,并用于基于针对第二函数的计算结果与第一设备协同计算第七拆分语句;
将第七拆分语句的计算结果确定为联合语句的计算结果。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请中第一设备可以对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则第一设备可以基于裁剪的第二函数生成联合语句的第一拆分语句;第一设备还可以获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;以及,基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。由此可见,本申请提出的方法当用于对数据表进行计算的联合语句同时具有嵌套的第一函数和第二函数,且第一函数和第二函数中一个是联邦计算函数一个是非联邦计算函数时,可以基于第一函数和第二函数之间的嵌套结构对联合语句进行拆分(可以理解为对函数进行拆分),拆分得到单方计算的语句(如非联邦计算函数对应的拆分语句)以及需要协同计算的语句(如联邦计算函数对应的拆分语句),而后就可以通过计算拆分得到的语句确定针对联合语句的计算结果,以此实现了对嵌套有联邦计算函数和非联邦计算函数的联合语句的计算,丰富了针对联合语句的计算场景,并降低了对该联合语句进行计算的难度。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种网络架构的结构示意图;
图2是本申请提供的一种语句计算方法的场景示意图;
图3是本申请提供的一种联合语句的处理方法的流程示意图;
图4a-图4c是本申请提供的一种确定表标识的场景示意图;
图5是本申请提供的一种语法树的结构示意图;
图6是本申请提供的一种语句拆分计算的场景示意图;
图7是本申请提供的一种语句计算方法的流程示意图;
图8是本申请提供的一种计算拆分语句的场景示意图;
图9是本申请提供的另一种语句计算方法的流程示意图;
图10是本申请提供的另一种计算拆分语句的场景示意图;
图11是本申请提供的又一种语句计算方法的流程示意图;
图12是本申请提供的一种函数拆分的场景示意图;
图13是本申请提供的一种语句计算的场景示意图;
图14是本申请提供的一种联合语句的处理装置的结构示意图;
图15是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及到人工智能相关技术。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请中所涉及到的人工智能可以指需要进行计算的联合语句可以是人工智能相关任务所涉及的语句。
本申请涉及到云技术。其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请中所涉及到的云技术可以指第一设备与第二设备之间可以通过“云”进行数据交互,如通过“云”对目标拆分语句进行协同计算。
首先,需要进行说明的是,本申请所采集的所有数据(如数据表中的数据等相关数据)都是在该数据所属对象(如相关用户或者机构)同意并授权的情况下进行采集的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
请参见图1,图1是本申请提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器200和终端设备集群,终端设备集群可以包括一个或者多个终端设备,这里将不对终端设备的数量进行限制。如图1所示,多个终端设备具体可以包括终端设备1、终端设备2、终端设备3、…、终端设备n;如图1所示,终端设备1、终端设备2、终端设备3、…、终端设备n均可以与服务器200进行网络连接,以便于每个终端设备可以通过网络连接与服务器200之间进行数据交互。
如图1所示的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、车载终端、便捷式终端等智能终端。下面以终端设备1与服务器200之间的通信为例,进行本申请实施例的具体描述。
请一并参见图2,图2是本申请提供的一种语句计算方法的场景示意图。如图2所示,终端设备1可以是对象(可以是用户或者机构)的终端设备,对象可以在终端设备1中录入需要进行计算的联合语句(属于SQL语句(即结构化语句)),终端设备1可以将对象录入的联合语句发送给服务器200,进而服务器200可以对该联合语句进行计算,如下述内容描述。
联合语句中可以包括嵌套的多层函数,该嵌套的多层函数可以包括非联邦计算函数1、非联邦计算函数2、非联邦计算函数3、联邦计算函数0、非联邦计算函数4和非联邦计算函数5。其中,非联邦计算函数1内嵌套了非联邦计算函数2,非联邦计算函数2内嵌套了非联邦计算函数3,非联邦计算函数3内嵌套了联邦计算函数0,联邦计算函数0内嵌套了非联邦计算函数4,非联邦计算函数4内嵌套了非联邦计算函数5。
需要进行说明的是,上述联合语句是用于对数据表进行计算的语句,联合语句中同时嵌套有联邦计算函数和非联邦计算函数。本申请中非联邦计算函数是可以用于对某一个或者多个数据表分别独立进行计算的函数,该非联邦计算函数可以由持有相应数据表(如非联邦计算函数调用的数据表)的单方进行计算。而联邦计算函数则是可以用于对多个数据表同时进行联邦计算(如针对该多个数据表的聚合计算)的函数,联邦计算函数需要由该多个数据表分别所属的持有者一起进行联邦计算(即协同计算)。
举个例子,若首先需要通过非联邦计算函数A对数据表A进行格式变换的计算,进而,需要通过联邦计算函数B对数据表B与格式变换后的数据表A进行聚合计算(如对两个数据表中的列进行连接的计算),即联邦计算函数B内嵌套有非联邦计算函数A,则非联邦计算函数A可以由持有数据表A的设备进行计算,得到格式变换后的数据表A,进而,持有数据表A的设备可以通过该格式变换后的数据表A与持有数据表B的设备一起对联邦计算函数B进行协同计算,最终即可得到对数据表B与格式变换后的数据表A进行聚合计算后的结果,该结果可以是计算得到的新的数据表,该新的数据表可以在后续应用于相应的业务处理场景中。
本申请可以对同时嵌套有联邦计算函数和非联邦计算函数的联合语句进行拆分计算,即将嵌套的联邦计算函数和非联邦计算函数进行拆分,以提高对同时嵌套有联邦计算函数和非联邦计算函数的联合语句进行计算的效率,并降低对同时嵌套有联邦计算函数和非联邦计算函数的联合语句进行计算的难度,具体可以参见下述内容描述。
如图2所示,首先,服务器200可以对联合语句中非联邦计算函数与联邦计算函数进行拆分,如可以将非联邦计算函数4和非联邦计算函数5作为一个拆分部分,得到联合语句对应的拆分语句(如拆分语句3),还可以将联邦计算函数0(裁剪掉嵌套的非联邦计算函数4和非联邦计算函数5之后的)作为一个拆分部分,得到联合语句对应的另一个拆分语句(如拆分语句2),并可以将非联邦计算函数1、非联邦计算函数2和非联邦计算函数3(裁减掉嵌套的联邦计算函数0、非联邦计算函数4和非联邦计算函数5之后的)作为一个拆分部分,得到联合语句对应的另一个拆分语句(如拆分语句1)。
进而,服务器200可以先计算拆分语句3,得到拆分语句3的计算结果,再通过拆分语句3的计算结果计算拆分语句2,得到拆分语句2的计算结果,进而通过拆分语句2的计算结果计算拆分语句1的计算结果,即可得到联合语句的计算结果。其中,对同时嵌套有联邦计算函数和非联邦计算函数的联合语句进行计算的具体过程还可以参见下述图3和图11对应实施例中的相关描述。
之后,服务器200还可以将计算得到的联合语句的计算结果返回给终端设备1,使终端设备1为对象展示联合语句的计算结果。
本申请提出了一种对联邦计算函数和非联邦计算函数进行拆分计算的方式,实现了对同时嵌套有联邦计算函数和非联邦计算函数的联合语句的计算,丰富了联合语句的计算场景,降低了对同时嵌套有联邦计算函数和非联邦计算函数的联合语句的计算难度。
可选的,本申请可以应用在不同对象(如用户、机构或者企业等)之间需要联合对各自持有的数据表进行联邦计算的任意业务场景中。举个例子,若对象A持有上述数据表A,对象B持有上述数据表B,对象A需要对格式变换后的数据表A和对象B的数据表B进行聚合计算,则对象A可以发起包含嵌套的上述非联邦计算函数A和联邦计算函数B的联合语句,并请求对象B基于数据表B与对象A协同计算该联合语句,以计算得到对格式变换后的数据表A和数据表B进行聚合计算后的一个新的数据表,后续对象A就可以将得到的该新的数据表应用于其他相关的业务场景中。
如对象A可以是银行,对象B可以是征信机构,数据表A可以是银行用于存放各个用户的标识信息(如各个用户在银行的唯一编号等,银行可以通过各个用户的唯一编号标识各个用户)的数据表,数据表B可以是征信机构用于存放各个用户的信用信息的数据表。对数据表B和格式变换后的数据表A进行聚合计算后得到的新的数据表,可以是包含各个用户在银行的唯一编号以及各个用户在征信机构的信用信息的数据表,后续,银行可以通过该新的数据表实现为具有不同信用信息的各个用户提供不同的业务服务,如信用信息可以是信用等级,银行可以为信用等级越高的用户提供更高等级的业务服务,并为信用等级越低的用户提供更低等级的业务服务。
请参见图3,图3是本申请提供的一种联合语句的处理方法的流程示意图。如图3所示,该方法可以包括:
步骤S101,对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备。
可选的,本申请实施例中的执行主体可以是第一设备,该第一设备可以是由一个或者多个计算机设备构成,该计算机设备可以是终端设备或者服务器,还可以是其他设备,具体可以根据实际应用场景确定。该第一设备可以是发起用于对数据表进行计算的联合语句的设备。
第一设备可以获取到联合语句。该联合语句可以是对象(如相关技术人员)发起的。例如,若第一设备是终端设备,则该联合语句可以是对象直接在该第一设备中发起的;若第一设备是服务器,则该联合语句可以是对象在自己的对象终端上发起,进而对象终端再将该联合语句发送给第一设备的。或者,该联合语句还可以是预先设置的,第一设备可以在需要计算联合语句时在预先设置的存储位置(如其他设备上的存储位置)拿到该联合语句。
其中,联合语句的获取方式可以根据实际应用场景确定,对此不做限制。本申请中的联合语句可以是需要计算的同时嵌套有非联邦计算函数和联邦计算函数的任意语句,如下述内容描述。
联合语句可以包含第一函数和第二函数,第二函数嵌套在第一函数内,即第一函数内嵌套有第二函数,第一函数和第二函数中任一个函数是联邦计算函数,另一个函数是联邦计算函数,换句话说,第一函数和第二函数中有一个是联邦计算函数,有一个是非联邦计算函数,本申请可以用于对嵌套的联邦计算函数和非联邦计算函数进行计算。
上述联合语句、联合语句中的第一函数以及联合语句中的第二函数都属于SQL语句(结构化语句),该SQL语句用于对数据表进行操作。
具体的,若第一函数是联邦计算函数,则第二函数就是非联邦计算函数,此种情形下,就是联邦计算函数内嵌套非联邦计算函数;反之,若第一函数是非联邦计算函数,则第二函数就是联邦计算函数,此种情形下,就是非联邦计算函数内嵌套联邦计算函数。
其中,联邦计算函数是指需要进行计算的多张表(如两张表)来源于不同的数据源(如该多张表属于不同的设备)的函数,该联邦计算函数需要该多张表分别所属的设备进行多方协同计算。如该联邦计算函数可以是UDAF(聚合函数),该聚合函数可以用于对属于不同数据源的数据表进行聚合计算,该聚合计算可以是max(取最大值的计算)、min(取最小值的计算)、sum(求和的计算)、count(求个数的计算)、或者collect_list(将组中数据聚合成列表)等计算。
而非联邦计算函数是指需要进行计算的表来源于相同的数据源,该非联邦计算函数可以直接由需要计算的表所属的设备进行单方计算即可。如该非联邦计算函数可以是UDF(自定义函数,可以是一对一函数),可选的,该UDF可以用于根据定义的变换规则对数据表中一列的数据进行变换并生成对应的新列,如该定义的变换规则可以是concat(拼接字符串的规则),或者可以是regexp_replace(正则替换的规则)等。
更多的,第一设备可以对联合语句进行解析,得到第一表标识和第二表标识。该第一表标识用于标识第一数据表,即第一表标识是第一数据表的标识,该第一数据表属于第一设备,该第二表标识用于标识第二数据表,即第二表标识是第二数据表的标识,该第二数据表属于第二设备。联合语句用于对该第一数据表和第二数据表进行计算,第一数据表的数据源和第二数据表的数据源不同,第一数据表的数据源是第一设备,第二数据表的数据源是第二设备。
第二设备是与第一设备联合计算上述联合语句的设备,第二设备也可以是由一个或者多个计算机设备构成。第一设备可以将联合语句发送给第二设备,使得第二设备可以与第一设备协同计算该联合语句。
可选的,第一函数和第二函数中的联邦计算函数可以表示为目标函数,即若第一函数是联邦计算函数,则目标函数为第一函数,若第二函数是联邦计算函数,则目标函数为第二函数。
联合语句中还可以包含该目标函数的补充语句,该补充语句用于指示目标函数的计算规则,如该计算规则可以是如何对第一数据表和第二数据表进行联合计算的规则。该补充语句通常包含了目标函数需要调用的全部数据表的标识。
因此,第一设备可以对联合语句中的该补充语句进行语法解析,得到该补充语句的语法树,该语法树可以包含目标函数需要调用的全部数据表的表标识(简称标识,该标识可以是通过该语法树中对应的节点体现)。
第一设备可以从补充语句的语法树中提取出目标函数需要调用的第一数据表的表标识(记为上述第一表标识)以及目标函数需要调用的第二数据表的表标识(记为上述第二表标识)。
例如,上述联合语句可以是“Select (UDAF(UDF(…))),from a join b on a.id= b.id group by b.age”,其中,Select (UDAF(UDF(…)))即为函数调用的语句(可以称为函数调用语句),from后面的语句(即from a join b on a.id = b.id group by b.age)即为联邦计算函数UDAF的补充语句,该补充语句中可以包括表标识a(可以将表标识a所标识的数据表称之为是数据表a)和表标识b(可以将表标识b所标识的数据表称之为是数据表b),此处该补充语句表达的意思可以是将数据表a与数据表b根据键id(数据表a和数据表b中都有的标识字段)进行连接后,根据数据表b中的字段age(数据表b中的年龄字段)进行分组。数据表a可以如下述表1所示:
id(标识) | name(名字) |
1 | 名字1 |
2 | 名字2 |
表1
更多的,数据表b可以如下述表2所示:
id(标识) | age(年龄) |
1 | 年龄1 |
2 | 年龄2 |
表2
请参见图4a-图4c,图4a-图4c是本申请提供的一种确定表标识的场景示意图。联合语句可以是“Select UDAF(UDF),from a join b on a.id = b.id group by b.age”,该联合语句包含SelectClause(Select子句,即函数调用的子句)和补充语句from a join bon a.id = b.id group by b.age,该补充语句又具体包含fromClause(from子句,用于指示对数据表进行联邦计算的规则)和AggregationClause(Aggregation子句,即聚合子句,用于指示对数据表进行联邦计算的规则);该fromClause即为from a join b on a.id =b.id(表示将数据表a与数据表b根据键id进行连接),数据表a可以是第一数据表,数据表b可以是第二数据表;该AggregationClause即为group by b.age(表示根据数据表b中的字段age进行分组)。
上述fromClause的子树(即fromClause的语法树)可以表示为图4b中的子树(显示了join(连接)的关键词Relation(关系)),或者也可以表示为图4c中的子树(未显示join(连接)的关键词Relation(关系)),通过图4b或者图4c都可以获取到“tableName:a”(即表标识a,也就是表名a)和“tableName:b”(即表标识b,也就是表名b),fromClause的子树属于补充语句的子树(即补充语句的语法树)中的子树。
可选的,第一函数和第二函数包含于联合语句的函数调用语句中,该函数调用语句即为联合语句中用于进行函数调用的语句,如上述Select(用于函数调用的语法元素)后的语句,确定第一函数和第二函数的方式可以包括:
第一设备可以对函数调用语句进行语法解析,得到函数调用语句的语法树,可以理解为将函数调用语句表示为对应的语法树,该函数调用语句的语法树中可以包含函数调用语句中的函数的调用节点(可以称为函数节点,可以记为functionCall),一个函数可以对应一个函数节点,每个函数节点下都可以有相应的子节点(如当前函数的函数名的子节点或/和当前函数内嵌套的下一函数的函数节点等),函数调用语句调用的函数可以有非联邦计算函数,也可以有联邦计算函数。
可以将函数调用语句的语法树中联邦计算函数的函数节点称之为是联邦函数节点,可以将函数调用语句的语法树中非联邦计算函数的函数节点称之为是非联邦函数节点。
第一设备可以从函数调用语句的语法树中最后一个函数节点(即离根节点最远的函数节点,也就是最下方的函数节点)开始,向上(即向根节点的方向)依次回溯(可以理解为向上遍历)函数调用语句的语法树中的各个函数节点,若回溯到联邦函数节点,则可以停止回溯。
若在回溯到联邦函数节点之前,第一设备还回溯到至少一个非联邦计算函数,则第一设备可以根据在该联邦函数节点之前回溯到的至少一个非联邦函数节点所属的函数得到第二函数,此时第二函数就包含层层嵌套的该回溯到的至少一个非联邦函数节点所属的函数,并且,第一设备可以将回溯到的该联邦函数节点所属的函数作为第一函数。此时第一函数就是联邦计算函数,第二函数就是非联邦计算函数,可以理解的是,多层嵌套的非联邦计算函数(即层层嵌套的多个非联邦计算函数构成的函数)也属于非联邦计算函数,非联邦计算函数之间无需进行拆分。
若在回溯到联邦函数节点之前,第一设备未回溯到非联邦函数节点,则第一设备可以将回溯到的联邦函数节点所属的函数作为第二函数,并可以继续向上回溯,并根据在该联邦函数节点之后连续回溯到的各个非联邦函数节点所属的函数得到第一函数。此时第一函数就是非联邦计算函数,第二函数就是联邦计算函数。
需要进行说明的是,通常一个SQL语句(如联合语句)中只会存在一个联邦计算函数,因此,若第二函数是联邦计算函数,通常在该联邦计算函数的联邦函数节点之后再向上回溯,只会回溯到非联邦函数节点,此时第一函数就由在该联邦函数节点之后回溯到的各个非联邦函数节点所属的层层嵌套的各个非联邦函数构成。
请参见图5,图5是本申请提供的一种语法树的结构示意图。如图5所示的语法树是联合语句的函数调用语句的子树(即函数调用语句的语法树)。其中,expression表示表达式,functionCall表示函数调用的节点(即函数节点),一个函数节点下可以有一个functionName(函数名的节点,用于指示关联functionCall调用的函数的函数名),若一个函数节点所属的函数不是最内层的函数,则该函数节点下还可以具有所属的函数内嵌套的下一个函数的functionCall;若一个函数节点所属的函数是最内层的函数,则该函数节点下可以有一个functionName,还可以有一个Dereference(单一节点,用于指示最内层函数具体用到的数据表的表名以及在该数据表中用到的列的列名,可以理解为是用于指示需要调用的数据所在的位置)。
可见,函数调用语句的语法树中可以包含多个functionCall(即多个函数节点),可以从函数调用语句的语法树中最后一个functionCall(即Dereference关联的functionCall)开始向上回溯该语法树中的各个functionCall,并通过回溯到的各个functionCall分别关联的functionName来判断各个functionName是联邦函数节点还是非联邦函数节点,以此来确定上述第一函数和第二函数。
而若在某些特殊场景,联合语句的函数调用语句中包含2个或者2个以上的联邦计算函数,则也可以按照上述从下向上回溯各个函数节点同样的方式,按照联合语句中各个联邦计算函数的位置对非联邦计算函数和联邦计算函数进行拆分计算。
请参见图6,图6是本申请提供的一种语句拆分计算的场景示意图。如图6所示,联合语句可以包含非联邦计算函数1、联邦计算函数1、非联邦计算函数2、非联邦计算函数3、联邦计算函数2和非联邦计算函数4。非联邦计算函数1内嵌套了联邦计算函数1,联邦计算函数1内嵌套了非联邦计算函数2,非联邦计算函数2内嵌套了非联邦计算函数3,非联邦计算函数3内嵌套了联邦计算函数2,联邦计算函数2内嵌套了非联邦计算函数4。
可以从最内层嵌套的函数(即非联邦计算函数4)开始进行拆分,将非联邦计算函数4进行拆分,再将联邦计算函数2进行拆分,拆分后的非联邦计算函数4可以裁剪得到的第二函数,拆分后的联邦计算函数2可以作为裁剪掉第二函数后的第一函数,进而可以采用下述方法计算第一函数和第二函数。
接着,可以再整体拆分非联邦计算函数2和非联邦计算函数3,可以通过对拆分后的联邦计算函数2的计算结果计算对整体拆分的非联邦计算函数2和非联邦计算函数3的计算结果。
进而,可以再将联邦计算函数1进行拆分,拆分后的联邦计算函数1内就没有嵌套的其他函数,可以通过对整体拆分的非联邦计算函数2和非联邦计算函数3的计算结果计算对拆分后的联邦计算函数1的计算结果。
最后,还可以对非联邦计算函数1进行拆分,拆分后的非联邦计算函数1内也没有嵌套其他函数,可以通过对拆分后的联邦计算函数1的计算结果计算对拆分后的非联邦计算函数1的计算结果,拆分后的非联邦计算函数1的计算结果就可以是联合语句的计算结果。
通过基于联邦计算函数的位置进行的层层拆分,在保留了非联邦计算函数与联邦计算函数之间的嵌套结构的基础上,通过拆分后的各个部分(包括拆分的联邦计算函数的部分和拆分的非联邦计算函数的部分)进行层层计算,即可得到联合语句最终的计算结果。
步骤S102,对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则基于裁剪的第二函数生成联合语句的第一拆分语句。
可选的,第一设备可以对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表(如第二函数作为非联邦计算函数且需要对第一数据表中的数据进行变换,或者第二函数是联邦计算函数,则可以认为第二函数需要调用第一数据表),则表明第一设备需要对第二函数进行计算,第一设备可以根据裁剪得到的第二函数生成联合语句的第一拆分语句,该第一拆分语句用于第一设备对第二函数进行计算。
其中,需要进行说明的是,第二函数可以是联合语句中最内层的函数,最内层的函数会包含该函数调用的数据表中具体调用的数据(如具体调用的列),即通过最内层的函数可以知道具体调用了什么数据表,以及调用了该数据表中什么数据(如哪一列的数据)。
因此,若第二函数是非联邦计算函数UDF且需要对第一数据表中的数据进行变换,则生成第一拆分语句的过程可以包括:第一设备可以获取第二函数在第一数据表中需要调用的数据的数据标识,如需调用的是第一数据表中的某列数据,则该数据标识可以是需要调用的第一数据表中该列数据的字段标识,该字段标识用于指示第一数据表中需要调用的该列,如该字段标识可以是需要调用的该列的列名。
进而,第一设备可以根据裁剪得到的第二函数和该数据标识生成第一拆分语句,生成的第一拆分语句包含该第二函数和该数据标识,该数据标识用于指示第二函数在第一数据表中需要调用的数据是什么(如需要调用的列是什么)。
例如,生成的第一拆分语句可以是“select UDF(a.col) as X1”,其中,select…as…是函数调用固有的语法结构,此处a可以是第一数据表的表标识,col表示数据表a中需要调用的列(即列名),可以将a.col整体或者直接将该col作为第二函数在第一数据表中需要调用的数据的数据标识,该数据标识可以用于指示第二函数在第一数据表中需要调用的列的标识(如列名),as后的X1可以是用于指示第一拆分语句的计算结果的结果标识(可以称为第一结果标识)。
例如,第一拆分语句的计算结果也可以是一张表,因此,X1可以是该张表中第一拆分语句的计算结果所在的列的列名。
更多的,若第二函数是联邦计算函数UDAF,则第一设备可以通过联合语句中第二函数的补充语句以及第二函数生成第一拆分语句。
例如,第一拆分语句可以是“select UDAF(…) as X1,from…”,其中,from…的语句就为UDAF的补充语句,此处同样,X1为用于指示第一拆分语句的计算结果的结果标识。
其中,可以将用于指示第一拆分语句的计算结果的结果标识称为第一结果标识,该第一结果标识可以是在生成第一拆分语句时或者在生成第一拆分语句前生成的。
步骤S103,获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句。
可选的,由于第二函数是嵌套在第一函数内的,因此,第一函数的计算依赖于第二函数的计算结果,因此,第一设备可以获取用于指示第一拆分语句的计算结果的上述第一结果标识,并可以通过裁剪后的第一函数(即裁剪掉第二函数后的第一函数)和该第一结果标识生成联合语句的第二拆分语句,该第二拆分语句就用于第一设备对第一函数进行计算。
例如,若第一函数是非联邦计算函数UDF(该UDF内已经不包含嵌套的UDAF(即第二函数)了),则生成的第二拆分语句可以是“select UDF(X1)”,X1为第一结果标识。
再例如,若第一函数是联邦计算函数UDAF(该UDAF内已经不包含嵌套的UDF(即第二函数)了),且该联合语句中不包含嵌套有第一函数的函数,即第一函数没有更上层的函数,则生成的第二拆分语句可以是“select UDAF(X1),from…”,from…的语句为第一函数的补充语句,X1为第一结果标识。
若第一函数是联邦计算函数UDAF(该UDAF内已经不包含嵌套的UDF(即第二函数)了),且该联合语句中包含嵌套有第一函数的函数,即第一函数有更上层的函数,则生成的第二拆分语句可以是“select UDAF(X1) as X2,from…”,from…的语句为第一函数的补充语句,X1为第一结果标识,X2为用于指示第二拆分语句的计算结果的结果标识。
步骤S104,基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。
可选的,通过上述生成的第一拆分语句和第二拆分语句就实现了对联合语句中第一函数和第二函数之间的拆分,即实现了对联邦计算函数和非联邦计算函数之间的拆分,也就实现了对联合语句的拆分。
该第一拆分语句和第二拆分语句也属于SQL语句,进而,第一设备可以通过上述生成的第一拆分语句和第二拆分语句得到针对联合语句的计算结果,即第一设备可以通过对第一拆分语句和第二拆分语句的计算实现对联合语句的计算。
其中,可以将第一函数和第二函数中的联邦计算函数称之为是目标函数,可以将第一拆分语句和第二拆分语句中该目标函数对应的拆分语句(即通过该目标函数生成的拆分语句)称之为是目标拆分语句,第一拆分语句和第二拆分语句中除该目标拆分语句之外的那个拆分语句可以由第一设备单方计算,而目标拆分语句可以是由第二设备通过第二数据表与第一设备进行协同计算的。通过生成的第一拆分语句和第二拆分语句得到针对联合语句的计算结果的具体过程可以参见下述图7、图9和图11中的相关描述。
其中,第一设备与第二设备对目标拆分语句进行协同计算时可以采取隐私计算的方法进行计算,这可以保护双方在计算时所使用的数据(如使用到的双方的数据表中数据)的安全性和隐私性。
其中,隐私计算是一类技术方案,在处理、分析和计算数据的过程中能保持协同计算的多方之间的数据不透明、不泄露、无法被计算方法以及其他非授权方获取。
更多的,若第二函数是非联邦计算函数,第一函数是联邦计算函数,第二函数不需要调用第一数据表,第二函数需要调用第二数据表,则第一设备无需对第二函数进行计算,第一设备也就无需通过裁剪的第二函数生成上述第一拆分语句。此种情形下,第二设备也可以从第一函数中裁剪出第二函数,并可以根据裁剪得到的第二函数生成联合语句对应的拆分语句,第二设备生成的针对第二函数的该拆分语句可以用于第二设备对第二函数进行计算,第二设备生成针对第二函数的拆分语句的原理与上述第一设备生成第一拆分语句的原理相同,只是第二设备生成的针对第二函数的拆分语句需要调用的是第二数据表中的数据(如需要调用第二数据表中的某列),第二设备可以采用第二数据表对生成的针对第二函数的拆分语句进行计算,得到针对第二函数的计算结果,第二设备针对第二函数的该计算结果可以用于后续第二设备与第一设备协同计算第一函数。
如第二设备可以获取到用于指示自己针对第二函数的计算结果的结果标识,进而,第二设备可以通过该结果标识以及裁减掉第二函数的第一函数生成联合语句对应的拆分语句,第二设备生成的针对第一函数的拆分语句用于第二设备对第一函数进行计算,第二设备生成针对第一函数的该拆分语句的原理与上述第一设备生成第二拆分语句的原理相同,只是第二设备生成的针对第一函数的拆分语句需要调用的是第二设备针对第二函数的计算结果。
并且,第一设备也可以直接通过裁剪掉第二函数的第一函数(引用可以为空)生成和第一函数的补充语句生成联合语句对应的拆分语句(可以称为第七拆分语句),第一设备可以与第二设备协同计算该第七拆分语句,第二设备可以与第一设备协同计算生成的针对第一函数的拆分语句,可以理解的是,第一设备和第二设备协同计算第七拆分语句的过程1,与第一设备和第二设备协同计算第二设备生成的针对第一函数的拆分语句的过程2,是同一个过程(即过程1和过程2是同一个过程),也就是说,第一设备和第二设备通过协同计算第七拆分语句和第二设备生成的针对第一函数的拆分语句,就可以实现第一设备与第二设备对第一函数的协同计算,协同计算第七拆分语句的计算结果与协同计算第二设备生成的针对第一函数的拆分语句的计算结果是同一个计算结果,都为针对第一函数的计算结果。此处,第七拆分语句的结构与第二设备生成的针对第一函数的拆分语句的结构是相同的,只是第七拆分语句可以用于调用属于第一设备的相关数据,第二设备生成的针对第一函数的拆分语句可以用于调用属于第二设备的相关数据。
本申请中第一设备可以对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则第一设备可以基于裁剪的第二函数生成联合语句的第一拆分语句;第一设备还可以获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;以及,基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。由此可见,本申请提出的方法当用于对数据表进行计算的联合语句同时具有嵌套的第一函数和第二函数,且第一函数和第二函数中一个是联邦计算函数一个是非联邦计算函数时,可以基于第一函数和第二函数之间的嵌套结构对联合语句进行拆分(可以理解为对函数进行拆分),拆分得到单方计算的语句(如非联邦计算函数对应的拆分语句)以及需要协同计算的语句(如联邦计算函数对应的拆分语句),而后就可以通过计算拆分得到的语句确定针对联合语句的计算结果,以此实现了对嵌套有联邦计算函数和非联邦计算函数的联合语句的计算,丰富了针对联合语句的计算场景,并降低了对该联合语句进行计算的难度。
请参见图7,图7是本申请提供的一种语句计算方法的流程示意图。本申请实施例中的执行主体也可以为上述第一设备,本申请实施例描述了在第一函数是联邦计算函数,第二函数是非联邦计算函数的情况下,通过第一拆分语句和第二拆分语句确定联合语句的计算结果的过程。如图7所示,该方法可以包括:
步骤S201,基于第一数据表计算第一拆分语句,得到第一拆分语句的计算结果。
具体的,若第一函数是联邦计算函数,第二函数是非联邦计算函数,则表明目标拆分语句是第二拆分语句(即第一函数对应的拆分语句),此种情形下,第二拆分语句需要由第一设备和第二设备协同计算,第一拆分语句可以由第一设备单方计算。
第一设备可以通过第一数据表计算第一拆分语句,得到第一拆分语句的计算结果,用于指示第一拆分语句的计算结果的结果标识可以是上述第一结果标识。
例如,若第一函数用于对第一数据表中某列数据进行变换(如数据格式变换等任意变换),则第一设备通过第一数据表计算第一拆分语句可以是对第一数据表中该列数据进行变换处理,进而得到的第一拆分语句的计算结果就可以是对第一数据表中该列数据进行变换后得到的新列。
步骤S202,基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果。
具体的,由于第二拆分语句中组装了用于指示第一拆分语句的计算结果的第一结果标识,因此,第一设备可以通过第二拆分语句中组装的该第一结果标识获取到第一拆分语句的计算结果,并可以调用获取到的第一拆分语句的计算结果。
步骤S203,基于调用的第一拆分语句的计算结果与第二设备协同计算第二拆分语句,得到第二拆分语句的计算结果。
具体的,第一设备可以通过上述调用的第一拆分语句的计算结果与第二设备协同计算第二拆分语句,第二设备可以通过持有的第二数据表与第一设备协同计算该第二拆分语句,通过第一设备与第二设备协同计算第二拆分语句,即可得到第二拆分语句的计算结果,由于第一设备是发起方(即联合语句的发起者),因此,该第二拆分语句的计算结果可以由第一设备进行记录和存储。
例如,若第二函数是用于对第一数据表中的A列数据进行变换,第二函数无需调用第二数据表,第一函数用于对变换该A列数据后得到的新列与第二数据表中的B列数据进行聚合(如数据拼接等任意聚合计算),对A列数据变换后得到的新列只由第一设备可以调用,该B列数据只由第二设备可以调用,第一设备与第二设备协同计算第二拆分语句就可以是第一设备与第二设备协同对变换A列数据后得到的新列与该B列数据进行聚合处理,得到的针对第二拆分语句的计算结果就可以是对变换A列数据后得到的新列与该B列数据进行聚合处理后得到的新列。
更多的,若第二函数也需要调用第二数据表,如第二函数也用于对第二数据表中的某列数据进行变换,则第二设备同样可以以第一设备生成第二函数对应的第一拆分语句同样的方式(在第二函数属于非联邦计算函数的情形下),生成第二函数对应的拆分语句(属于第二设备那方生成的联合语句的拆分语句),可以将此种情况下第二设备生成的第二函数对应的拆分语句称之为第三拆分语句。第一拆分语句的结构与第三拆分语句的结构相同,只是第一拆分语句用于调用第一数据表,对第一数据表中的列进行变换,而第三拆分语句用于调用第二数据表,对第二数据表中的列进行变换。
同样,第二设备也可以通过第二数据表对第三拆分语句进行计算,得到第三拆分语句的计算结果(如该计算结果可以是对第二数据表中某列数据进行变换后得到的新列),并可以获取用于指示第三拆分语句的计算结果的结果标识,可以将用于指示第三拆分语句的计算结果的结果标识称之为是第二结果标识,该第二结果标识可以是预先设置的也可以是实时生成的,对此不做限制。
第二设备还可以通过裁剪掉第二函数后的第一函数以及该第二结果标识生成第一函数对应的拆分语句,可以将此种情况下第二设备生成的第一函数对应的拆分语句称之为是第四拆分语句,第二设备生成第四拆分语句的原理与第一设备生成第二拆分语句的原理(在第一函数属于联邦计算函数的情形下)相同,第二拆分语句的结构与第四拆分语句的结构相同,只是第二拆分语句用于第一设备调用第一拆分语句的计算结果,第四拆分语句用于第二设备调用第三拆分语句的计算结果。
进而,第二设备就可以通过第三拆分语句的计算结果与第一设备协同计算第四拆分语句,可以理解的是,第一设备和第二设备协同计算第二拆分语句的过程,与第一设备和第二设备协同计算第四拆分语句的过程是同一个过程,该两个过程的计算结果也是同一个,都是针对第一函数的计算结果,即第一设备和第二设备通过协同计算第二拆分语句和第四拆分语句就实现了针对第一函数的协同计算。
例如,第一拆分语句的计算结果可以是第一设备对第一数据表中A列数据进行变换后的新列1,第三拆分语句的计算结果可以是第二设备对第二数据表中B列数据进行变换后的新列2,对第二拆分语句和第四拆分语句进行协同计算得到的针对第一函数的计算结果(在第一设备这边可以理解为就是第二拆分语句的计算结果,在第二设备可以理解为是第四拆分语句的计算结果)就可以是对该新列1和该新列2进行聚合(如对两列中的数据分别进行拼接)后得到的新列3。
其中,第一设备还可以建立第一数据表对应的映射表1以及第二数据表对应的映射表2,该映射表1可以用于存放第二函数需要调用的第一数据表中的列的列名(通过第一数据表的表名映射到该列名),该映射表2可以用于存放第二函数需要调用的第二数据表中的列的列名(通过第二数据表的表名映射到该列名),后续第一设备可以通过映射表1提取得到第二函数用到的第一数据表的表名以及列名以生成第二函数对应的拆分语句(如第一拆分语句)。
需要进行说明的是,第一设备对联合语句的处理手段与第二设备对联合语句的处理手段是相同的,第一设备和第二设备都可以通过相同的语句处理程序对联合语句进行处理,只是第一设备只需生成自己需要计算的拆分语句,第二设备也只需生成自己需要计算的拆分语句。
其中,第一设备与第二设备协同计算第二拆分语句时可以是采取隐私计算的方法进行计算的,该过程使用的隐私计算的算法可以根据实际应用场景确定,对此不做限制。
步骤S204,将第二拆分语句的计算结果确定为联合语句的计算结果。
具体的,若联合语句中不包含更多嵌套了第一函数的函数(即第一函数属于最上层的函数),则可以将第二拆分语句的计算结果作为联合语句的计算结果。
请参见图8,图8是本申请提供的一种计算拆分语句的场景示意图。如图8所示,若联合语句就包含第一函数和第二函数,第一函数是联邦计算函数,第二函数是非联邦计算函数,则第一拆分语句只需第一设备单方计算,第二拆分语句需要第一设备和第二设备协同计算。
第一设备可以通过对第一拆分语句的计算结果与第二设备协同计算第二拆分语句,得到对第二拆分语句的计算结果。进而,就可以将第二拆分语句的计算结果作为联合语句的计算结果。
若联合语句中还包含更多的嵌套了第一函数的函数(即第一函数不属于最上层的函数),则可以按照上述方法,继续通过第二拆分语句的计算结果计算第一函数的上层函数(如嵌套了第一函数的函数)的计算结果,直到将联合语句中所有函数都层层计算完毕,即可得到联合语句最终的计算结果。该过程还可以参见下述图11对应实施例中的相关描述,图11对应实施例描述的联合语句中包含嵌套有第一函数的第三函数。
采用本申请提供的方法,可以对联邦计算函数和非联邦计算函数之间的嵌套进行拆分后再计算,并且单方计算的拆分语句可以由单方计算,协同计算的拆分语句可以由双方进行联邦隐私计算,提升了在对联合语句进行计算的过程中的数据隐私性。
请参见图9,图9是本申请提供的另一种语句计算方法的流程示意图。本申请实施例中的执行主体也可以为上述第一设备,本申请实施例描述了在第一函数是非联邦计算函数,第二函数是联邦计算函数的情况下,通过第一拆分语句和第二拆分语句确定联合语句的计算结果的过程。如图9所示,该方法可以包括:
步骤S301,基于第一数据表与第二设备协同计算第一拆分语句,得到第一拆分语句的计算结果。
具体的,若第一函数是非联邦计算函数,第二函数是联邦计算函数,则表明目标拆分语句是第一拆分语句(即第二函数对应的拆分语句),此种情形下,第一拆分语句需要由第一设备和第二设备协同计算,第二拆分语句可以由第一设备单方计算。
可以理解的是,通常一个SQL语句(如联合语句)只会存在一个联邦计算函数,而非联邦计算函数的计算无需进行拆分,因此,若第二函数是联邦计算函数,则第一函数通常是联合语句中最上层的函数,即此种情形下联合语句中通常没有嵌套有第一函数的函数,而最上层的函数若是非联邦计算函数,通常也是由联合语句的发起者来执行的(如对聚合后的数据进行变换),因此此种情形下,第一函数相关的处理和计算过程(如对第二拆分语句的计算过程)可以由第一设备进行计算,而第二设备无需对第一函数进行相应处理和计算。
第一设备可以通过第一数据表与第二设备协同计算第一拆分语句,第二设备可以通过第二数据表与第一设备协同计算第一拆分语句,第一设备和第二设备协同计算第一拆分语句后,就可以得到第一拆分语句的计算结果,第一拆分语句的计算结果可以保存在联合语句的发起方处(即第一设备),如下述内容描述。
第二设备具有第一设备发送的联合语句,第二设备可以通过从第一函数中裁剪得到的第二函数生成联合语句对应的拆分语句,可以将此种情形下第二设备生成的第二函数对应的拆分语句称之为是第五拆分语句。第二设备生成第五拆分语句的原理与第一设备生成第一拆分语句的原理(在第二函数属于联邦计算函数的情形下)相同,第一拆分语句的结构与第五拆分语句的结构相同。
进而,第二设备可以通过第二数据表与第一设备协同计算该第五拆分语句,第二设备和第一设备协同计算第五拆分语句的过程,与第一设备和第二设备协同计算第一拆分语句的过程,是同一个过程,该两个过程的计算结果也是同一个,都是针对第二函数的计算结果(在第一设备处可以理解为是第一拆分语句的计算结果,在第二设备处可以理解为是第五拆分语句的计算结果),即第一设备和第二设备此处通过协同计算第一拆分语句和第五拆分语句就实现了针对第二函数的协同计算。
其中,第一设备与第二设备协同计算第一拆分语句时可以是采取隐私计算的方法进行计算的,该过程使用的隐私计算的算法可以根据实际应用场景确定,对此不做限制,在计算过程中,第一设备和第二设备各自的数据表对对方不可见,即双方的数据表相互是保密的。
例如,第二函数可以用于对第一数据表中的A列数据与第二数据表中的B列数据进行聚合,则此种情形下针对第二函数的计算结果(即第一拆分语句的计算结果)就可以是对该A列数据和该B列数据进行聚合后得到的新列。
步骤S302,基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果。
具体的,由于第二拆分语句中组装了用于指示第一拆分语句的计算结果的第一结果标识,因此,第一设备可以通过第二拆分语句中组装的该第一结果标识获取到第一拆分语句的计算结果,并可以调用获取到的第一拆分语句的计算结果。
步骤S303,基于调用的第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果。
具体的,第一设备可以通过上述调用的第一拆分语句的计算结果单方计算第二拆分语句,得到第二拆分语句的计算结果。
例如,第一函数可以用于对针对第二函数的计算结果进行数据变换(如正则变换或者数据格式变换等),则第一设备计算第二拆分语句就可以是对第一拆分语句的计算结果(可以通过数据表的形式进行存储,属于数据表中的一列数据)进行数据变换,得到变换后的数据(可以是变换后的新列),第二拆分语句的计算结果就可以是该变换后的数据。
步骤S304,将第二拆分语句的计算结果确定为联合语句的计算结果。
具体的,由于此种情形下,通常第一函数上层没有更多的函数,因此,第二拆分语句的计算结果就是联合语句最终的计算结果,即可以将第二拆分语句的计算结果作为联合语句的计算结果。
请参见图10,图10是本申请提供的另一种计算拆分语句的场景示意图。如图10所示,若联合语句就包含第一函数和第二函数,第一函数是非联邦计算函数,第二函数是联邦计算函数,则第二拆分语句只需第一设备单方计算,第一拆分语句需要第一设备和第二设备协同计算。
第一设备可以与第二设备协同计算第一拆分语句,得到对第一拆分语句的计算结果,进而可以通过对第一拆分语句的计算结果独自计算第二拆分语句,得到第二拆分语句的计算结果,第一设备可以将第二拆分语句的计算结果作为联合语句的计算结果。
而若在某些特殊的场景下,第一函数上层存在其他函数(如嵌套有第一函数的函数),则可以按照上述的方法,基于联邦计算函数的位置,从内到外依次对函数进行拆分后再计算,直到对联合语句中所有函数计算完毕,即可得到联合语句最后的计算结果,该计算结果可以是针对联合语句中最上层的函数的计算结果。
请参见图11,图11是本申请提供的又一种语句计算方法的流程示意图。本申请实施例中的执行主体也可以为上述第一设备,本申请实施例描述了在第一函数是联邦计算函数,第二函数是非联邦计算函数,联合语句包含嵌套有第一函数的第三函数,第三函数是非联邦计算函数的情况下,通过第一拆分语句和第二拆分语句确定联合语句的计算结果的过程。如图11所示,该方法可以包括:
步骤S401,对第一拆分语句进行计算,得到第一拆分语句的计算结果,并基于第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果。
具体的,若第一函数是联邦计算函数,第二函数是非联邦计算函数,联合语句还包含嵌套了第一函数的第三函数,即第一函数嵌套在第三函数内,第三函数是非联邦计算函数,则还需要将第三函数进行拆分计算,如下述内容描述。
第一设备可以先对第一拆分语句进行计算,得到第一拆分语句的计算结果,第一设备还可以通过第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果。其中,计算第一拆分语句和第二拆分语句的过程可以参见上述图3和图6对应实施例中的相关描述,此处不再进行赘述。
步骤S402,获取用于指示第二拆分语句的计算结果的第三结果标识。
具体的,第一设备可以获取用于指示第二拆分语句的计算结果的结果标识,可以将用于指示第二拆分语句的计算结果的结果标识称之为是第三结果标识,第二拆分语句的计算结果可以是数据表的一列数据,第三结果标识可以是给该列数据取的列名。
请参见图12,图12是本申请提供的一种函数拆分的场景示意图。图12所示的子树是函数调用语句的语法树,UDFfunction和UDAFfunction都属于functionCall(即函数节点),UDFfunction是调用非联邦计算函数UDF的函数节点,UDAFfunction是调用联邦计算函数UDAF的函数节点。
本申请中联合语句的函数调用语句中可以包含嵌套的3个函数,该3个函数依次包括UDF1、UDAF和UDF2,UDF1内嵌套了UDAF,UDAF内嵌套了UDF2,此处,UDF1可以为第三函数,UDAF可以为第一函数,UDF2可以为第二函数。UDFfunction1可以是UDF1的函数节点,UDFfunction2可以是UDF2的函数节点,UDAFfunction是UDAF的函数节点。
其中,可以将函数调用语句的语法树称之为是目标语法树。
首先,可以将第二函数的子树(包括UDFfunction2、UDFfunction2下连接的functionName和UDFfunction2下连接的Dereference)从目标语法树中进行裁剪,裁剪得到的第二函数的子树可以用于生成第二函数对应的拆分语句(如上述第一拆分语句),反之,生成的第二函数的拆分语句的语法树就为该裁剪得到的第二函数。
接着,可以在裁剪掉第二函数的子树的目标语法树中为UDAFfunction补充一个Dereference1,该Dereference1可以是用于指示针对UDF2的计算结果的上述第一结果标识的单一节点(用于指示调用的数据的节点),如第一结果标识可以包括为UDF2的计算结果所在的数据表命名的表名以及为UDF2的计算结果在该数据表中所在列命名的列名。
上述UDAFfunction、为UDAFfunction补充的Dereference1以及UDAFfunction下连接的functionName就构成了变形后的第一函数的子树,该变形后的第一函数的子树就是裁剪掉第二函数后的第一函数的子树,因此,通过该变形后的第一函数的子树就能生成裁剪掉第二函数后的第一函数对应的拆分语句(如上述第二拆分语句),反之,裁剪掉嵌套的第二函数后的第一函数对应的拆分语句的语法树就可以为该变形后的第一函数的子树。
进而,可以在裁剪掉第二函数的子树的目标语法树中继续裁减掉变形后的第一函数的子树,可以理解为将UDF1内嵌套的全部函数(包含第一函数和第二函数)都裁剪掉了。同理,此时也可以在裁剪掉变形后的第一函数的子树的目标语法树中为UDFfunction1补充一个Dereference2,该Dereference2可以是用于指示针对UDAF的计算结果的上述第三结果标识的单一节点(用于指示调用的数据的节点),如第三结果标识可以包括为UDAF的计算结果所在的数据表命名的表名以及为UDAF的计算结果在该数据表中所在列命名的列名。
上述UDFfunction1、为UDFfunction1补充的Dereference2以及UDFfunction1下连接的functionName就构成了变形后的第三函数的子树,该变形后的第三函数的子树就是裁剪掉第一函数后的第三函数的子树,因此,通过该变形后的第三函数的子树就能生成裁剪掉第一函数后的第三函数对应的拆分语句(如上述第六拆分语句),反之,裁剪掉嵌套的第一函数后的第三函数对应的拆分语句的语法树就可以为该变形后的第三函数的子树。
此处,上述第一拆分语句可以表示为“select UDF(a.col) as X1”,X1是第一拆分语句的计算结果的第一结果标识,第二拆分语句可以表示为“select UDAF(X1) as X2”,X2可以是第二拆分语句的计算结果的第三结果标识,第三拆分语句可以表示为“select UDF(X2)”。
通过上述过程,在裁剪掉一个函数内嵌套的函数时,可以通过为该函数补充裁掉的函数对应的Dereference节点,将其嵌套关系(即嵌套结构)进行关联,进而可以表现为通过针对该个函数内嵌套的函数的计算结果生成针对该个函数对应的拆分语句,后续针对该个函数的计算结果就可以基于针对该个函数内嵌套的函数的计算结果进行计算得到。
本申请中的信息提取(如函数提取)采取基于编译原理的自底向上规约方法,一次回溯即可得到三层整体性结构(如依次包括第三函数的结构、第一函数的结构以及第二函数的结构),加速了信息提取流程。并且,这种向上规约的方法可以使得信息提取仅关注联邦计算函数的位置,而不需要关注其他函数(如非联邦计算函数)的组合方式,同时得到较为完整的子结构(如第二函数的子树结构、变形后的第一函数的子树结构以及变形后的第三函数的子树结构),且多层子结构之间表现出清晰的上下依赖关系。
步骤S403,裁剪第三函数中的第一函数,并基于裁剪后的第三函数和第三结果标识生成联合语句的第六拆分语句。
具体的,第一设备可以将第三函数中的第一函数裁减掉,并可以通过裁剪后的第三函数以及第三结果标识生成联合语句对应的拆分语句,可以将第一设备生成的第三函数对应的拆分语句称之为是第六拆分语句。第一设备生成第六拆分语句的原理可以与生成第二拆分语句的原理相同。
步骤S404,基于第六拆分语句确定联合语句的计算结果。
具体的,第一设备可以通过第六拆分语句中组装的第三结果标识调用第二拆分语句的计算结果。第一设备可以通过调用的第二拆分语句的计算结果计算第六拆分语句,即可得到第六拆分语句的计算结果。
例如,第三函数可以用于对针对第一函数的计算结果(即第二拆分语句的计算结果)进行数据变换,则第一设备计算第六拆分语句就可以是对第二拆分语句的计算结果(可以通过数据表的形式进行存储,属于数据表中的一列数据)进行数据变换,得到变换后的数据(可以是变换后的新列),第六拆分语句的计算结果就可以是该变换后的数据。
上述第三函数通常是联合语句中最上层的函数,因此,通常只需联合语句得到发起者(即第一设备)对该第三函数进行相应处理和计算,第二设备无需对该第三函数进行处理和计算,第六拆分语句的计算结果通常就是联合语句最终的计算结果。
若在某些特殊的情况下,联合语句中第三函数之上还包含更多嵌套了第三函数的函数,则可以按照上述所描述的方式,对联邦计算函数和非联邦计算函数进行拆分后再计算,直到对联合语句中全部函数计算完成,即可得到联合语句最终的计算结果。
可选的,本申请重点关注联邦计算函数在联合语句中的位置,第二函数可以是由依次嵌套的N个非联邦计算函数构成,第三函数也可以是由依次嵌套的M个非联邦计算函数构成,此时第二函数和第三函数之间包含一个联邦计算函数(即第一函数),N和M均为正整数,N和M的具体取值可以根据实际应用场景确定,对此不做限制。
例如,若联合语句包含相互嵌套的UDF1(UDF2(UDF3(UDAF(UDF4(UDF5(_)))))),则第一函数可以是此处的联邦计算函数UDAF,第二函数可以包括依次嵌套的2个非联邦计算函数UDF4(UDF5(_)),第三函数可以包括依次嵌套的3个非联邦计算函数UDF1(UDF2(UDF3(_))),此处第三函数中的UDF3内已经不包含UDAF(UDF4(UDF5(_)))了,该部分函数已经被裁剪掉了。
请参见图13,图13是本申请提供的一种语句计算的场景示意图。如图13所示,发起方是第一设备,协助方是第二设备,SQL1是第一设备基于第二函数生成的拆分语句(如上述第一拆分语句),SQL2是第二设备基于第二函数生成的拆分语句(如上述第三拆分语句),SQL3(1)是第一设备基于第一函数生成的拆分语句(如上述第二拆分语句),SQL3(2)是第二设备基于第一函数生成的拆分语句(如上述第四拆分语句),SQL4是第一设备基于第三函数生成的拆分语句(如上述第六拆分语句)。其中,SQL3(1)和SQL3(2)可以理解为是属于同一个需要联邦计算的语句。
SQL1可以由第一设备单方计算,SQL2可以由第二设备单方计算,第一设备可以通过SQL1的计算结果与第二设备协同计算SQL3(1),第二设备可以通过SQL2的计算结果与第二设备协同计算SQL3(2),第一设备和第二设备协同计算SQL3(1)的过程,与第一设备和第二设备协同计算SQL3(2)的过程,是同一个过程。
通过与第二设备协同计算SQL3(1),第一设备可以获取到SQL3(1)的计算结果,进而,第一设备可以通过SQL3(1)的计算结果继续单方计算SQL4的计算结果,得到的SQL4的计算结果也就是联合语句的计算结果。
其中,可以专门建立一个空列表“Array()”来存放聚合函数结构(如上述变形后的第一函数的子树)。
采用本申请提供的方法,重点关注联邦计算函数在联合语句中的位置,而不关注其他函数(如非联邦计算函数)之间的组合方式,对联邦计算函数和非联邦计算函数进行拆分,无需对非联邦计算函数和非联邦计算函数进行拆分,实现了对同时嵌套有联邦计算函数和非联邦计算函数的联合语句的计算。
通过将联合语句拆分为需要协同计算的拆分语句(如目标拆分语句)以及可单方计算的拆分语句,使得可单方计算的拆分语句只需由单方自动计算,单方计算的过程和使用到的数据不会暴露给对方(即另一方不可见),也提升了单方计算的数据隐私性和安全性;若多方(如第一设备和第二设备)都具有各自需要单方计算的拆分语句,则各方都可以分别对各自需要单方计算的拆分语句进行独立计算,这也可以实现对各方需要单方计算的拆分语句的并行计算,也可以提升对联合语句的计算效率;而需要协同计算的拆分语句再多方(如第一设备和第二设备)一起进行联邦隐私计算,也可以提升双方数据的隐私性和安全性。
请参见图14,图14是本申请提供的一种联合语句的处理装置的结构示意图。该联合语句的处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该联合语句的处理装置为一个应用软件,该联合语句的处理装置可以用于执行本申请实施例提供的方法中的相应步骤。该联合语句的处理装置可以应用于第一设备,如图14所示,该联合语句的处理装置1可以包括:解析模块11、第一生成模块12、第二生成模块13和确定模块14。
解析模块11,用于对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;
第一生成模块12,用于对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则基于裁剪的第二函数生成联合语句的第一拆分语句;
第二生成模块13,用于获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;
确定模块14,用于基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。
可选的,若第一函数是联邦计算函数,第二函数是非联邦计算函数,则确定模块14基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
基于第一数据表计算第一拆分语句,得到第一拆分语句的计算结果;
基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果;
基于调用的第一拆分语句的计算结果与第二设备协同计算第二拆分语句,得到第二拆分语句的计算结果;
将第二拆分语句的计算结果确定为联合语句的计算结果。
可选的,第一函数和第二函数包含于联合语句中的函数调用语句中;上述装置1还用于:
对函数调用语句进行语法解析,得到函数调用语句的语法树;函数调用语句的语法树中包含函数调用语句中的函数的函数节点;
从函数调用语句的语法树中最后一个函数节点开始,向上依次回溯函数调用语句的语法树中的函数节点;
若回溯到联邦函数节点,则停止回溯,并将回溯到的联邦函数节点所属的函数确定为第一函数,以及根据在联邦函数节点之前回溯到的非联邦函数节点所属的函数确定第二函数;
其中,联邦函数节点是指所属的函数是联邦计算函数的函数节点,非联邦函数节点是指所属的函数是非联邦计算函数的函数节点。
可选的,上述装置1还用于:
将联合语句发送给第二设备,使第二设备基于联合语句生成第三拆分语句和用于指示第三拆分语句的计算结果的第二结果标识,并基于裁剪掉第二函数的第一函数和第二结果标识生成第四拆分语句;第三拆分语句是在第二函数需要调用第二数据表时由第二设备基于第二函数生成的;
其中,第二设备用于基于第二数据表计算第三拆分语句,得到第三拆分语句的计算结果,并用于基于第三拆分语句的计算结果与第一设备协同计算第四拆分语句;
第一设备和第二设备协同计算第二拆分语句的过程与第一设备和第二设备协同计算第四拆分语句的过程是同一个过程。
可选的,若第一函数是非联邦计算函数,第二函数是联邦计算函数,则确定模块14基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
基于第一数据表与第二设备协同计算第一拆分语句,得到第一拆分语句的计算结果;
基于第二拆分语句中组装的第一结果标识调用第一拆分语句的计算结果;
基于调用的第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果;
将第二拆分语句的计算结果确定为联合语句的计算结果。
可选的,上述装置1还用于:
将联合语句发送给第二设备,使第二设备基于第二函数生成第五拆分语句,并基于第二数据表与第一设备协同计算第五拆分语句;
第一设备和第二设备协同计算第二拆分语句的过程与第一设备和第二设备协同计算第五拆分语句的过程是同一个过程。
可选的,若联合语句还包含第三函数,第一函数嵌套在第三函数内,第三函数是非联邦计算函数,第一函数是联邦计算函数,则确定模块14基于第一拆分语句和第二拆分语句确定联合语句的计算结果的方式,包括:
对第一拆分语句进行计算,得到第一拆分语句的计算结果,并基于第一拆分语句的计算结果计算第二拆分语句,得到第二拆分语句的计算结果;
获取用于指示第二拆分语句的计算结果的第三结果标识;
裁剪第三函数中的第一函数,并基于裁剪后的第三函数和第三结果标识生成联合语句的第六拆分语句;
基于第六拆分语句确定联合语句的计算结果。
可选的,确定模块14基于第六拆分语句确定联合语句的计算结果的方式,包括:
基于第六拆分语句中组装的第三结果标识调用第二拆分语句的计算结果;
基于调用的第二拆分语句的计算结果计算第六拆分语句,得到第六拆分语句的计算结果;
将第六拆分语句的计算结果确定为联合语句的计算结果。
可选的,第二函数是由依次嵌套的N个非联邦计算函数构成,第三函数是由依次嵌套的M个非联邦计算函数构成,N和M均为正整数。
可选的,第一函数和第二函数中的联邦计算函数表示为目标函数,联合语句包含目标函数的补充语句,补充语句用于指示目标函数的计算规则;
解析模块11对联合语句进行语法解析,得到第一表标识和第二表标识的方式,包括:
对联合语句中的补充语句进行语法解析,得到补充语句的语法树;补充语句的语法树包含目标函数需调用的数据表的表标识;
从补充语句的语法树中提取出目标函数需调用的第一数据表的第一表标识、及目标函数需调用的第二数据表的第二表标识。
可选的,第一生成模块12基于裁剪的第二函数生成联合语句的第一拆分语句的方式,包括:
获取第二函数在第一数据表中需调用的数据的数据标识;
基于裁剪的第二函数和数据标识生成第一拆分语句。
可选的,若第二函数是非联邦计算函数,第二函数不需调用第一数据表,第二函数需要调用第二数据表,则上述装置1还用于:
基于裁剪后的第一函数生成联合语句的第七拆分语句;
基于第一数据表与第二设备协同计算第七拆分语句,得到第七拆分语句的计算结果;第二设备用于基于第二数据表计算针对第二函数的计算结果,并用于基于针对第二函数的计算结果与第一设备协同计算第七拆分语句;
将第七拆分语句的计算结果确定为联合语句的计算结果。
根据本申请的一个实施例,图3所示的联合语句的处理方法所涉及的步骤可由图14所示的联合语句的处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图14中的解析模块11来执行,图3中所示的步骤S102可由图14中的第一生成模块12来执行;图3中所示的步骤S103可由图14中的第二生成模块13来执行,图3中所示的步骤S104可由图14中的确定模块14来执行。
本申请中联合语句的处理装置可以对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则联合语句的处理装置可以基于裁剪的第二函数生成联合语句的第一拆分语句;联合语句的处理装置还可以获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;以及,基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。由此可见,本申请提出的装置当用于对数据表进行计算的联合语句同时具有嵌套的第一函数和第二函数,且第一函数和第二函数中一个是联邦计算函数一个是非联邦计算函数时,可以基于第一函数和第二函数之间的嵌套结构对联合语句进行拆分(可以理解为对函数进行拆分),拆分得到单方计算的语句(如非联邦计算函数对应的拆分语句)以及需要协同计算的语句(如联邦计算函数对应的拆分语句),而后就可以通过计算拆分得到的语句确定针对联合语句的计算结果,以此实现了对嵌套有联邦计算函数和非联邦计算函数的联合语句的计算,丰富了针对联合语句的计算场景,并降低了对该联合语句进行计算的难度。
根据本申请的一个实施例,图14所示的联合语句的处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,联合语句的处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图14中所示的联合语句的处理装置1,以及来实现本申请实施例的联合语句的处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图15,图15是本申请提供的一种计算机设备的结构示意图。如图15所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图15所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图15所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
对联合语句进行语法解析,得到第一表标识和第二表标识;联合语句包含第一函数及第一函数内嵌套的第二函数;第一函数和第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;第一表标识用于标识第一数据表,第一数据表属于第一设备;第二表标识用于标识第二数据表,第二数据表属于第二设备;第二设备是与第一设备进行协同计算的设备;
对第一函数中的第二函数进行裁剪,若第二函数需要调用第一数据表,则基于裁剪的第二函数生成联合语句的第一拆分语句;
获取用于指示第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和第一结果标识生成联合语句的第二拆分语句;
基于第一拆分语句和第二拆分语句确定联合语句的计算结果;其中,第一拆分语句和第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定联合语句的计算结果的过程中,针对目标拆分语句,是第二设备基于第二数据表与第一设备进行协同计算的。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3对应实施例中对上述联合语句的处理方法的描述,也可执行前文图14所对应实施例中对上述联合语句的处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的联合语句的处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对联合语句的处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的联合语句的处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3对应实施例中对上述联合语句的处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种联合语句的处理方法,其特征在于,所述方法应用于第一设备,所述方法包括:
对联合语句进行语法解析,得到第一表标识和第二表标识;所述联合语句包含第一函数及所述第一函数内嵌套的第二函数;所述第一函数和所述第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;所述第一表标识用于标识第一数据表,所述第一数据表属于所述第一设备;所述第二表标识用于标识第二数据表,所述第二数据表属于第二设备;所述第二设备是与所述第一设备进行协同计算的设备;
对所述第一函数中的所述第二函数进行裁剪,若所述第二函数需要调用所述第一数据表,则基于裁剪的所述第二函数生成所述联合语句的第一拆分语句;
获取用于指示所述第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和所述第一结果标识生成所述联合语句的第二拆分语句;
基于所述第一拆分语句和所述第二拆分语句确定所述联合语句的计算结果;其中,所述第一拆分语句和所述第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定所述联合语句的计算结果的过程中,针对所述目标拆分语句,是所述第二设备基于所述第二数据表与所述第一设备进行协同计算的。
2.根据权利要求1所述的方法,其特征在于,若所述第一函数是联邦计算函数,所述第二函数是非联邦计算函数,则所述基于所述第一拆分语句和所述第二拆分语句确定所述联合语句的计算结果,包括:
基于所述第一数据表计算所述第一拆分语句,得到所述第一拆分语句的计算结果;
基于所述第二拆分语句中组装的所述第一结果标识调用所述第一拆分语句的计算结果;
基于调用的所述第一拆分语句的计算结果与所述第二设备协同计算所述第二拆分语句,得到所述第二拆分语句的计算结果;
将所述第二拆分语句的计算结果确定为所述联合语句的计算结果。
3.根据权利要求2所述的方法,其特征在于,所述第一函数和所述第二函数包含于所述联合语句中的函数调用语句中;所述方法还包括:
对所述函数调用语句进行语法解析,得到所述函数调用语句的语法树;所述函数调用语句的语法树中包含所述函数调用语句中的函数的函数节点;
从所述函数调用语句的语法树中最后一个函数节点开始,向上依次回溯所述函数调用语句的语法树中的函数节点;
若回溯到联邦函数节点,则停止回溯,并将回溯到的所述联邦函数节点所属的函数确定为所述第一函数,以及根据在所述联邦函数节点之前回溯到的非联邦函数节点所属的函数确定所述第二函数;
其中,所述联邦函数节点是指所属的函数是联邦计算函数的函数节点,所述非联邦函数节点是指所属的函数是非联邦计算函数的函数节点。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述联合语句发送给所述第二设备,使所述第二设备基于所述联合语句生成第三拆分语句和用于指示所述第三拆分语句的计算结果的第二结果标识,并基于裁剪掉所述第二函数的第一函数和所述第二结果标识生成第四拆分语句;所述第三拆分语句是在所述第二函数需要调用所述第二数据表时由所述第二设备基于所述第二函数生成的;
其中,所述第二设备用于基于所述第二数据表计算所述第三拆分语句,得到所述第三拆分语句的计算结果,并用于基于所述第三拆分语句的计算结果与所述第一设备协同计算所述第四拆分语句;
所述第一设备和所述第二设备协同计算所述第二拆分语句的过程与所述第一设备和所述第二设备协同计算所述第四拆分语句的过程是同一个过程。
5.根据权利要求1所述的方法,其特征在于,若所述第一函数是非联邦计算函数,所述第二函数是联邦计算函数,则所述基于所述第一拆分语句和所述第二拆分语句确定所述联合语句的计算结果,包括:
基于所述第一数据表与所述第二设备协同计算所述第一拆分语句,得到所述第一拆分语句的计算结果;
基于所述第二拆分语句中组装的所述第一结果标识调用所述第一拆分语句的计算结果;
基于调用的所述第一拆分语句的计算结果计算所述第二拆分语句,得到所述第二拆分语句的计算结果;
将所述第二拆分语句的计算结果确定为所述联合语句的计算结果。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述联合语句发送给所述第二设备,使所述第二设备基于所述第二函数生成第五拆分语句,并基于所述第二数据表与所述第一设备协同计算所述第五拆分语句;
所述第一设备和所述第二设备协同计算所述第二拆分语句的过程与所述第一设备和所述第二设备协同计算所述第五拆分语句的过程是同一个过程。
7.根据权利要求1所述的方法,其特征在于,若所述联合语句还包含第三函数,所述第一函数嵌套在所述第三函数内,所述第三函数是非联邦计算函数,所述第一函数是联邦计算函数,则所述基于所述第一拆分语句和所述第二拆分语句确定所述联合语句的计算结果,包括:
对所述第一拆分语句进行计算,得到所述第一拆分语句的计算结果,并基于所述第一拆分语句的计算结果计算所述第二拆分语句,得到所述第二拆分语句的计算结果;
获取用于指示所述第二拆分语句的计算结果的第三结果标识;
裁剪所述第三函数中的所述第一函数,并基于裁剪后的第三函数和所述第三结果标识生成所述联合语句的第六拆分语句;
基于所述第六拆分语句确定所述联合语句的计算结果。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第六拆分语句确定所述联合语句的计算结果,包括:
基于所述第六拆分语句中组装的所述第三结果标识调用所述第二拆分语句的计算结果;
基于调用的所述第二拆分语句的计算结果计算所述第六拆分语句,得到所述第六拆分语句的计算结果;
将所述第六拆分语句的计算结果确定为所述联合语句的计算结果。
9.根据权利要求7所述的方法,其特征在于,所述第二函数是由依次嵌套的N个非联邦计算函数构成,所述第三函数是由依次嵌套的M个非联邦计算函数构成,N和M均为正整数。
10.根据权利要求1所述的方法,其特征在于,所述第一函数和所述第二函数中的联邦计算函数表示为目标函数,所述联合语句包含所述目标函数的补充语句,所述补充语句用于指示所述目标函数的计算规则;
所述对所述联合语句进行语法解析,得到第一表标识和第二表标识,包括:
对所述联合语句中的所述补充语句进行语法解析,得到所述补充语句的语法树;所述补充语句的语法树包含所述目标函数需调用的数据表的表标识;
从所述补充语句的语法树中提取出所述目标函数需调用的所述第一数据表的所述第一表标识、及所述目标函数需调用的所述第二数据表的所述第二表标识。
11.根据权利要求1所述的方法,其特征在于,所述基于裁剪的所述第二函数生成所述联合语句的第一拆分语句,包括:
获取所述第二函数在所述第一数据表中需调用的数据的数据标识;
基于裁剪的所述第二函数和所述数据标识生成所述第一拆分语句。
12.根据权利要求1所述的方法,其特征在于,若所述第二函数是非联邦计算函数,所述第二函数不需调用所述第一数据表,所述第二函数需要调用所述第二数据表,则所述方法还包括:
基于裁剪后的第一函数生成所述联合语句的第七拆分语句;
基于所述第一数据表与所述第二设备协同计算所述第七拆分语句,得到所述第七拆分语句的计算结果;所述第二设备用于基于所述第二数据表计算针对所述第二函数的计算结果,并用于基于针对所述第二函数的计算结果与所述第一设备协同计算所述第七拆分语句;
将所述第七拆分语句的计算结果确定为所述联合语句的计算结果。
13.一种联合语句的处理装置,其特征在于,所述装置应用于第一设备,所述装置包括:
解析模块,用于对联合语句进行语法解析,得到第一表标识和第二表标识;所述联合语句包含第一函数及所述第一函数内嵌套的第二函数;所述第一函数和所述第二函数中任一函数是联邦计算函数,另一函数是非联邦计算函数;所述第一表标识用于标识第一数据表,所述第一数据表属于所述第一设备;所述第二表标识用于标识第二数据表,所述第二数据表属于第二设备;所述第二设备是与所述第一设备进行协同计算的设备;
第一生成模块,用于对所述第一函数中的所述第二函数进行裁剪,若所述第二函数需要调用所述第一数据表,则基于裁剪的所述第二函数生成所述联合语句的第一拆分语句;
第二生成模块,用于获取用于指示所述第一拆分语句的计算结果的第一结果标识,并基于裁剪后的第一函数和所述第一结果标识生成所述联合语句的第二拆分语句;
确定模块,用于基于所述第一拆分语句和所述第二拆分语句确定所述联合语句的计算结果;其中,所述第一拆分语句和所述第二拆分语句中对应的函数是联邦计算函数的拆分语句表示为目标拆分语句,在确定所述联合语句的计算结果的过程中,针对所述目标拆分语句,是所述第二设备基于所述第二数据表与所述第一设备进行协同计算的。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-12中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211417809.5A CN115455036B (zh) | 2022-11-14 | 2022-11-14 | 联合语句的处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211417809.5A CN115455036B (zh) | 2022-11-14 | 2022-11-14 | 联合语句的处理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115455036A true CN115455036A (zh) | 2022-12-09 |
CN115455036B CN115455036B (zh) | 2023-01-10 |
Family
ID=84295773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211417809.5A Active CN115455036B (zh) | 2022-11-14 | 2022-11-14 | 联合语句的处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115455036B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279198A (zh) * | 2014-07-24 | 2016-01-27 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN113434548A (zh) * | 2021-06-25 | 2021-09-24 | 北京理工大学 | 一种基于Spark的大规模数据流分析方法及系统 |
CN114330704A (zh) * | 2021-11-22 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 语句生成模型更新方法、装置、计算机设备和存储介质 |
CN114817243A (zh) * | 2022-03-29 | 2022-07-29 | 平安国际智慧城市科技股份有限公司 | 数据库联合索引的建立方法、装置、设备及存储介质 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
-
2022
- 2022-11-14 CN CN202211417809.5A patent/CN115455036B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279198A (zh) * | 2014-07-24 | 2016-01-27 | 北京古盘创世科技发展有限公司 | 数据表储存、修改、查询和统计方法 |
CN113434548A (zh) * | 2021-06-25 | 2021-09-24 | 北京理工大学 | 一种基于Spark的大规模数据流分析方法及系统 |
CN114330704A (zh) * | 2021-11-22 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 语句生成模型更新方法、装置、计算机设备和存储介质 |
CN114817243A (zh) * | 2022-03-29 | 2022-07-29 | 平安国际智慧城市科技股份有限公司 | 数据库联合索引的建立方法、装置、设备及存储介质 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
高丽娟: "利用表分区的大数据库优化方法", 《电脑知识与技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115455036B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325040B (zh) | 一种faq问答库泛化方法、装置及设备 | |
CN109657128B (zh) | 数据查询方法、装置及存储介质 | |
CN114330312B (zh) | 标题文本处理方法、装置、存储介质和程序 | |
CN103473224B (zh) | 基于问题求解过程的习题语义化方法 | |
CN104572035A (zh) | 网页代码的动态生成方法和动态生成系统 | |
CN112001500A (zh) | 基于纵向联邦学习系统的模型训练方法、设备及存储介质 | |
CN112287114A (zh) | 一种知识图谱服务处理方法和装置 | |
CN114416877A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN112966076A (zh) | 智能问答问题的生成方法、装置、计算机设备及存储介质 | |
CN113591448B (zh) | 报表生成方法、装置及存储介质 | |
CN113157904B (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN109656952B (zh) | 查询处理方法、装置及电子设备 | |
CN115455036B (zh) | 联合语句的处理方法、装置、设备和介质 | |
CN108460077A (zh) | 一种指标分析方法、系统以及计算机可读存储介质 | |
CN116795861A (zh) | 数据的校验方法、系统和电子设备 | |
CN110083685B (zh) | 用于意图识别的数据配置方法及装置 | |
CN114490673B (zh) | 数据信息处理方法、装置、电子设备及存储介质 | |
CN116561337A (zh) | 网络攻击知识图谱生成方法、装置、电子设备及存储介质 | |
CN115510116A (zh) | 数据目录构建方法、装置、介质及设备 | |
CN108304219B (zh) | 二次开发平台及方法 | |
CN110472113B (zh) | 一种智能交互引擎优化方法、装置、设备 | |
CN114499759B (zh) | 报文生成方法、装置、电子设备及存储介质 | |
CN118798615A (zh) | 业务流程编排方法、装置、电子设备、存储介质及产品 | |
US11709994B1 (en) | Contextual answer generation in spreadsheets | |
CN102760156B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |