CN115292313A - 一种伪列实现方法、装置、电子设备及存储介质 - Google Patents
一种伪列实现方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115292313A CN115292313A CN202210849650.8A CN202210849650A CN115292313A CN 115292313 A CN115292313 A CN 115292313A CN 202210849650 A CN202210849650 A CN 202210849650A CN 115292313 A CN115292313 A CN 115292313A
- Authority
- CN
- China
- Prior art keywords
- pseudo
- statement
- target data
- operator
- column 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本申请涉及云计算与大数据平台领域,尤其涉及一种伪列实现方法、装置、电子设备及存储介质。该方法中接收查询语句,查询语句用于查询目标数据;查询语句包含第一语句和第二语句;通过算子计算第一语句得到伪列信息,并通过算子计算第二语句得到目标数据;算子中存储有用于计算第一语句的执行函数和用于计算第二语句的执行函数;将伪列信息和目标数据合并,生成元组伪列表。上述方案,在实现伪列信息的查询过程中,没有添加其他额外的计算,最大化减少计算伪列信息对系统的性能影响。将伪列信息和目标数据合并为元组,规范多个伪列信息的实现过程。
Description
技术领域
本申请涉及云计算与大数据平台领域,尤其涉及一种伪列实现方法、装置、电子设备及存储介质。
背景技术
甲骨文数据库(Oracle Database,Oracle),是一款是商业数据库,Oracle是闭源的数据库,在Oracle无法添加自己业务需要的额外伪列,且使用Oracle会增加软件成本。关系型数据库管理系统(Postgre Structured Query Language,PostgreSQL)是世界上最强大的开源关系型数据库、学术气息浓厚、自由度极高,是一款免费数据库软件。
目前PostgreSQL不支持Oracle伪列信息的结构化查询语言(Structured QueryLanguage,SQL)语法,但是PostgreSQL的开源协议允许自由修改源码实现Oracle伪列的SQL语法。在Oracle中有多个伪列信息,如果伪列在添加过程中只单独实现自身的伪列信息,在后续的源码开发中,添加其他伪列信息或SQL功能会导致源码的语言环境变得杂乱无章,没有逻辑,造成运行故障。
如何在PostgreSQL中兼容Oracle伪列的SQL语法,实现查询伪列信息;并且规范多个伪列信息是值得商榷的问题。
发明内容
本申请实施例提供一种伪列实现方法、装置、电子设备及存储介质,用于实现查询伪列信息,规范多个伪列信息的实现过程。
第一方面,本申请实施例提供一种伪列实现方法,包括:
接收查询语句,所述查询语句用于查询目标数据;所述查询语句包含第一语句和第二语句;
通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据;所述算子中存储有用于计算第一语句的执行函数和用于计算第二语句的执行函数;
将所述伪列信息和所述目标数据合并,生成元组伪列表。
上述方法,在实现伪列信息的查询过程中,没有添加其他额外的计算,最大化减少计算伪列信息对系统的性能影响。将伪列信息和目标数据合并为元组,规范多个伪列信息的实现过程。
可选的,所述方法还包括:
所述查询语句包含第三语句;所述第三语句用于定义所述元组伪列表的投影规范;
通过所述算子计算所述第三语句,对所述元组伪列表进行投影。
上述方法通过对元组伪列表进行投影,实现统一的投影计算。
可选的,所述通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据,具体包括:
在第i次计算中,通过所述算子计算所述第一语句得到第i个伪列信息,以及通过所述算子计算所述第二语句得到第i个目标数据;
将所述第i个伪列信息和所述第i个目标数据存储至所述算子包含的执行状态结构体中;
在第I次计算后,获取第1个伪列信息至第I个伪列信息,以及第1个目标数据至第I个目标数据;所述i为大于或等于1,且小于或等于I的整数;所述I为大于或等于1的整数。
上述方法通过算子计算第一语句以及第二语句,执行状态结构体保存伪列信息以及目标数据,最大化减少计算、统计、收集伪列信息对系统的性能影响。
可选的,所述将所述伪列信息和所述目标数据合并,生成元组伪列表,具体包括:
将所述第1个伪列信息至所述第I个伪列信息合并,生成伪列元素;
将所述第1个目标数据至所述第I个目标数据合并,生成目标数据元素;
将所述伪列元素和所述目标数据元素合并,得到所述元组伪列表。
上述方法通过元组伪列表存储伪列信息以及目标数据,将伪列信息和目标数据合并为元组,实现了对伪列信息的统一管理。
可选的,所述方法还包括:
将所述元组伪列表存储在所述算子包括的元组表槽管理元组中。
上述方法通过元组表槽管理元组实现对元组伪列表的统一管理。
第二方面,本申请实施例提供一种伪列实现装置,包括:
接收模块,用于接收查询语句,所述查询语句用于查询目标数据;所述查询语句包含第一语句和第二语句;
计算模块,用于通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据;所述算子中存储有用于计算第一语句的执行函数和用于执行第二语句的执行函数;
处理模块,用于将所述伪列信息和所述目标数据合并,生成元组伪列表。
在一种可选的实施例中,所述计算模块还用于:
所述查询语句包含第三语句;所述第三语句用于定义所述元组伪列表的投影规范;
通过所述算子计算所述第三语句,对所述元组伪列表进行投影。
第三方面,本申请实施例还提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现上述第一方面中的任一种伪列实现方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的伪列实现方法。
第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行以实现如上述第一方面中任一项的伪列实现方法。
第二方面至第五方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种伪列实现方法的应用场景示意图;
图2为本申请实施例提供的一种伪列实现方法流程图;
图3为本申请实施例提供的一种查询语句输入界面示意图;
图4为本申请实施例提供的一种伪列信息和目标数据示意图;
图5为本申请实施例提供的另一种伪列信息和目标数据示意图;
图6为本申请实施例提供的一种伪列元素示意图;
图7为本申请实施例提供的一种目标数据元素示意图;
图8为本申请实施例提供的一种元组伪列表示意图;
图9为本申请实施例提供的一种伪列实现的完整流程图;
图10为本申请实施例提供的一种伪列实现的装置示意图;
图11为本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、本申请实施例中术语“伪列”,数据库术语,指的是在物理上这个列并不存在,只是在查询时才构造出来。伪列通常是自由分配的,用户无法执行修改等操作。比如Oracle的表中的每一行数据都有一个唯一的标识符(RowID)字段,使用RowID可以快速地定位到某个对应的数据,因为它标记了记录所对应的物理地址,是唯一的。
2、本申请实施例中术语“元组”是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性;在二维表里,元组也称为行。
3、本申请实施例中术语“SQL”,结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在数据库源码开发过程中,PostgreSQL不支持Oracle伪列的SQL语法,但是PostgreSQL的开源协议允许自由修改源码实现Oracle伪列的SQL语法,并用于生产和商用。如果多个伪列的添加没有相应的规范,会造成后续程序故障。因此,如何在PostgreSQL中兼容实现Oracle伪列的SQL语法,实现查询伪列,并且规范多个伪列信息就显得很有必要。
为了解决上述问题,本申请实施例提供一种伪列实现方法、装置、电子设备及存储介质。例如,接收查询语句,查询语句用于查询目标数据。其中,该查询语句包含第一语句和第二语句。通过算子计算第一语句得到伪列信息,并通过算子计算第二语句得到目标数据。其中,算子中存储有用于计算第一语句的执行函数和用于执行第二语句的执行函数。将伪列信息和目标数据合并,生成元组伪列表。这样,可以实现兼容Oracle伪列的SQL语法和定制化伪列功能,规范伪列的开发,提高伪列的开发效率。
本申请实施例用户可以通过客户端提交查询语句,在服务端查询伪列信息以及目标数据。
如图1所示,本申请实施例一种可选的伪列实现方法的应用场景示意图,包括服务端100以及终端101,服务端100与终端101之间可以通过网络实现可通信的连接,以实现本申请的伪列实现方法。
用户可以使用服务端100通过网络与终端101交互,例如接收或发送消息等。终端101上可以安装有各种客户端应用程序,例如程序编写类应用、网页浏览器应用、搜索类应用等。终端101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、台式计算机等等。
安装于终端101上的客户端用于响应用户提交查询语句,将查询语句发送给服务端,使服务端实现伪列信息以及目标数据的查询。
服务端100用于接收查询语句,查询语句用于查询目标数据;该查询语句包含第一语句和第二语句。通过算子计算第一语句得到伪列信息,并通过算子计算第二语句得到目标数据。其中,算子中存储有用于计算第一语句的执行函数和用于执行第二语句的执行函数。将伪列信息和目标数据合并,生成元组伪列表。其中,服务端100可以为独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,本申请实施例提供的一种伪列实现方法流程图,具体可以包括以下步骤:
步骤S201、接收查询语句,查询语句用于查询目标数据;查询语句包含第一语句和第二语句;
步骤S202、通过算子计算第一语句得到伪列信息,并通过算子计算第二语句得到目标数据;算子中存储有用于计算第一语句的执行函数和用于计算第二语句的执行函数;
步骤S203、将伪列信息和目标数据合并,生成元组伪列表。
在用户需要查询目标数据时,用户可以通过客户端输入查询语句;客户端将用户提交的查询语句发送给服务端,由服务端进行处理。
实施中,在需要查询目标数据时,用户通过终端的操作界面启动客户端;例如,用户可以双击客户端的图标来启动客户端。
在客户端启动完成后,在客户端的显示界面中展示查询语句输入界面;如图3所示,用户可以在该界面中输入查询语句。
用户在界面中输入查询语句之后,将查询语句进行提交。其中,查询语句是由SQL编写的语句。
在步骤S201中,客户端接收用户提交的查询语句,将用户提交的查询语句按照语法解析规则转换格式之后,供算子使用。
本申请实施例中用户提交的查询语句中包含第一语句和第二语句。查询语句中的第一语句用于查询得到伪列信息;查询语句中的第二语句用于查询目标数据。
在步骤S202中,在第i次计算中,通过算子计算第一语句得到第i个伪列信息,以及通过算子计算第二语句得到第i个目标数据。将第i个伪列信息和第i个目标数据存储至算子包含的执行状态结构体中。在第I次计算后,获取第1个伪列信息至第I个伪列信息,以及第1个目标数据至第I个目标数据。其中,i为大于或等于1,且小于或等于I的整数;I为大于或等于1的整数。
本申请实施例在PostgreSQL的运行结构中,每一个算子都包括执行函数,执行状态结构体,元组表槽管理元组。其中,执行函数用于计算用户输入的查询语句。执行状态结构体用于保存执行函数在计算查询语句时从第1次到第i次的所有信息。元组表槽管理元组用于存储包括元组伪列表等包含其他不同信息的元组表。
需要说明的是,本申请实施例中,算子包含顶层算子、投影算子等其他算子,根据查询语句的不同,调用不同类型的算子进行计算。
本申请实施例在第1次计算中,通过算子计算用户提交的查询语句中的第一语句得到第1个伪列信息。通过算子计算用户提交的查询语句中的第二语句得到第1个目标数据。将第1个伪列信息和第1个目标数据保存在算子包含的执行状态结构体中。
在第2次计算中,通过算子计算用户提交的查询语句中的第一语句得到第2个伪列信息。通过算子计算用户提交的查询语句中的第二语句得到第2个目标数据。在第2次计算完成之后,会在第1次保存的伪列信息以及对应的目标数据组成的元组中增加一行,保存第2次的伪列信息以及目标数据到算子包含的执行状态结构体中。
在第i次计算中,通过算子计算用户提交的查询语句中的第一语句得到第i个伪列信息;通过算子计算用户提交的查询语句中的第二语句得到第i个目标数据。在第i次计算完成之后,会在第i-1次计算保存的伪列信息以及对应的目标数据组成的元组中增加一行,保存第i次的伪列信息以及目标数据到算子包含的执行状态结构体中。其中,i为大于或等于1,且小于或等于I的整数。
本申请实施例将收集伪列信息的计算过程融合到算子计算查询语句中,没有添加其他的额外计算,降低计算伪列信息的时间,最大化减少计算、统计伪列信息对系统的性能影响,在实际应用过程中该影响可忽略不计。
在用户提交的查询语句对应的所有计算完成后,即在第I次计算之后。通过执行状态结构体存储的统计信息以及执行状态结构体历史记录信息等来源,收集各个不同计算次数中的伪列信息对应的字段数据。其中,I为大于或等于1的整数。
在一种可选的实施例中,用户查询的伪列信息可以是Oracle的伪列(RowNum)。在Oracle中,RowNum返回结果集中每一行数据的序列化为数字编号。ROWNUM是一个序列,是Oracle从数据文件或缓冲区中读取数据的顺序。RowNum值的第一条记录为1,RowNum值的第二条记录为2,以此类推。
例如,用户在客户端输入想要查询大于等于2000,小于等于2004的整数以及RowNum信息的查询语句。服务端接收用户的查询语句,将用户提交的查询语句按照语法解析规则转换格式,供算子计算。在算子第1次计算完成之后,如图4所示,第1个伪列信息为1,第1个目标数据为2000,将该伪列信息和目标数据存储至算子包含的执行状态结构体中。在算子第2次计算完成之后,如图5所示,第2个伪列信息为2,第2个目标数据为2001,将第2个伪列信息和目标数据存储至算子包含的执行状态结构体中。直至第5次计算完成代表所有计算次数完成。通过执行状态结构体中存储的统计信息收集第5次计算过程中的伪列信息以及目标数据。通过执行状态结构体历史记录信息收集第1次计算到第4次计算中的所有伪列信息以及目标数据。
在步骤S203中,将第1个伪列信息至第I个伪列信息合并,生成伪列元素。将第1个目标数据至第I个目标数据合并,生成目标数据元素。将伪列元素和目标数据元素合并,得到元组伪列表。
本申请实施例将第1个伪列信息至第I个伪列信息合并,生成伪列元素。例如,如图6所示的伪列元素,第1个伪列信息至第5个伪列信息分别为:1、2、3、4、5。
将第1个目标数据至第I个目标数据合并,生成目标数据元素。
例如,如图7所示目标数据元素,第1个目标数据至第5个目标数据分别为:2000、2001、2002、2003、2004。
将伪列元素和目标数据元素合并,得到元组伪列表。
例如,如图8所示的元组伪列表中,伪列元素为1、2、3、4、5,目标数据元素为2000、2001、2002、2003、2004。将该伪列元素和目标数据元素进行合并。
在得到元组伪列表之后,将元组伪列表存储在算子包括的元组表槽管理元组中,对元组伪列表进行统一管理。
本申请实施例将伪列元素和目标数据元素进行合并,得到元组伪列表。通过元组绑定的方式,防止在伪列信息的实现过程中出现重复实现的情况,或查询语句单独计算运行即没有通过元组的方式获取伪列信息以及目标数据,导致获取错误的伪列信息以及目标数据的情况。
在一种可选的实施例中,根据查询语句中的第三语句定义的投影规范,将元组伪列表进行相应的投影。
本申请实施例通过算子计算第三语句,对元组伪列表进行投影。因为伪列信息在投影前后是相同的,元组在投影前后是相同的。所以只有目标数据按照第三语句定义的投影规范进行投影即可。投影之后,将带有伪列信息的查询结果返回给客户端,使用户得到带有伪列信息的查询结果。
例如,元组伪列表中伪列元素为1、2、3;目标数据元素为-2000、-2001、-2002。用户输入的第三语句中定义的投影规范是求目标数据的绝对值;则对元组伪列表进行投影。因为伪列信息在投影前是1、2、3,伪列信息在投影后是1、2、3,伪列信息是不变的。元组在投影前是3行,在投影后是3行,元组是不变的。所以只对目标数据元素投影。在投影之后,目标数据元素变为2000、2001、2002,将带有伪列信息的查询结果返回给客户端。
在一种可选的实施例中,用户查询的伪列信息可以是Oracl的层次(Level)伪列。在Oracl的层次(Level)伪列的查询中,Level表示算子的迭代次数,在算子计算查询语句时,在算子中定义一个标记字段保存Level信息。层次查询每次迭代扫描一层的节点。Level在进入初始节点时,初始化为1。对于Level初始值,每多迭代一次,Level进行加1。
在用户提交的查询语句中包含用于查寻Level信息的第一语句时,将上述标记字段对应的数据作为伪列信息,返回给用户。在用户提交的查询语句中不包含用于查寻Level信息的第一语句时,Level信息也会进行计算,但是不返回给用户。
例如,接收查询语句,将用户提交的查询语句按照语法解析规则转换格式之后,供算子使用。其中,该查询语句中包括查询Level伪列的第一语句、查询目标数据的第二语句以及定义元组伪列表的投影规范的第三语句。通过算子计算第一语句得到伪列信息,并通过算子计算第二语句得到目标数据。将第1个伪列信息至第I个伪列信息合并,生成伪列元素。将第1个目标数据至第I个目标数据合并,生成目标数据元素。将伪列元素和目标数据元素合并,得到元组伪列表。通过第三语句的定义,对元组伪列表进行投影;在完成投影之后,将带有伪列信息的查询结果返回给客户端,使用户得到带有伪列信息的查询结果。
在一种可选的实施例中,用户提交的查询语句中只需要算子计算一次得到伪列信息以及目标数据。通过算子计算用户提交的查询语句中的第一语句得到第1个伪列信息。通过算子计算用户提交的查询语句中的第二语句得到第1个目标数据。将第1个伪列信息和第1个目标数据保存在算子包含的执行状态结构体中。将伪列信息和目标数据合并,得到元组伪列表。通过第三语句的定义,对元组伪列表进行投影;在完成投影之后,将带有伪列信息的查询结果返回给客户端,使用户得到带有伪列信息的查询结果。
本申请实施例在PostgreSQL通过元组传递数据的基础上,所有伪列信息的添加都是将目标数据与伪列信息进行合并,生成元组伪列表,从而规范伪列信息开发流程。通过算子调用执行函数计算对应的查询语句,对伪列信息进行统一计算、收集和投影,从而统一管理获取查询结果的接口。实现兼容Oracle伪列的SQL语法和定制化伪列功能,方便伪列功能的持续开发。
如图9所示,本申请提供一种伪列实现的完整流程图。
步骤S901、接收查询语句,该查询语句包含第一语句、第二语句和第三语句;
步骤S902、在第i次计算中,通过算子计算第一语句得到第i个伪列信息,以及通过算子计算第二语句得到第i个目标数据;i为大于或等于1;
步骤S903、将第i个伪列信息和第i个目标数据存储至算子包含的执行状态结构体中;
步骤S904、在第I次计算后,获取第1个伪列信息至第I个伪列信息,以及第1个目标数据至第I个目标数据;I为大于或等于1的整数;
步骤S905、将第1个伪列信息至第I个伪列信息合并,生成伪列元素;
步骤S906、将第1个目标数据至第I个目标数据合并,生成目标数据元素;
步骤S907、将伪列元素和目标数据元素合并,得到元组伪列表;
步骤S908、将元组伪列表存储在算子包括的元组表槽管理元组中;
步骤S909、通过算子计算第三语句,对元组伪列表进行投影。
本申请实施例提供了一种伪列实现的装置,如图10所示,该装置包括:接收模块1001、计算模块1002、处理模块1003,其中:
接收模块1001,用于接收查询语句,所述查询语句用于查询目标数据;所述查询语句包含第一语句和第二语句;
计算模块1002,用于通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据;所述算子中存储有用于计算第一语句的执行函数和用于执行第二语句的执行函数;
处理模块1003,用于将所述伪列信息和所述目标数据合并,生成元组伪列表。
可选的,所述计算模块1002还用于:
所述查询语句包含第三语句;所述第三语句用于定义所述元组伪列表的投影规范;
通过所述算子计算所述第三语句,对所述元组伪列表进行投影。
可选的,在从源数据库中,在通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据时,所述处理模块1003具体用于:
在第i次计算中,通过所述算子计算所述第一语句得到第i个伪列信息,以及通过所述算子计算所述第二语句得到第i个目标数据;
将所述第i个伪列信息和所述第i个目标数据存储至所述算子包含的执行状态结构体中;
在第I次计算后,获取第1个伪列信息至第I个伪列信息,以及第1个目标数据至第I个目标数据;所述i为大于或等于1,且小于或等于I的整数;所述I为大于或等于1的整数。
可选的,在所述伪列信息和所述目标数据合并,生成元组伪列表时,所述处理模块1003具体用于:
将所述第1个伪列信息至所述第I个伪列信息合并,生成伪列元素;
将所述第1个目标数据至所述第I个目标数据合并,生成目标数据元素;
将所述伪列元素和所述目标数据元素合并,得到所述元组伪列表。
可选的,所述处理模块1003还用于:
将所述元组伪列表存储在所述算子包括的元组表槽管理元组中。
本申请实施例还提供了一种电子设备。下面参照图11来描述根据本申请的这种实施方式的电子设备110。图11显示的电子设备110仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,电子设备110以通用电子设备的形式表现。电子设备110的组件可以包括但不限于:上述至少一个处理器111、上述至少一个存储器112、连接不同系统组件(包括存储器112和处理器111)的总线113。
总线113表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器112可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1121和/或高速缓存存储器1122,还可以进一步包括只读存储器(ROM)1123。
存储器112还可以包括具有一组(至少一个)程序模块1124的程序/实用工具1125,这样的程序模块1124包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备110也可以与一个或多个外部设备114(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备110交互的设备通信,和/或与使得该电子设备110能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口115进行。并且,电子设备110还可以通过网络适配器116与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器116通过总线113与用于电子设备110的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备110使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器112,上述指令可由处理器111执行以完成上述伪列实现方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器111执行时实现如本申请提供的伪列实现方法的任一方法。
在示例性实施例中,本申请提供的一种伪列实现方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的伪列实现方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于伪列实现方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务端上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络,例如局域网(LAN)或广域网(WAN),连接到用户电子设备,或者,可以连接到外部电子设备,例如利用因特网服务提供商来通过因特网连接。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程图像缩放设备的处理器以产生一个机器,使得通过计算机或其他可编程图像缩放设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程图像缩放设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程图像缩放设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种伪列实现方法,其特征在于,所述方法包括:
接收查询语句,所述查询语句用于查询目标数据;所述查询语句包含第一语句和第二语句;
通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据;所述算子中存储有用于计算第一语句的执行函数和用于计算第二语句的执行函数;
将所述伪列信息和所述目标数据合并,生成元组伪列表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述查询语句包含第三语句;所述第三语句用于定义所述元组伪列表的投影规范;
通过所述算子计算所述第三语句,对所述元组伪列表进行投影。
3.根据权利要求1或2所述的方法,其特征在于,所述通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据,具体包括:
在第i次计算中,通过所述算子计算所述第一语句得到第i个伪列信息,以及通过所述算子计算所述第二语句得到第i个目标数据;
将所述第i个伪列信息和所述第i个目标数据存储至所述算子包含的执行状态结构体中;
在第I次计算后,获取第1个伪列信息至第I个伪列信息,以及第1个目标数据至第I个目标数据;所述i为大于或等于1,且小于或等于I的整数;所述I为大于或等于1的整数。
4.根据权利要求3所述的方法,其特征在于,所述将所述伪列信息和所述目标数据合并,生成元组伪列表,具体包括:
将所述第1个伪列信息至所述第I个伪列信息合并,生成伪列元素;
将所述第1个目标数据至所述第I个目标数据合并,生成目标数据元素;
将所述伪列元素和所述目标数据元素合并,得到所述元组伪列表。
5.根据权利要求1、2或4所述的方法,其特征在于,所述方法还包括:
将所述元组伪列表存储在所述算子包括的元组表槽管理元组中。
6.一种伪列实现装置,其特征在于,包括:
接收模块,用于接收查询语句,所述查询语句用于查询目标数据;所述查询语句包含第一语句和第二语句;
计算模块,用于通过算子计算所述第一语句得到伪列信息,并通过所述算子计算所述第二语句得到所述目标数据;所述算子中存储有用于计算第一语句的执行函数和用于执行第二语句的执行函数;
处理模块,用于将所述伪列信息和所述目标数据合并,生成元组伪列表。
7.根据权利要求6所述的装置,其特征在于,所述计算模块还用于:
所述查询语句包含第三语句;所述第三语句用于定义所述元组伪列表的投影规范;
通过所述算子计算所述第三语句,对所述元组伪列表进行投影。
8.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的数据库迁移方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一所述方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品在被计算机调用时,使得所述计算机执行如权利要求1-5中任一所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210849650.8A CN115292313A (zh) | 2022-07-19 | 2022-07-19 | 一种伪列实现方法、装置、电子设备及存储介质 |
PCT/CN2022/141533 WO2024016594A1 (zh) | 2022-07-19 | 2022-12-23 | 一种伪列实现方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210849650.8A CN115292313A (zh) | 2022-07-19 | 2022-07-19 | 一种伪列实现方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115292313A true CN115292313A (zh) | 2022-11-04 |
Family
ID=83824089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210849650.8A Pending CN115292313A (zh) | 2022-07-19 | 2022-07-19 | 一种伪列实现方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115292313A (zh) |
WO (1) | WO2024016594A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024016594A1 (zh) * | 2022-07-19 | 2024-01-25 | 天翼云科技有限公司 | 一种伪列实现方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328209B2 (en) * | 2004-08-11 | 2008-02-05 | Oracle International Corporation | System for ontology-based semantic matching in a relational database system |
CN114579561A (zh) * | 2020-12-02 | 2022-06-03 | 北京金山云网络技术有限公司 | 数据处理方法和装置、存储介质 |
CN112948419A (zh) * | 2021-03-02 | 2021-06-11 | 广州海量数据库技术有限公司 | 查询语句处理方法及装置 |
CN114637752A (zh) * | 2022-03-29 | 2022-06-17 | 上海达梦数据库有限公司 | 一种连接查询语句处理方法、装置、设备及存储介质 |
CN115292313A (zh) * | 2022-07-19 | 2022-11-04 | 天翼云科技有限公司 | 一种伪列实现方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-19 CN CN202210849650.8A patent/CN115292313A/zh active Pending
- 2022-12-23 WO PCT/CN2022/141533 patent/WO2024016594A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024016594A1 (zh) * | 2022-07-19 | 2024-01-25 | 天翼云科技有限公司 | 一种伪列实现方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024016594A1 (zh) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7271734B2 (ja) | 分散イベント処理システムにおけるデータシリアライズ | |
US11023500B2 (en) | Systems and methods for code parsing and lineage detection | |
KR20200106950A (ko) | Sql 질의 플랜들을 최적화하기 위한 차원 콘텍스트 전파 기술들 | |
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
US10915532B2 (en) | Supporting a join operation against multiple NoSQL databases | |
US9930113B2 (en) | Data retrieval via a telecommunication network | |
US11055352B1 (en) | Engine independent query plan optimization | |
US9514184B2 (en) | Systems and methods for a high speed query infrastructure | |
JP2012113706A (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
CN115335821B (zh) | 卸载统计收集 | |
US11252257B2 (en) | Dynamic rest access | |
US10289620B1 (en) | Reporting and data governance management | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN103678396A (zh) | 一种基于数据模型的数据备份方法和装置 | |
US10915541B2 (en) | Generic API | |
US11704327B2 (en) | Querying distributed databases | |
CN115292313A (zh) | 一种伪列实现方法、装置、电子设备及存储介质 | |
US20220207033A1 (en) | Systems and methods for data retrieval | |
US10223086B2 (en) | Systems and methods for code parsing and lineage detection | |
US10003492B2 (en) | Systems and methods for managing data related to network elements from multiple sources | |
CN112541001A (zh) | 数据查询方法、装置、存储介质及设备 | |
US11609924B2 (en) | Database query execution on multiple databases | |
EP2990960A1 (en) | Data retrieval via a telecommunication network | |
CN112732704B (zh) | 一种数据处理方法、装置及存储介质 | |
US11023485B2 (en) | Cube construction for an OLAP system |
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 |