基于结构化查询语言语句的计算服务实现方案
技术领域
本公开通常涉及计算机技术领域,更具体地,涉及基于结构化查询语言语句的计算服务实现方法及装置。
背景技术
在使用结构化查询语言语句(Structured Query Language,SQL)数据进行计算时,比如,在使用SQL数据进行机器学习模型训练时,用户通常需要使用R或Python编程语言来编写机器学习脚本,并且将所编写的机器学习脚本嵌入到SQL程序语句中来执行,从而实现机器学习模型训练。在这种情况下,用户需要熟悉SQL语言和比如Python语言的其它非SQL语言,并且具有使用SQL语言和比如Python语言的其它非SQL语言进行程序编写的能力,由此给用户提出了较高的要求。
发明内容
鉴于上述,本公开提供了一种基于SQL语句实现计算服务的方法及装置。利用该方法及装置,通过对现有SQL语法进行扩展,使得扩展后的SQL语句中包含计算服务所需的计算要素信息,在接收到扩展后的SQL语句后,对扩展后的SQL语句进行解析并基于计算要素信息生成目标计算框架可识别的计算服务描述语句,由此在目标计算框架中基于所生成的计算服务描述语句来进行计算服务,从而无需用户具备目标计算框架所需程序编写能力。
根据本公开的一个方面,提供了一种用于基于结构化查询语言语句实现计算服务的方法,包括:对结构化查询语言语句进行语法解析,以确定所述结构化查询语言语句中是否存在扩展语法标识,所述扩展语法标识指示针对所述结构化查询语言语句的目标计算服务;在所述结构化查询语言语句中存在扩展语法标识时,基于所述结构化查询语言语句生成具有第一语句格式的计算服务描述语句,所述第一语句格式是目标计算服务框架可识别的语句格式;以及将所生成的计算服务描述语句提交给所述目标计算服务框架,以在所述目标计算服务框架中,基于所述计算服务描述语句来调用所述结构化查询语言语句所查询的数据进行目标计算,其中,在所述结构化查询语言语句中存在所述扩展语法标识时,所述结构化查询语言语句包括所述目标计算服务所需的计算要素。
可选地,在上述方面的一个示例中,所述目标计算服务包括机器学习计算服务或者集群计算服务。
可选地,在上述方面的一个示例中,所述机器学习计算服务包括机器学习模型训练或者机器学习模型预测。
可选地,在上述方面的一个示例中,基于所述结构化查询语言语句生成具有第一语句格式的计算服务描述语句包括:基于所述结构化查询语言语句中的数据查询要素,生成具有所述第一语句格式的数据查询程序代码;以及基于所述结构化查询语言语句中的计算服务要素,生成具有所述第一语句格式的机器学习程序代码。
可选地,在上述方面的一个示例中,所述计算要素包括机器学习模型名称、机器学习模型参数、机器学习模型特征、机器学习模型标签以及机器学习计算结果存储地址,其中,基于所述结构化查询语言语句中的计算服务要素,生成具有所述第一语句格式的机器学习程序代码包括:调用与所述机器学习模型名称对应的机器学习程序代码模板;以及将所述机器学习模型训练参数、机器学习模型特征和机器学习模型标签提供给所述机器学习程序代码模板,以生成具有所述第一语句格式的机器学习程序代码。
可选地,在上述方面的一个示例中,在所述目标计算服务框架调用所述结构化查询语言语句所查询的数据来基于机器学习程序代码进行目标计算后,所述目标计算服务框架将目标计算结果存储在结构化查询语言数据库中的机器学习计算结果存储地址中。
可选地,在上述方面的一个示例中,在基于所述结构化查询语言语句生成具有第一语句格式的计算服务描述语句之前,所述方法还包括:对所述结构化查询语言语句进行语义验证。
可选地,在上述方面的一个示例中,所述方法还可以包括:获取经由客户端输入的结构化查询语言语句。
根据本公开的另一方面,提供一种用于基于结构化查询语言语句实现计算服务的装置,包括:语法解析单元,被配置为对结构化查询语言语句进行语法解析,以确定所述结构化查询语言语句中是否存在扩展语法标识,所述扩展语法标识指示针对所述结构化查询语言语句的目标计算服务;计算服务描述语句生成单元,被配置为在所述结构化查询语言语句中存在扩展语法标识时,基于所述结构化查询语言语句生成具有第一语句格式的计算服务描述语句,所述第一语句格式是目标计算服务框架可识别的语句格式;以及描述语句提交单元,被配置为将所生成的计算服务描述语句提交给所述目标计算服务框架,以在所述目标计算服务框架中,基于所述计算服务描述语句来调用所述结构化查询语言语句所查询的数据进行目标计算,其中,在所述结构化查询语言语句中存在所述扩展语法标识时,所述结构化查询语言语句包括所述目标计算服务所需的计算要素。
可选地,在上述方面的一个示例中,所述目标计算服务包括机器学习计算服务或者集群计算服务。
可选地,在上述方面的一个示例中,所述机器学习计算服务包括机器学习模型训练或者机器学习模型预测,以及所述计算服务描述语句生成单元包括:数据查询代码生成模块,被配置为基于所述结构化查询语言语句中的数据查询要素,生成具有所述第一语句格式的数据查询程序代码;以及机器学习代码生成模块,被配置为基于所述结构化查询语言语句中的计算服务要素,生成具有所述第一语句格式的机器学习程序代码。
可选地,在上述方面的一个示例中,所述计算要素包括机器学习模型名称、机器学习模型参数、机器学习模型特征、机器学习模型标签以及机器学习计算结果存储地址,其中,所述机器学习代码生成模块被配置为:调用与所述机器学习模型名称对应的机器学习程序代码模板;以及将所述机器学习模型训练参数、机器学习模型特征和机器学习模型标签提供给所述机器学习程序代码模板,以生成具有所述第一语句格式的机器学习程序代码。
可选地,在上述方面的一个示例中,所述装置还可以包括:语义验证单元,被配置为在基于所述结构化查询语言语句生成具有第一语句格式的计算服务描述语句之前,对所述结构化查询语言语句进行语义验证。
可选地,在上述方面的一个示例中,所述装置还可以包括:语句获取单元,被配置为获取经由客户端输入的结构化查询语言语句。
根据本公开的另一方面,提供一种用于基于结构化查询语言语句实现计算服务的系统,包括:客户端设备,被配置为输入结构化查询语言语句;如上所述的用于基于结构化查询语言语句实现计算服务的装置;目标计算服务框架;以及结构化查询语言数据库。
根据本公开的另一方面,提供一种计算设备,包括:至少一个处理器,以及与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的用于基于结构化查询语言语句实现计算服务的方法。
根据本公开的另一方面,提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的用于基于结构化查询语言语句实现计算服务的方法。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的系统的方框图;
图2示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的方法的流程图;
图3A示出了根据本公开的实施例的常规SQL语句的一个示例的示意图;
图3B示出了根据本公开的实施例的具有扩展语法标识的SQL语句的一个示例的示意图;
图3C示出了根据本公开的实施例的具有扩展语法标识的SQL语句的另一示例的示意图;
图4示出了根据本公开的实施例的用于基于结构化查询语言语句生成计算服务描述语句的过程的流程图;
图5示出了示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的装置的方框图;
图6示出了示出了根据本公开的实施例的计算服务描述语句生成单元的一个实现示例的方框图;
图7示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的计算设备的方框图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在本公开所提出的实施例中,对现有SQL语法进行扩展,使得扩展后的SQL语句中包含计算服务所需的计算要素信息,并且在SQL引擎(即,SQL客户端)和目标计算框架之间创建SQL语句处理装置。该SQL语句处理装置接收SQL引擎所提交的SQL语句,并且能够对SQL引擎所提交的SQL语句进行语法解析。在解析出所接收的SQL语句是扩展后的SQL语句后,基于该SQL语句所包含的计算要素信息生成目标计算框架可识别的计算服务描述语句,然后将所生成的计算服务描述语句提交给目标计算框架,由此在目标计算框架中基于所生成的计算服务描述语句来进行计算服务,从而无需用户具备目标计算框架所需程序编写能力。
下面将结合附图来详细描述根据本公开的实施例的用于基于SQL语句实现计算服务的系统及方法。
图1示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的系统(下文中称为“计算服务实现系统”)10的方框图。如图1所示,计算服务实现系统10包括客户端设备100、SQL语句处理装置200、目标计算服务框架300和SQL数据库400。
客户端设备100被配置为编写SQL语句并向SQL语句处理装置200提交所编写的SQL语句。例如,用户可以在浏览器内或者在命令行中直接编写SQL语句,然后客户端设备100采用流式RPC消息的方式发送给SQL语句处理装置200。在本公开中,SQL语句处理装置200可以支持多种客户端。比如,浏览器的客户端可以是通过在Jupyter Notebook内加入一个Python的客户端来实现。客户端设备100具有体验良好的交互式用户界面。在经由交互式用户界面输入并提交SQL语句后,能够在交互式用户界面上实时地显示SQL语句处理的状态信息。
在接收到客户端设备100所提交的SQL语句后,SQL语句处理装置200对所接收的SQL语句进行语法解析。在语法解析结果指示该SQL是常规SQL语句后,SQL语句处理装置200向SQL数据库400发起SQL查询操作。在语法解析结果指示该SQL是扩展SQL语句后,SQL语句处理装置200基于该SQL语句所包含的计算要素信息生成目标计算框架300可识别的计算服务描述语句,然后将所生成的计算服务描述语句提交给目标计算框架300。在本公开中,SQL语句处理装置200支持根据交互式命令行语句进行操作,并且能够向客户端设备100实时返回SQL语句处理的状态信息。在本公开中,SQL语句处理装置200也可以称为SQLFLow。关于SQL语句处理装置的操作和结构将在下面参照附图详细描述。
在接收到计算服务描述语句后,目标计算框架300可以基于计算服务描述语句,调用所述结构化查询语言语句所查询的数据来进行目标计算。在完成目标计算后,目标计算框架300将计算结果存储在SQL数据库中,比如,将计算结果存储在计算服务描述语句所指定的SQL数据库地址中。
SQL数据库400被配置为数据存储引擎,用于存储待查询的数据。在本公开中,SQL数据库可以包括MySQL,SQLite,Hive,ODPS和SparkSQL等。
图2示出了根据本公开的实施例的用于基于结构化查询语言语句实现计算服务的方法的流程图。
如图2所示,在块S201,用户在客户端设备100上编写好SQL语句后,将所编写的SQL语句发送给SQL语句处理装置200。客户端设备100和SQL语句处理装置200之间是采用流式RPC消息的方式进行消息交互的。所发送的SQL语句可以是常规SQL语句,也可以是具有扩展语法标识的SQL语句,即,扩展SQL语句。这里,SQL语句语法扩展规则是预先规定的,并且客户端设备100和SQL语句处理装置200事先都已经获知。
图3A示出了根据本公开的实施例的常规SQL语句的一个示例的示意图。图3A中所示的SQL语句是常规SQL语句,该常规SQL语句指示“从iris.iris中查询具有目标属性的数据”,其中,在该SQL语句中,目标属性使用“*”表示。
图3B示出了根据本公开的实施例的具有扩展语法标识的SQL语句的一个示例的示意图。图3B中所示的SQL语句是扩展SQL语句。在扩展SQL语句中,包括用于指示针对所述结构化查询语言语句的目标计算服务。如图3B所示,该扩展SQL语句包括扩展语法标识“TRAIN”,该扩展语法标识指示目标计算服务是机器学习模型训练。此外,图3B中所示的SQL语句还包括所述目标计算服务所需的计算要素。在目标计算服务是机器学习模型训练时,所述计算要素可以包括机器学习模型名称、机器学习模型参数、机器学习模型特征、机器学习模型标签以及机器学习模型训练结果存储地址(即,机器学习计算结果存储地址)。
具体地,在图3B中所示的SQL语句中,机器学习模型名称为“DNNClassfier”,即,DNN分类器。机器学习模型参数为“n_classes=3,hidden_units=[10,20]”,即,分类类别为3类,隐藏层神经元的数目为[10,20]个。机器学习模型特征为“sepal_length,sepal_width,petal_length,petal_width”。机器学习模型标签为“class”。机器学习模型训练结果存储地址为“my_dnn_model”,例如,SQL数据库中的一个表格。这里要说明的是,图3B中示出的仅仅是示例。
图3C示出了根据本公开的实施例的具有扩展语法标识的SQL语句的另一示例的示意图。如图3C所示,该扩展SQL语句包括扩展语法标识“PREDICT”,该扩展语法标识指示目标计算服务是机器学习模型预测。该扩展SQL语句还包括“iris.predict.class”和“USINGmy_dnn_model”。“iris.predict.class”用于指示预测目标,即,预测iris的类别。“USINGmy_dnn_model”用于指示所使用的模型存储地址,即,使用my_dnn_model中存储的模型信息。此外,如上参照图3B描述的计算要素被记录在所使用的模型存储地址所存储的信息中,即,“my_dnn_model”所存储的信息中。
在本公开中,除了“TRAIN”和“PREDICT”之外,扩展语法标识还可以包括“Cluster”。扩展语法标识“Cluster”用于指示进行集群计算,比如,第三方集群计算。此外,扩展语法标识还可以包括用于指示其它合适的计算服务的扩展语法标识。
回到图2,在从客户端设备100接收到SQL语句后,在块S202,SQL语句处理装置200对结构化查询语言语句进行语法解析,以确定该SQL语句中是否存在扩展语法标识。
在SQL语句中不存在扩展语法标识时,在块S203,向SQL数据库400发送SQL语句,并且在块S204,在SQL数据库400中进行SQL查询。SQL数据库400将所查询到的数据经由SQL语句处理装置200返回给客户端设备100,以在客户端设备100的显示界面上进行显示。
在SQL语句中存在扩展语法标识时,在块S205,对SQL语句进行语义验证。具体地,可以对SQL语句中的数据查询部分的合法性进行校验。例如,SQL语句处理装置200可以基于SQL语句中的数据查询要素,选取少量查询数据来向SQL数据库400发起数据查询。如果SQL数据库400能够返回查询结果,则认为语义验证通过。如果SQL数据库400不能返回查询结果,则认为语义验证失败。在语义验证失败时,在块S206,向客户端设备100返回错误提示,并且在块S207,将错误提示显示在客户端设备100的显示界面上,以通知给用户。
在语义验证通过后,在块S208,SQL语句处理装置200基于SQL语句生成具有第一语句格式的计算服务描述语句。这里,第一语句格式是目标计算服务框架可识别的语句格式。在本公开中,目标计算服务框架可以包括TensorFlow,Pytorch,Xgboost和AutoML等。所述目标计算服务框架可以例如由SQL语句中的用于唯一标识目标计算服务框架的计算要素来定义。例如,在目标计算服务是图3B中所示的机器学习模型训练时,目标计算服务框架可以由机器学习模型名称“DNNClassfier”来标识。这里,“DNNClassfier”例如用于标识目标计算服务框架是“TensorFlow”,由此,SQL语句处理装置200基于SQL语句生成具有TensorFlow可识别的语句格式的计算服务描述语句。此外,也可以在计算要素中设置单独的标识符来唯一地标识目标计算服务框架。
在本公开中,所述目标计算服务可以包括机器学习计算服务或者集群计算服务等。此外,所述机器学习计算服务包括机器学习模型训练或者机器学习模型预测。
在所述目标计算服务是集群计算的情况下,所述计算服务描述语句是用于执行集群计算的描述语句。例如,所述描述语句可以包括:计算任务描述、训练信息、所加载的数据和/或模型保存信息。在所述目标计算服务是机器学习计算服务的情况下,所述计算服务描述语句是机器学习程序代码。关于如何生成机器学习程序代码,将在下面参照图4进行详细描述。
图4示出了根据本公开的实施例的用于基于SQL语句生成计算服务描述语句的一个示例过程的流程图。该示例针对的是机器学习任务的情形。
如图4所示,首先,在块410,基于SQL语句中的数据查询要素,生成具有第一语句格式的数据查询程序代码。例如,在目标计算服务是机器学习模型训练时,如图3B中所示的SQL语句,可以基于图3B中的“Select*From iris.iris”来生成目标计算服务框架可识别的第一语句格式的数据查询程序代码,该数据查询程序代码可以被目标计算服务框架执行来从SQL数据库400中获取用于机器学习模型训练的数据。在目标计算服务是其它类型的机器学习任务时,可以生成相应格式的数据查询程序代码。
接着,在块420,基于SQL语句中的计算服务要素,生成具有第一语句格式的机器学习程序代码。
具体地,在机器学习任务的情况下,计算要素可以包括机器学习模型名称、机器学习模型参数、机器学习模型特征、机器学习模型标签以及机器学习计算结果存储地址。
相应地,基于SQL语句中的计算服务要素,生成具有第一语句格式的机器学习程序代码可以包括:调用与机器学习模型名称对应的机器学习程序代码模板;以及将机器学习模型训练参数、机器学习模型特征和机器学习模型标签提供给机器学习程序代码模板,以生成具有第一语句格式的机器学习程序代码。在机器学习任务是机器学习模型训练时,计算要素明确包含上述信息。在机器学习任务是机器学习预测的情况下,计算要素记录在所使用的模型存储地址的信息中。
回到图2,在生成计算服务描述语句后,在块S209,SQL语句处理装置200将所生成的计算服务描述语句提交给目标计算服务框架300。
在接收到计算服务描述语句后,在块S210,目标计算服务框架300调用SQL语句所查询的数据进行目标计算。例如,在扩展语法标识指示“机器学习模型训练”的情况下,目标计算服务框架300使用数据查询代码来从SQL数据库400中获取用于机器学习模型训练的数据,然后使用所获取的数据来基于机器学习程序代码进行机器学习模型训练。
然后,在块S211,在目标计算服务框架300完成目标计算后,目标计算服务框架300将目标计算结果存储在SQL数据库中的机器学习计算结果存储地址中,以供用户查询,由此实现根据本公开的计算服务。
如上参照图1到图4对根据本公开的用于基于SQL语句实现计算服务的方法进行描述。这里要说明的是,图2示出的仅仅是根据本公开的用于基于SQL语句实现计算服务的方法的一个实施例,在本公开的其它实施例中,还可以对图2中示出的用于基于SQL语句实现计算服务的方法进行修改。
例如,在本公开的另一实施例中,可以不包括图2中的块S201的操作。在这种情况下,SQL语句可以被预先已经获取并且存储在SQL语句处理装置200处。
此外,在本公开的另一实施例中,也可以不包括图2中的块S205的操作。在这种情况下,针对扩展SQL语句,认为扩展SQL语句不存在语义问题,从而无需进行语义验证。
在本公开中,通过对现有SQL语法进行扩展,使得扩展后的SQL语句中包含计算服务所需的计算要素信息,在接收到扩展后的SQL语句后,对扩展后的SQL语句进行解析并基于计算要素信息生成目标计算框架可识别的计算服务描述语句,由此在目标计算框架中基于所生成的计算服务描述语句来进行计算服务,从而无需用户具备目标计算框架所需程序编写能力。
在本公开中,通过对SQL语句进行语法解析以确定是否是扩展SQL语句,并且在是扩展SQL语句时执行相应的计算操作,以及在不是扩展SQL语句时,执行常规的SQL查询操作,从而使得不同诉求的用户能够在同一用户界面上进行操作。
此外,在本公开中,通过在基于SQL语句生成计算服务描述语句之前,对所接收的SQL语句进行语义查询,从而可以尽早发现扩展SQL语句的语义错误,从而避免了向机器学习代码生成部件提交无用的机器学习任务,由此节省系统资源。
如上参照图1到图4对根据本公开的实施例的用于基于SQL语句实现计算服务的方法进行了描述,下面将参照图5到图6描述根据本公开的实施例的用于基于SQL语句实现计算服务的装置。
图5示出了示出了根据本公开的实施例的用于基于SQL语句实现计算服务的装置(下文中称为SQL语句处理装置)200的方框图。如图5所示,SQL语句处理装置200包括语法解析单元210、计算服务描述语句生成单元220和描述语句提交单元230。
语法解析单元210被配置为对SQL语句进行语法解析,以确定SQL语句中是否存在扩展语法标识。所述扩展语法标识指示针对所述SQL语句的目标计算服务。在所述结构化查询语言语句中存在所述扩展语法标识时,所述结构化查询语句包括所述目标计算服务所需的计算要素。语法解析单元210的操作可以参考上面参照图2描述的块S202的操作。
计算服务描述语句生成单元220被配置为在SQL语句中存在扩展语法标识时,基于SQL语句生成具有第一语句格式的计算服务描述语句,所述第一语句格式是目标计算服务框架可识别的语句格式。计算服务描述语句生成单元220的操作可以参考上面参照图2描述的块S208的操作。
图6示出了示出了根据本公开的实施例的计算服务描述语句生成单元220的一个实现示例的方框图。图6中所示的示例是针对机器学习计算服务的示例。如图6所示,计算服务描述语句生成单元220包括数据查询代码生成模块221和机器学习代码生成模块223。
数据查询代码生成模块221被配置为基于SQL语句中的数据查询要素,生成具有第一语句格式的数据查询程序代码。数据查询代码生成模块221的操作可以参考上面参照图4描述的块S410的操作。
机器学习代码生成模块223被配置为基于SQL语句中的计算服务要素,生成具有第一语句格式的机器学习程序代码。具体地,在目标计算服务包括机器学习计算服务时,所述计算要素包括机器学习模型名称、机器学习模型参数、机器学习模型特征、机器学习模型标签以及机器学习计算结果存储地址。相应地,机器学习代码生成模块被配置为:调用与所述机器学习模型名称对应的机器学习程序代码模板;以及将所述机器学习模型训练参数、机器学习模型特征和机器学习模型标签提供给所述机器学习程序代码模板,以生成具有所述第一语句格式的机器学习程序代码。机器学习代码生成模块223的操作可以参考上面参照图4描述的块S420的操作。
回到图5,描述语句提交单元,230被配置为将所生成的计算服务描述语句提交给目标计算服务框架300,以在目标计算服务框架300中,基于所述计算服务描述语言来调用SQL语句所查询的数据进行目标计算。
此外,在本公开的另一示例中,SQL语句处理装置200还可以包括语义验证单元(未示出)。语义验证单元被配置为在基于SQL语句生成具有第一语句格式的计算服务描述语句之前,对SQL语句进行语义验证。并且在SQL语句语义验证通过后,计算服务描述语句生成单元220才执行操作。
此外,在本公开的另一示例中,SQL语句处理装置200还可以包括语句获取单元(未示出)。所述语句获取单元被配置为获取经由客户端输入的结构化查询语言语句。
如上参照图1到图6,对根据本公开的用于基于SQL语句实现计算服务的方法及装置的实施例进行了描述。上面的SQL语句处理装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
图7示出了根据本公开的实施例的用于基于SQL语句实现计算服务的计算设备700的方框图。如图7所示,计算设备700可以包括至少一个处理器710、存储器720、内存730和通信接口740,并且至少一个处理器710、存储器720、内存730和通信接口740经由总线760连接在一起。至少一个处理器710执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器710:对SQL语句进行语法解析,以确定SQL语句中是否存在扩展语法标识,所述扩展语法标识指示针对SQL语句的目标计算服务;在SQL语句中存在扩展语法标识时,基于SQL语句生成具有第一语句格式的计算服务描述语句,所述第一语句格式是目标计算服务框架可识别的语句格式;以及将所生成的计算服务描述语句提交给所述目标计算服务框架,以在所述目标计算服务框架中,基于所述计算服务描述语句来调用SQL语句所查询的数据进行目标计算,其中,在SQL语句中存在所述扩展语法标识时,SQL语句包括所述目标计算服务所需的计算要素。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器710进行本公开的各个实施例中以上结合图1-6描述的各种操作和功能。
在本公开中,计算设备700可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-6描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据一个实施例,提供了一种比如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-6描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。