CN110162408A - 一种数据处理方法、装置、设备和机器可读介质 - Google Patents

一种数据处理方法、装置、设备和机器可读介质 Download PDF

Info

Publication number
CN110162408A
CN110162408A CN201810141945.3A CN201810141945A CN110162408A CN 110162408 A CN110162408 A CN 110162408A CN 201810141945 A CN201810141945 A CN 201810141945A CN 110162408 A CN110162408 A CN 110162408A
Authority
CN
China
Prior art keywords
application programming
programming interface
database table
interface
table structure
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
Application number
CN201810141945.3A
Other languages
English (en)
Other versions
CN110162408B (zh
Inventor
饶亮
刘绪宁
满远斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810141945.3A priority Critical patent/CN110162408B/zh
Publication of CN110162408A publication Critical patent/CN110162408A/zh
Application granted granted Critical
Publication of CN110162408B publication Critical patent/CN110162408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据处理方法、装置、设备和机器可读介质,所述的方法包括:采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。本申请实施例可以降低调用应用程序编程接口的开发门槛;并且,由于结构化查询语言具有较为固定的格式,因此可以提升调用应用程序编程接口的开发效率。

Description

一种数据处理方法、装置、设备和机器可读介质
技术领域
本申请涉及通信技术领域,特别是涉及一种数据处理方法、一种数据处理装置、一种设备和一种机器可读介质。
背景技术
目前,API(应用编程接口,Application Programming Interface)经济大规模兴起,由此衍生出了大量的API提供者把自己的API向公众开放。其中,API可以提供一组功能,通过调用该API可以实现该API提供的功能,例如,可以通过调用API获取例如天气数据、新闻数据、地图数据的数据。
传统技术中,API的调用通常是通过编写代码的方式实现的,具体地,用户可以利用例如C语言、JAVA语言的编程语言,编写API的调用所对应的代码。
然而,传统技术通常需要用户精通编程语言和程序调试技巧,不仅提高了开发门槛。而且代码重用率低,导致开发效率较低。
发明内容
本申请实施例所要解决的技术问题是提供一种数据处理方法,可以降低调用API的开发门槛;并且,由于SQL语句具有较为固定的格式,因此可以提升调用API的开发效率。
相应的,本申请实施例还提供了一种数据处理装置、一种设备、一种机器可读介质和一种操作系统,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种数据处理方法,包括:
采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;
依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
可选地,所述采用结构化查询语言调用应用程序编程接口,包括:
对结构化查询语言需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法包括:调用所述数据库表结构对应的应用程序编程接口,所述扫描接口的输出被绑定到所述应用程序编程接口对应的返回数据。
可选地,所述依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果,包括:
根据所述应用程序编程接口所对应返回数据的提取规则,从所述返回数据中提取所述结构化查询语言对应的执行结果。
可选地,所述提取规则包括:至少一个路径;
所述从所述返回数据中提取所述结构化查询语言对应的执行结果,包括:
若所述应用程序编程接口对应的调用成功,则依据第一路径,从所述返回数据中提取所述结构化查询语言对应的第一执行结果;或者
若所述应用程序编程接口对应的调用失败,则依据第二路径,从所述返回数据中提取所述结构化查询语言对应的第二执行结果。
可选地,通过如下步骤判断所述应用程序编程接口对应的调用是否成功:
将第三路径的数据内容与所述返回数据包括的数据内容进行匹配,若匹配成功,则所述应用程序编程接口对应的调用成功,若匹配失败,则所述应用程序编程接口对应的调用失败。
可选地,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
可选地,所述属性信息包括如下信息中的至少一种:
输出信息、输入信息、调用协议和返回数据的提取规则。
可选地,所述方法还包括:
从持久化存储空间中读取结构化查询语言语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
可选地,所述方法还包括:
对用户输入的结构化查询语言语句进行校验;
若校验通过,则采用所述结构化查询语言语句调用应用程序编程接口,或者,生成所述结构化查询语言语句对应的逻辑执行计划并进行持久化存储。
可选地,所述校验包括:语法校验和/或安全校验。
可选地,所述方法还包括:
确定与用户输入的结构化查询语言语句相关联的接口;
对所述接口进行发布。
另一方面,本申请实施例还公开了一种数据处理方法,包括:
确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;
依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
可选地,所述创建所述应用程序编程接口对应的数据库表结构,包括:
创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法包括:调用所述应用程序编程接口;
将所述扫描接口的输出绑定到所述应用程序编程接口对应的返回数据。
可选地,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
可选地,所述属性信息还包括:输入信息、调用协议和返回数据的提取规则中的至少一种。
另一方面,本申请实施例还公开了一种数据处理装置,包括:
调用模块,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;以及
执行结果确定模块,用于依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
可选地,所述调用模块包括:
扫描接口调用子模块,用于对结构化查询语言需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法包括:调用所述数据库表结构对应的应用程序编程接口,所述扫描接口的输出被绑定到所述应用程序编程接口对应的返回数据。
可选地,所述执行结果确定模块包括:
提取子模块,用于根据所述应用程序编程接口所对应返回数据的提取规则,从所述返回数据中提取所述结构化查询语言对应的执行结果。
可选地,所述提取规则包括:至少一个路径;
所述提取子模块包括:
第一提取单元,用于若所述应用程序编程接口对应的调用成功,则依据第一路径,从所述返回数据中提取所述结构化查询语言对应的第一执行结果;或者
第二提取单元,用于若所述应用程序编程接口对应的调用失败,则依据第二路径,从所述返回数据中提取所述结构化查询语言对应的第二执行结果。
可选地,所述装置还包括:
匹配模块,用于将第三路径的数据内容与所述返回数据包括的数据内容进行匹配,若匹配成功,则所述应用程序编程接口对应的调用成功,若匹配失败,则所述应用程序编程接口对应的调用失败。
可选地,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
可选地,所述装置还包括:
读取模块,用于从持久化存储空间中读取结构化查询语言语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
再一方面,本申请实施例还公开了一种数据处理装置,包括:
属性确定模块,用于确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;以及
创建模块,用于依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
可选地,所述创建模块包括:
创建子模块,用于创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法包括:调用所述应用程序编程接口;
绑定子模块,用于将所述扫描接口的输出绑定到所述应用程序编程接口对应的返回数据。
再一方面,本申请实施例还公开了一种设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行前述一个或多个所述的方法。
又一方面,本申请实施例公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行前述一个或多个所述的方法。
再一方面,本申请实施例还公开了一种用于设备的操作系统,包括:
调用单元,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;以及
执行结果确定单元,用于依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
又一方面,本申请实施例还公开了一种用于设备的操作系统,包括:
属性确定单元,用于确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;以及
创建单元,用于依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例将应用程序编程接口封装成可使用结构化查询语言查询的数据库表结构,支持用户通过结构化查询语言实现对于应用程序编程接口的调用、以及应用程序编程接口所对应返回数据的获取;由于结构化查询语言具备结构化的特点,故结构化查询语言对用户而言易懂、易学且易入门的特点,因此本申请实施例可以降低调用应用程序编程接口的开发门槛;并且,由于结构化查询语言具有较为固定的格式,因此可以提升调用应用程序编程接口的开发效率。
附图说明
图1是本申请的一种数据处理方法实施例的步骤流程图;
图2是本申请的一种数据处理方法实施例的步骤流程图;
图3是本申请的一种数据处理方法实施例的步骤流程图;
图4和图5分别是传统的API的使用流程和本申请实施例的API的使用流程的示意;
图6是本申请的一种数据处理装置实施例的结构框图;
图7是本申请的一种数据处理装置实施例的结构框图;
图8是本申请一实施例提供的设备的硬件结构示意图;
图9是本申请另一实施例提供的设备的硬件结构示意图;
图10是本申请一实施例提供的操作系统的示意图;
图11是本申请一实施例提供的操作系统的示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例提供了一种数据处理方案,该方案可以采用SQL(结构化查询语言,Structured Query Language)调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;并依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
本申请实施例中,SQL是数据库的接口语言,用户可以通过SQL实现对数据库中的数据的查询、插入、删除、更新等操作。数据库表结构是数据库的组成部分之一,故这些操作统可被称为对数据库表结构的操作。
本申请实施例中,API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
本申请实施例将API封装成可使用SQL查询的数据库表结构,支持用户通过SQL实现对于API的调用、以及对于API所对应返回数据(以下简称API数据)的获取;由于SQL具有结构化的特点,故SQL对用户而言易懂、易学且易入门的特点,因此本申请实施例可以降低调用API的开发门槛;并且,由于SQL具有较为固定的格式,例如,SQL语句的格式可以包括:select[字段名称]from[数据库表结构名称]、或者select[字段名称]from[数据库表结构名称]where[条件]等,因此可以提升调用API的开发效率。
本申请实施例中,API可以来源于第三方平台。本申请实施例对于第三方平台的具体类型不加以限制,第三方平台的例子可以包括:天气平台、新闻平台等,可以理解,本申请实施例对于具体的第三方平台不加以限制。
API数据可以指通过调用API得到的数据,具体的API数据取决于API所属的平台。例如,通过调用天气平台提供的API得到的API数据可以为天气数据,又如,通过调用新闻平台提供的API得到的API数据可以为新闻数据等等。可以理解,本申请实施例对于具体的API数据不加以限制。
参照图1,示出了本申请的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、确定API的属性信息;所述属性信息可以包括:标识和输出信息;
步骤102、依据所述API的属性信息,创建所述API对应的数据库表结构;其中,所述数据库表结构对应的标识可以与所述API的标识相匹配。
图1所示方法实施例可用于将API的属性信息封装成可用SQL查询的数据库表结构。其中,上述数据库表结构可以为二维数据库表,数据库表结构可以包括:字段和数据记录,字段可以指数据库表结构的列,数据记录可以指数据库表结构的行,一个数据记录包含这行中的所有信息,但数据记录在数据库表结构中通常没有专门的记录名,常常用它所在的行数表示这是第几个数据记录。
图1所示方法实施例可应用于支持数据库的设备,上述设备具体可以包括但不限于:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,MovingPicture Experts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。上述设备的角色可以为服务器、或者客户端。可以理解,本申请实施例对于具体的设备、以及设备的具体角色不加以限制。
步骤101可以响应于用户输入的API注册请求,确定API的属性信息。具体地,步骤101可以依据该API注册请求中携带的信息,确定API的属性信息。根据一种实施例,该API注册请求中可以直接携带API的属性信息;根据另一种实施例,该API注册请求中可以携带API的文档或者文档路径,则可以从API的文档中提取API的属性信息。可以理解,本申请实施例对于确定API的属性信息的具体过程不加以限制。
所述属性信息可以包括:标识和输出信息。其中,标识可用于唯一标识API,标识的例子可以为名称、代号等。输出信息可以包括:API所对应返回数据的示例(demo)。
步骤102中,所述数据库表结构对应的标识可以与所述API的标识相匹配,由此可以将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作。例如,数据库表结构对应的标识与API的标识相同;又如,数据库表结构对应的标识与API的标识相关等,此种情况下,可以建立数据库表结构对应的标识与API的标识之间的关联关系。
步骤102中,所述数据库表结构包括的字段可以为依据所述API的属性信息得到。例如,上述数据库表结构包括的第一字段可以为依据API的输出信息得到,具体地,可以将API的一种输出信息抽象为数据库表结构的一个字段,由此可以通过基于SQL的数据库表结构查询操作获得API所对应的返回数据。
在本申请的一种可选实施例中,所述属性信息还可以包括:输入信息、调用协议和返回数据的提取规则中的至少一种。
上述输入信息可以包括:API的调用参数列表、类型、描述、来源等信息,上述输入信息可用于确定API数据的调用条件。上述调用协议可以指API的调用方法,例如HTTP(超文本传输协议,HyperText Transfer Protocol)协议对应的GET(获取)方法或POST(传送)方法、或者本地RPC(远程过程调用,Remote Procedure Call)方法调用等。上述提取规则可以用于从返回数据中提取目标数据。可选地,上述提取规则可以包括:用于判断API的调用是否成功的字段、以及用于确定目标数据的提取逻辑的字段。
参照表1,示出了本申请实施例的一种API的属性信息的示例,其具体可以包括:API的名称、调用协议、输入信息、返回数据的示例、提取规则等属性信息。
表1中,输入信息可以包括:URI(统一资源标识符,Uniform ResourceIdentifier),URI是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。资源的例子可以包括:文档、图像、视频片段、程序等。Params(调用参数)可以包括:API的调用参数列表。
返回数据的示例和提取规则中,可以包括JSON(JS对象标记,JavaScript ObjectNotation)格式的数据。JSON是一种轻量级的数据交换格式,其基于ECMAScript(w3c制定的js规范)的一个子集,采用独立于编程语言的文本格式来存储和表示数据。JSON格式的数据可以包括:key-value(键值对),如{key:value,key1:value1,key2:value2.....}等。
表1
在本申请的一种可选实施例中,步骤102可以创建一个数据库表结构的实例,该数据库表结构的名称可以与API的名称相同,这样可以将对于该数据库表结构的查询操作绑定到该API,进而实现在查询该数据库表结构的情况下调用对应的API。
参照表2,示出了本申请实施例的一种数据库表结构的示例,表2所示数据库表结构包括的字段可以为依据表1所示的属性信息得到。
具体地,表2所示数据库表结构可以包括:第一字段,第一字段可以为依据API的输出信息得到,具体地,可以将API的一种输出信息抽象为数据库表结构的一个字段,由此可以通过基于SQL的数据库表结构查询操作获得API所对应的返回数据。第一字段可以包括:media_type、index_name、status、srv_id等,这些第一字段可以来源于表1的返回数据的示例中的“item.rdata”路径。
表2所示数据库表结构可以包括:第二字段,第二字段可以为依据API的输出信息得到,也可以为依据API的除了输出信息之外的属性信息得到。可选地,第二字段可用于表征API的调用状态信息,如调用成功、或者调用错误、或者具体的状态码等。表2中第二字段可以为sys.attribute,sys.attribute中“success”可以指成功标识,“message”可以指消息,“code”可以指状态码。可以理解,表2中sys.attribute只是作为第二字段的示例,本领域技术人员可以根据实际应用需求,确定所需的第二字段,本申请实施例对于具体的第二字段不加以限制。
表2
本申请实施例中,可以利用数据库管理系统,创建所述API对应的数据库表结构。数据库管理系统的例子可以包括:oracle、SQL Server、Access、DB2、FoxPro等。可选地,上述数据库管理系统可以为Calcite。Calcite是一个遵守apache(一种网页服务器)协议的开源系统,其提供了一个SQL查询的架构,实现了SQL的解析、SQL规则优化、SQL逻辑执行计划、物理执行计划的生成。可以理解,本领域技术人员可以根据实际应用需求,利用所需的数据库管理系统,任意的具有数据库管理功能的数据库管理系统,均在本申请实施例的数据库管理系统的保护范围之内,本申请实施例对于具体的数据库管理系统不加以限制。
在本申请的一种实施例中,可以采用SQL创建所述API对应的数据库表结构,相应的SQL语句的示例可以为:
CREATE TABLE数据库表结构名称(
字段名称类型(大小)DEFAULT'默认值',
字段名称类型(大小)DEFAULT'默认值',
字段名称类型(大小)DEFAULT'默认值',
......)
当然,上述SQL语句只是作为示例,本申请实施例对于用于创建所述API对应的数据库表结构的具体SQL语句、以及用于创建所述API对应的数据库表结构的具体语言不加以限制。
在本申请的一种可选实施例中,所述创建所述API对应的数据库表结构的过程,具体可以包括:创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法可以包括:调用所述API;将所述扫描接口的输出绑定到所述API对应的返回数据。
传统技术中,基于SQL的数据库表结构查询操作可用于扫描数据库表结构的数据结构,也即,数据库表结构的扫描接口可用于扫描数据库表结构的数据结构。而本申请实施例中,基于SQL的数据库表结构查询操作可用于获取API对应的返回数据,因此,本申请实施例对数据库表结构对应的扫描接口进行改进,使其方法中包括调用所述API,且将所述扫描接口的输出绑定到所述API对应的返回数据,以使该扫描接口输出API对应的返回数据。
在本申请的一种应用示例中,可以基于Calcite源码,创建API对应的数据库表结构ApiTable,并实现扫描接口:ScannableTable接口,在ScannableTable接口的scan(扫描)动作中,可以返回Enumerator(枚举)接口的实现,将Enumertor接口的实现绑定到API对应的返回结果。当然,上述将Enumertor接口的实现绑定到API对应的返回结果只是作为示例,实际上,可以直接将扫描接口的输出绑定到所述API对应的返回数据。
综上,本申请实施例的数据处理方法,依据API的属性信息,创建所述API对应的数据库表结构;其中,所述数据库表结构对应的标识可以与所述API的标识相匹配,由此可以将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作。并且,上述数据库表结构包括的字段可以为依据API的输出信息得到,具体地,可以将API的一种输出信息抽象为数据库表结构的一个字段,由此可以通过基于SQL的数据库表结构查询操作获得API所对应的返回数据。
参照图2,示出了本申请的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201、采用SQL调用API,以得到所述API对应的返回数据;其中,所述API对应有数据库表结构;
步骤202、依据所述API对应的返回数据,确定所述SQL对应的执行结果。
图2所示方法实施例可用于执行SQL,并输出对应的执行结果。具体地,SQL需要访问的数据库表结构可以具有相匹配的API,图2所示方法实施例可以将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作,通过该调用操作可以得到API对应的返回数据,该返回数据可以作为执行结果的数据源。
图1所示方法实施例可应用于支持SQL运行的设备,上述设备具体可以包括但不限于:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,MovingPicture Experts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。上述设备的角色可以为服务器、或者客户端。可以理解,本申请实施例对于具体的设备、以及设备的具体角色不加以限制。
步骤201中,SQL的形态可以包括:SQL语句、或者SQL语句对应的逻辑执行计划。
本申请实施例中,用户可以根据业务逻辑的需求,编写SQL语句,该SQL语句可用于表征业务逻辑。SQL对用户而言易懂、易学且易入门的特点,因此本申请实施例可以降低调用API的开发门槛;并且,由于SQL语句具有较为固定的格式,因此可以提升调用API的开发效率。
在本申请的一种可选实施例中,SQL语句的格式可以包括:select[字段名称]from[数据库表结构名称]、或者select[字段名称]from[数据库表结构名称]where[条件]等。可以理解,用户可以根据业务逻辑的需求,确定SQL语句中的字段名称、数据库表结构名称和条件。
在本申请的一种实施例中,可以提供SQL语句的编辑界面,该编辑界面显示的信息如下信息中的至少一种:API的属性信息、数据库表结构的信息(名称、字段名称等)、以及业务逻辑的相关信息(如业务逻辑需要获取的具体数据等)。该编辑界面显示的信息可以辅助用户进行SQL语句的编写,由此提高SQL语句的编写效率和编写准确率。
在本申请的一种实施例中,可以针对业务逻辑,编写一个或者多个SQL语句,一个业务逻辑对应的执行结果可以为最后一个SQL语句的执行结果。
在本申请的一种示例中,为了对表1所示的API进行调用,可以编写如下SQL语句:
select media_type,index_name
from api_test
where ownerId=123and busiKey=’bi_234’and count=6
其中,要查询的数据库表结构名称为api_test,要查询的字段名称包括:media_type、index_name,查询条件为:ownerId=123and busiKey=’bi_234’and count=6。数据库表结构名称可用于确定需要调用的API,字段名称可用于从返回数据中确定执行结果;查询条件可以作为API的调用参数,传入API数据的提供方,以使该提供方依据该调用参数提供相应的返回数据。
在本申请的另一种示例中,假设API对应的第三方平台为“今日头条”,API具体为HTTP接口:http://todayheadline?deviceId=xxxxxx&category=xxxx&latMaxTime=xxx,API所对应返回数据的格式为JSON格式,则API对应的SQL语句的例子可以为:
上述SQL语句中,FROM部分可用于表示API数据的数据源;其中,cosmo.today_headline可用于表示需要查询的数据库表结构,cosmo表示域或者数据库,today_headline可用于表示数据库表结构名称;'$deviceId$'、'$category$'和'$lastMaxTime$'可用于表示API的调用参数,其可以作为API的输入,用于获取返回数据。
上述SQL语句中,SELECT部分可以包括:数据库表结构的字段信息,其中,'今日头条服务'可以为常量,data_id、sys.convert(title)、以及'#deviceId#'可以为变量。
上述SQL语句中,WHERE部分可以用于表示API数据的查询条件,该查询条件可以作为API的调用参数,传入API数据的提供方,以使该提供方依据该调用参数提供相应的返回数据。
本申请实施例可以支持用户通过SQL编写业务逻辑,因此可以降低调用API的开发门槛;并且,由于SQL语句具有较为固定的格式,因此可以提升调用API的开发效率。在实际应用中,一个业务平台可以通过调用第三方平台提供的API,得到API对应的返回数据,并将该返回数据应用于业务逻辑过程。其中,可以通过SQL表征业务逻辑,并将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作,由此可以实现业务逻辑。
在本申请的一种可选实施例中,本申请实施例的方法还可以包括:确定与用户输入的SQL语句相关联的接口;对所述接口进行发布。上述接口的发布可以实现SQL所对应业务逻辑的共享,也即发布的接口可以供其他用户使用。在实际应用中,可以将上述SQL语句映射到已经存在的接口上,或者创建一个新的与该SQL语句相关联的接口。
在本申请的一种可选实施例中,本申请实施例的方法还可以包括:对用户输入的SQL语句进行校验。上述校验可以包括:语法校验和/或安全校验。其中,语法校验可用于校验SQL语句的语法准确性,如校验SQL语句需要访问的数据库表结构是否存在等,安全校验可用于校验SQL语句的安全性,例如,用于校验SQL语句中是否包含敏感词、敏感代码等预设字符串,用于校验SQL语句是否涉及非法的API调用等非法操作等。上述校验可以降低SQL语句在运行过程中的出错率。
可以理解,本领域技术人员可以根据实际应用需求,确定所需的校验规则,并将校验规则应用于上述校验。在本申请的一种实施例中,可以针对SQL语句生成SQL语法树,并在遍历上述SQL语法树中的过程中,判断SQL语法树的SQL单元是否符合校验规则。
在本申请的一种可选实施例中,若校验通过,则可以确定与用户输入的SQL语句相关联的接口,并对所述接口进行发布。
在本申请的另一种可选实施例中,若校验通过,可以采用所述结构化查询语言语句调用应用程序编程接口,也即,可以将SQL语句作为步骤201的输入。
在本申请的再一种可选实施例中,若校验通过,则可以生成所述SQL语句对应的逻辑执行计划并进行持久化存储。
在本申请的又一种可选实施例中,所述方法还可以包括:从持久化存储空间中读取SQL语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
本申请实施例可以预先保存SQL语句对应的逻辑执行计划。逻辑执行计划可用于表示SQL语句在数据库中的执行过程或访问路径的描述,也即对一个查询任务,做出一份怎样去完成查询任务的详细方案。一个逻辑执行计划可由若干操作组成,上述操作可以包括但不限于:遍历数据库表结构、利用索引、执行一个嵌套循环或Hash(哈希)连接等等。可以理解,本申请实施例对于具体的逻辑执行计划不加以限制。
该逻辑执行计划可用于表示SQL对应的运行中间结果,该逻辑执行计划可以为逻辑表达式等,在需要执行SQL语句所对应业务逻辑的过程中,可以执行该逻辑执行计划,由此可以降低SQL的运行时耗时,由此可以提高业务逻辑的实现效率。由于逻辑执行计划的生成环节为SQL语句的运行过程中耗时比较长的环节,本申请实施例将生成的逻辑执行计划预先保存到持久化存储,可以减少SQL的运行时耗时,由此可以提高SQL的执行效率,且可以提高API数据的获取效率。在提高API数据的获取效率的基础上,本申请实施例可适用于对实时性要求较高的业务场景、或者业务逻辑较为复杂的业务场景。
在本申请的一种应用示例中,可以利用例如calcite的数据库管理系统生成多个逻辑执行计划,从多个逻辑执行计划中选出一个最优的逻辑执行计划,并将最优的逻辑执行计划进行持久化存储。
上述持久化存储可以将最优的逻辑执行计划保存到可永久保存的存储设备中(如磁盘)。具体地,可将最优的逻辑执行计划存储在数据库中,当然也可以存储在磁盘文件中、XML(可扩展标记语言,Extensible Markup Language)文件中等等。例如,可以将最优的逻辑执行计划存储至RelNode,RelNode为calcite的节点。在需要运行SQL所对应的业务逻辑的情况下,可以从持久化存储空间取出提前保存的RelNode,直接使用该RelNode生成对应的物理执行计划,并依据该物理执行计划找到数据库表结构查询操作。
上述从多个逻辑执行计划中选出一个最优的逻辑执行计划的过程可以包括:依据逻辑执行计划的代价,从多个逻辑执行计划中选出一个最优的逻辑执行计划。其中,上述代价可以包括:IO(输入输出,Input Output)代价和CPU代价中的至少一种。
在本申请的一种可选实施例中,所述步骤201采用SQL调用API的过程,可以包括:对所述SQL需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法可以包括:调用所述数据库表结构对应的API,所述扫描接口的输出被绑定到所述API对应的返回数据。本申请实施例对数据库表结构对应的扫描接口进行改进,使其方法中包括调用所述API,且将所述扫描接口的输出绑定到所述API对应的返回数据,以使该扫描接口输出API对应的返回数据。
步骤201采用SQL调用API的过程中,可以依据该SQL,确定API对应的调用参数,并向API对应的提供方传递该调用参数,以使该提供方提供相应的返回数据。
本申请实施例中,所述API对应的返回数据可以作为执行结果的数据源,也即,该返回数据中可以包括执行结果。
根据一种实施例,步骤202可以直接将API对应的返回数据,作为SQL对应的执行结果。
根据另一种实施例,步骤202依据所述API对应的返回数据,确定所述SQL对应的执行结果的过程,可以包括:依据该SQL涉及的字段,从所述返回数据中确定所述SQL对应的执行结果。具体地,可以从返回数据中提取与SQL语句所包括字段相匹配的数据,作为执行结果。例如,图2所示的数据库表结构中的字段包括:sys.attribute、media_type、index_name、status、srv_id,而SQL语句所包括的字段为:media_type,则可以从返回数据中提取与media_type相匹配的数据,作为执行结果。
根据再一种实施例,步骤202依据所述API对应的返回数据,确定所述SQL对应的执行结果的过程,可以包括:根据所述API所对应返回数据的提取规则,从所述返回数据中提取所述SQL对应的执行结果。在实际应用中,返回数据中可能包括用户不需要的数据,此种情况下,可以按照提取规则,从返回数据中提取用户所需的目标数据,作为执行结果。
在实际应用中,返回数据的格式通常为JSON格式,故可以按照JSON格式从所述返回数据中提取所述SQL对应的执行结果。
在本申请的一种可选实施例中,所述提取规则可以包括:至少一个路径;
所述从所述返回数据中提取所述SQL对应的执行结果的过程,具体可以包括:
若所述API对应的调用成功,则依据第一路径,从所述返回数据中提取所述SQL对应的第一执行结果;或者
若所述API对应的调用失败,则依据第二路径,从所述返回数据中提取所述SQL对应的第二执行结果。
第一路径可用于从返回数据中提取目标数据,作为SQL对应的第一执行结果。具体地,可以依据提取规则中指定的第一路径,从返回数据中提取目标数据。以表2所示的提取规则为例,可以按照“data”指定的路径“path”(item.rdata),从返回数据的“item.rdata”中提取目标数据。可选地,还可以按照提取规则中指定的数据类型,将提取的目标数据转换为与该数据类型相匹配的数据。以表2所示的提取规则为例,其“data”指定的数据类型“type”为“List”,故可以将提取的目标数据转换为“List”类型。
第二路径可用于从返回数据中提取错误信息,作为SQL对应的第二执行结果。具体地,可以依据提取规则中指定的第二路径,从返回数据中提取错误信息。以表2所示的提取规则为例,提取规则中“msg”的“code”对象中包括多个key-value对,key表示返回数据的JSON路径,value表示该JSON路径的值的描述信息。在实际应用中,可以从返回数据中获取以“code”为key的value值,并返回该value值的描述信息,例如,value值“200”对应的描述信息可以为“success”,又如,value值“404”对应的描述信息可以为“not found”等。可选地,上述错误信息可以作为第二字段(如sys.attribute字段)对应的查询结果。
可选地,可以通过如下步骤判断所述API对应的调用是否成功:将第三路径的数据内容与所述返回数据包括的数据内容进行匹配,若匹配成功,则所述API对应的调用成功,若匹配失败,则所述API对应的调用失败。
第三路径可用于约束调用成功的条件或者调用成功的规则,如表2的提取规则中的“success”列表可以包括调用成功的规则。将“success”列表中的一个key-value对(key为对应API返回数据中的JSON路径,value为该JSON路径的值),与返回数据中的JSON数据进行匹配。若返回数据中的JSON数据与“success”列表中的任一key-value对匹配成功,则可以说明API对应的调用成功。反之,若不存在与“success”列表中的任一key-value对相匹配的JSON数据,则可以说明API对应的调用失败。
可以理解,上述根据所述API所对应返回数据的提取规则,从所述返回数据中提取所述SQL对应的执行结果的过程只是作为可选实施例,实际上,本领域技术人员可以根据实际应用需求,将提取规则应用于执行结果的提取,本申请实施例对于具体的提取过程不加以限制。
在实际应用中,可以将步骤202得到的执行结果输出给其他设备如客户端,也可以在屏幕上输出执行结果。
综上,本申请实施例将API封装成可使用SQL查询的数据库表结构,并支持用户通过SQL进行业务逻辑的开发,这样,在SQL的执行过程中,可以将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作;可以简化业务逻辑的开发流程,且可以降低业务逻辑的开发门槛。
并且,本申请实施例对用户输入的SQL语句进行校验。上述校验可以包括:语法校验和/或安全校验,上述校验可以降低SQL语句在运行过程中的出错率。
另外,本申请实施例将生成的逻辑执行计划预先保存到持久化存储,由于逻辑执行计划的生成环节为SQL语句的运行过程中耗时比较长的环节,故可以减少SQL的运行时耗时,由此可以提高SQL的执行效率,且可以提高API数据的获取效率。在提高API数据的获取效率的基础上,本申请实施例可适用于对实时性要求较高的业务场景、或者业务逻辑较为复杂的业务场景。
再者,本申请实施例的SQL语句可以应用于业务场景中已有接口的业务编排,也可被发布为独立的接口供其他用户使用。
参照图3,示出了本申请的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤301、依据API的属性信息,创建所述API对应的数据库表结构;
步骤301可用于将API封装成可使用SQL查询的数据库表结构。其中,所述数据库表结构对应的标识可以与所述API的标识相匹配
步骤302、接收用户输入的SQL语句;
在本申请的一种实施例中,可以提供SQL语句的编辑界面,该编辑界面显示的信息如下信息中的至少一种:API的属性信息、数据库表结构的信息(名称、字段名称等)、以及业务逻辑的相关信息(如业务逻辑需要获取的具体数据等)。该编辑界面显示的信息可以辅助用户进行SQL语句的编写,由此提高SQL语句的编写效率和编写准确率。
步骤303、对所述SQL语句进行校验;
步骤304、若校验通过,则生成所述SQL语句对应的逻辑执行计划并进行持久化存储;
可以理解,若校验不通过,则可以向用户输出相应的提示信息,以使用户对SQL语句进行修改,以使修改后的SQL语句通过校验。
步骤305、从持久化存储空间中读取SQL语句对应的逻辑执行计划,并对所述逻辑执行计划对应的API进行调用,以得到所述API对应的返回数据;
步骤306、依据所述API对应的返回数据,确定所述逻辑执行计划对应的执行结果。
在需要运行SQL语句对应的业务逻辑时,可以取出逻辑执行计划,并执行。
需要说明的是,本申请实施例对于步骤301和步骤302的执行顺序不加以限制,二者可以先后执行、并列执行或者后先执行等。由于步骤303对所述SQL语句进行校验和执行的过程中,可以判断SQL语句需要访问的数据库表结构是否存在等,因此步骤303和步骤305可以用到步骤301创建的数据库表结构,可以理解,本申请实施例对于步骤301与步骤303的执行顺序不加以限制。
参照图4和图5,分别示出了传统的API的使用流程和本申请实施例的API的使用流程。
图4中,用户可以利用JAVA/C等编程语言,开发API的调用代码,该调用代码可以通过HTTP/RPC等调用协议,调用第三方平台提供的API;接收第三方平台返回的格式化数据(如JSON格式、Text(文本)格式等),并通过编程语言对格式化数据进行解析,以从格式化数据中提取所需的数据。
图5中,用户可以利用SQL编写SQL语句,在执行对象执行SQL语句或者SQL语句对应逻辑执行计划的过程中,可以将基于SQL的数据库表结构查询操作转换为对于数据库表结构所对应API的调用操作,该调用操作可以通过HTTP/RPC等调用协议,调用第三方平台提供的API;该执行对象接收第三方平台返回的格式化数据(如JSON格式、Text(文本)格式等),并依据该格式化数据得到SQL语句或者SQL语句对应逻辑执行计划的执行结果。
该执行对象可用于接收输入的SQL语句或者SQL语句对应逻辑执行计划,并输出对应的执行结果。对象可以为操作系统中的进程、线程、或者服务(service)等。其中,服务为操作系统(例如安卓)的组件,其用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务,甚至可以在程序退出的情况下,让服务在后台继续保持运行状态。执行对象的例子可以包括:前述的数据库管理系统对应的进程、线程、服务等。
传统的API的使用流程需要用户利用JAVA/C等编程语言,开发API的调用代码、以及格式化数据的解析代码,通常需要用户精通编程语言和程序调试技巧,不仅提高了开发门槛。而且代码重用率低,导致开发效率较低。
而本申请实施例中,用户可以根据业务逻辑的需求,编写SQL语句,该SQL语句可用于表征业务逻辑。SQL对用户而言易懂、易学且易入门的特点,因此本申请实施例可以降低调用API的开发门槛;并且,由于SQL具有较为固定的格式,因此可以提升调用API的开发效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请实施例还提供了一种数据处理装置。
参照图6,示出了本申请的一种数据处理装置实施例的结构框图,具体可以包括如下模块:
调用模块601,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;以及
执行结果确定模块602,用于依据所述API对应的返回数据,确定所述SQL对应的执行结果。
可选地,所述调用模块601可以包括:
扫描接口调用子模块,用于对所述SQL需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法可以包括:调用所述数据库表结构对应的API,所述扫描接口的输出被绑定到所述API对应的返回数据。
可选地,所述执行结果确定模块602可以包括:
提取子模块,用于根据所述API所对应返回数据的提取规则,从所述返回数据中提取所述SQL对应的执行结果。
可选地,所述提取规则可以包括:至少一个路径;
所述提取子模块可以包括:
第一提取单元,用于若所述API对应的调用成功,则依据第一路径,从所述返回数据中提取所述SQL对应的第一执行结果;或者
第二提取单元,用于若所述API对应的调用失败,则依据第二路径,从所述返回数据中提取所述SQL对应的第二执行结果。
可选地,所述装置还可以包括:
匹配模块,用于将第三路径的数据内容与所述返回数据可以包括的数据内容进行匹配,若匹配成功,则所述API对应的调用成功,若匹配失败,则所述API对应的调用失败。
可选地,所述数据库表结构包括的字段为依据所述API的属性信息得到。
可选地,所述属性信息可以包括如下信息中的至少一种:
输出信息、输入信息、调用协议和返回数据的提取规则。
可选地,所述装置还可以包括:
读取模块,用于从持久化存储空间中读取SQL语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
可选地,所述装置还可以包括:
校验模块,用于对用户输入的SQL语句进行校验;
处理模块,用于若校验通过,则触发所述调用模块601采用所述SQL语句调用应用程序编程接口,或者,生成所述SQL语句对应的逻辑执行计划并进行持久化存储。
可选地,所述校验可以包括:语法校验和/或安全校验。
可选地,所述装置还可以包括:
接口确定模块,用于确定与用户输入的SQL语句相关联的接口;
接口发布模块,用于对所述接口进行发布。
参照图7,示出了本申请的一种数据处理装置实施例的结构框图,具体可以包括如下模块:
属性确定模块701,用于确定API的属性信息;所述属性信息可以包括:标识和输出信息;以及
创建模块702,用于依据所述API的属性信息,创建所述API对应的数据库表结构;其中,所述数据库表结构对应的标识与所述API的标识相匹配。
可选地,所述创建模块702可以包括:
创建子模块,用于创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法包括:调用所述API;
绑定子模块,用于将所述扫描接口的输出绑定到所述API对应的返回数据。
可选地,所述数据库表结构包括的字段可以为依据所述API的属性信息得到。
可选地,所述属性信息还可以包括:输入信息、调用协议和返回数据的提取规则中的至少一种。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种设备,该设备可以包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行图1至图6中一个或多个所述的方法。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
一个可选实施例中,包括:一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如服务器侧一个或多个所述的方法。
另一个可选实施例中,包括:一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如终端设备侧一个或多个所述的方法。
图8为本申请一实施例提供的设备的硬件结构示意图。该设备可包括服务器、终端设备等各种设备。如图8所示,该终端设备可以包括输入设备140、处理器141、输出设备142、存储器143和至少一个通信总线144。通信总线144用于实现元件之间的通信连接。存储器143可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器143中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器141例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器141通过有线或无线连接耦合到上述输入设备140和输出设备142。
可选的,上述输入设备140可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备142可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图9为本申请另一实施例提供的设备的硬件结构示意图。图9是对图8在实现过程中的一个具体的实施例。如图9所示,本实施例的设备可以包括处理器151以及存储器152。
处理器151执行存储器152所存放的计算机程序代码,实现上述实施例中图1至图6的数据处理方法。
存储器152被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器152可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器151设置在处理组件150中。该终端设备还可以包括:通信组件153,电源组件154,多媒体组件155,音频组件156,输入/输出接口157和/或传感器组件158。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件150通常控制终端设备的整体操作。处理组件150可以包括一个或多个处理器151来执行指令,以完成上述图1至图8所示方法的全部或部分步骤。此外,处理组件150可以包括一个或多个模块,便于处理组件150和其他组件之间的交互。例如,处理组件150可以包括多媒体模块,以方便多媒体组件155和处理组件150之间的交互。
电源组件154为终端设备的各种组件提供电力。电源组件154可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件155包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件156被配置为输出和/或输入音频信号。例如,音频组件156包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器152或经由通信组件153发送。在一些实施例中,音频组件156还包括一个扬声器,用于输出音频信号。
输入/输出接口157为处理组件150和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件158包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件158可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件158可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件158还可以包括摄像头等。
通信组件153被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务器建立通信。
由上可知,在图9实施例中所涉及的通信组件153、音频组件156以及输入/输出接口157、传感器组件158均可以作为图8实施例中的输入设备的实现方式。
本申请实施例还提供一种用于设备的操作系统,如图10所示,该设备的操作系统可以包括:调用单元1001和执行结果确定单元1002。
其中,调用单元1001,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;
执行结果确定单元1002,用于依据所述API对应的返回数据,确定所述SQL对应的执行结果。
本申请实施例还提供一种用于设备的操作系统,如图11所示,该设备的操作系统可以包括:属性确定单元1101和创建单元1102。
属性确定单元1101,用于确定API的属性信息;所述属性信息包括:标识和输出信息;
创建单元1102,用于依据所述API的属性信息,创建所述API对应的数据库表结构;其中,所述数据库表结构对应的标识与所述API的标识相匹配。
对于装置实施例、设备实施例和用于设备的操作系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据处理方法、一种数据处理装置、一种设备、一种机器可读介质介质、一种基于设备的操作系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (30)

1.一种数据处理方法,其特征在于,包括:
采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;
依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述采用结构化查询语言调用应用程序编程接口,包括:
对结构化查询语言需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法包括:调用所述数据库表结构对应的应用程序编程接口,所述扫描接口的输出被绑定到所述应用程序编程接口对应的返回数据。
3.根据权利要求1或2所述的方法,其特征在于,所述依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果,包括:
根据所述应用程序编程接口所对应返回数据的提取规则,从所述返回数据中提取所述结构化查询语言对应的执行结果。
4.根据权利要求3所述的方法,其特征在于,所述提取规则包括:至少一个路径;
所述从所述返回数据中提取所述结构化查询语言对应的执行结果,包括:
若所述应用程序编程接口对应的调用成功,则依据第一路径,从所述返回数据中提取所述结构化查询语言对应的第一执行结果;或者
若所述应用程序编程接口对应的调用失败,则依据第二路径,从所述返回数据中提取所述结构化查询语言对应的第二执行结果。
5.根据权利要求4所述的方法,其特征在于,通过如下步骤判断所述应用程序编程接口对应的调用是否成功:
将第三路径的数据内容与所述返回数据包括的数据内容进行匹配,若匹配成功,则所述应用程序编程接口对应的调用成功,若匹配失败,则所述应用程序编程接口对应的调用失败。
6.根据权利要求1或2所述的方法,其特征在于,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
7.根据权利要求6所述的方法,其特征在于,所述属性信息包括如下信息中的至少一种:
输出信息、输入信息、调用协议和返回数据的提取规则。
8.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
从持久化存储空间中读取结构化查询语言语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
9.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对用户输入的结构化查询语言语句进行校验;
若校验通过,则采用所述结构化查询语言语句调用应用程序编程接口,或者,生成所述结构化查询语言语句对应的逻辑执行计划并进行持久化存储。
10.根据权利要求9所述的方法,其特征在于,所述校验包括:语法校验和/或安全校验。
11.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定与用户输入的结构化查询语言语句相关联的接口;
对所述接口进行发布。
12.一种数据处理方法,其特征在于,包括:
确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;
依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
13.根据权利要求12所述的方法,其特征在于,所述创建所述应用程序编程接口对应的数据库表结构,包括:
创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法包括:调用所述应用程序编程接口;
将所述扫描接口的输出绑定到所述应用程序编程接口对应的返回数据。
14.根据权利要求12或13所述的方法,其特征在于,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
15.根据权利要求12或13所述的方法,其特征在于,所述属性信息还包括:输入信息、调用协议和返回数据的提取规则中的至少一种。
16.一种数据处理装置,其特征在于,包括:
调用模块,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;以及
执行结果确定模块,用于依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
17.根据权利要求16所述的装置,其特征在于,所述调用模块包括:
扫描接口调用子模块,用于对所述结构化查询语言需要访问的数据库表结构的扫描接口进行调用;所述扫描接口的方法包括:调用所述数据库表结构对应的应用程序编程接口,所述扫描接口的输出被绑定到所述应用程序编程接口对应的返回数据。
18.根据权利要求16或17所述的装置,其特征在于,所述执行结果确定模块包括:
提取子模块,用于根据所述应用程序编程接口所对应返回数据的提取规则,从所述返回数据中提取所述结构化查询语言对应的执行结果。
19.根据权利要求18所述的装置,其特征在于,所述提取规则包括:至少一个路径;
所述提取子模块包括:
第一提取单元,用于若所述应用程序编程接口对应的调用成功,则依据第一路径,从所述返回数据中提取所述结构化查询语言对应的第一执行结果;或者
第二提取单元,用于若所述应用程序编程接口对应的调用失败,则依据第二路径,从所述返回数据中提取所述结构化查询语言对应的第二执行结果。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
匹配模块,用于将第三路径的数据内容与所述返回数据包括的数据内容进行匹配,若匹配成功,则所述应用程序编程接口对应的调用成功,若匹配失败,则所述应用程序编程接口对应的调用失败。
21.根据权利要求16或17所述的装置,其特征在于,所述数据库表结构包括的字段为依据所述应用程序编程接口的属性信息得到。
22.根据权利要求16或17所述的装置,其特征在于,所述装置还包括:
读取模块,用于从持久化存储空间中读取结构化查询语言语句对应的逻辑执行计划,以采用所述逻辑执行计划调用应用程序编程接口。
23.一种数据处理装置,其特征在于,包括:
属性确定模块,用于确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;以及
创建模块,用于依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
24.根据权利要求12所述的装置,其特征在于,所述创建模块包括:
创建子模块,用于创建数据库表结构;所述数据库表结构对应有扫描接口,所述扫描接口的方法包括:调用所述应用程序编程接口;
绑定子模块,用于将所述扫描接口的输出绑定到所述应用程序编程接口对应的返回数据。
25.一种设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如权利要求1-11中一个或多个所述的方法。
26.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如权利要求1-11中一个或多个所述的方法。
27.一种用于设备的操作系统,其特征在于,包括:
调用单元,用于采用结构化查询语言调用应用程序编程接口,以得到所述应用程序编程接口对应的返回数据;其中,所述应用程序编程接口对应有数据库表结构;以及
执行结果确定单元,用于依据所述应用程序编程接口对应的返回数据,确定所述结构化查询语言对应的执行结果。
28.一种设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如权利要求12-15中一个或多个所述的方法。
29.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如权利要求12-15中一个或多个所述的方法。
30.一种用于设备的操作系统,其特征在于,包括:
属性确定单元,用于确定应用程序编程接口的属性信息;所述属性信息包括:标识和输出信息;以及
创建单元,用于依据所述应用程序编程接口的属性信息,创建所述应用程序编程接口对应的数据库表结构;其中,所述数据库表结构对应的标识与所述应用程序编程接口的标识相匹配。
CN201810141945.3A 2018-02-11 2018-02-11 一种数据处理方法、装置、设备和机器可读介质 Active CN110162408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810141945.3A CN110162408B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、设备和机器可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810141945.3A CN110162408B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、设备和机器可读介质

Publications (2)

Publication Number Publication Date
CN110162408A true CN110162408A (zh) 2019-08-23
CN110162408B CN110162408B (zh) 2023-09-05

Family

ID=67635037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810141945.3A Active CN110162408B (zh) 2018-02-11 2018-02-11 一种数据处理方法、装置、设备和机器可读介质

Country Status (1)

Country Link
CN (1) CN110162408B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711672A (zh) * 2020-06-03 2020-09-25 成都中科大旗软件股份有限公司 大数据共享方法及系统
CN111831718A (zh) * 2020-07-16 2020-10-27 北京思特奇信息技术股份有限公司 一种数据提取方法、装置及介质
CN112416964A (zh) * 2020-11-17 2021-02-26 深圳依时货拉拉科技有限公司 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质
CN112749146A (zh) * 2019-10-31 2021-05-04 北京新唐思创教育科技有限公司 数据处理方法、装置、功能组件及计算机存储介质
CN112799643A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 基于数据库映射动态接口的前端页面应用开发方法及装置
CN113761024A (zh) * 2021-08-27 2021-12-07 德邦证券股份有限公司 分布式sql的实时查询方法和系统
CN114077609A (zh) * 2022-01-19 2022-02-22 北京四维纵横数据技术有限公司 数据存储及检索方法,装置,计算机可读存储介质及电子设备
US11755620B1 (en) * 2020-04-09 2023-09-12 Amazon Technologies, Inc. Invoking supported non-relational database operations to provide results consistent with commands specified in a relational query language
CN117648212A (zh) * 2024-01-29 2024-03-05 深圳市飞泉云数据服务有限公司 基于rpc的数据库调用方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019589A1 (en) * 2002-07-25 2004-01-29 Basrur Rajesh G. Driver for mapping standard database queries and commands to markup language documents
US20130054630A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Pre-generation of structured query language (sql) from application programming interface (api) defined query systems
US9015730B1 (en) * 2013-12-17 2015-04-21 International Business Machines Corporation Natural language access to application programming interfaces
US20160239582A1 (en) * 2015-02-18 2016-08-18 Ab Initio Technology Llc Querying a data source on a network
CN106096446A (zh) * 2016-06-15 2016-11-09 北京工业大学 一种可信计算环境中密码服务接口的封装方法
CN107016011A (zh) * 2015-09-11 2017-08-04 谷歌公司 用于自然语言查询的联接路径的消岐

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019589A1 (en) * 2002-07-25 2004-01-29 Basrur Rajesh G. Driver for mapping standard database queries and commands to markup language documents
US20130054630A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Pre-generation of structured query language (sql) from application programming interface (api) defined query systems
US9015730B1 (en) * 2013-12-17 2015-04-21 International Business Machines Corporation Natural language access to application programming interfaces
US20160239582A1 (en) * 2015-02-18 2016-08-18 Ab Initio Technology Llc Querying a data source on a network
CN107016011A (zh) * 2015-09-11 2017-08-04 谷歌公司 用于自然语言查询的联接路径的消岐
CN106096446A (zh) * 2016-06-15 2016-11-09 北京工业大学 一种可信计算环境中密码服务接口的封装方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112749146A (zh) * 2019-10-31 2021-05-04 北京新唐思创教育科技有限公司 数据处理方法、装置、功能组件及计算机存储介质
CN112749146B (zh) * 2019-10-31 2022-04-08 北京新唐思创教育科技有限公司 数据处理方法、装置、功能组件及计算机存储介质
US11755620B1 (en) * 2020-04-09 2023-09-12 Amazon Technologies, Inc. Invoking supported non-relational database operations to provide results consistent with commands specified in a relational query language
CN111711672B (zh) * 2020-06-03 2023-05-16 成都中科大旗软件股份有限公司 大数据共享方法及系统
CN111711672A (zh) * 2020-06-03 2020-09-25 成都中科大旗软件股份有限公司 大数据共享方法及系统
CN111831718A (zh) * 2020-07-16 2020-10-27 北京思特奇信息技术股份有限公司 一种数据提取方法、装置及介质
CN112416964A (zh) * 2020-11-17 2021-02-26 深圳依时货拉拉科技有限公司 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质
CN112799643A (zh) * 2021-01-26 2021-05-14 中国工商银行股份有限公司 基于数据库映射动态接口的前端页面应用开发方法及装置
CN112799643B (zh) * 2021-01-26 2024-02-20 中国工商银行股份有限公司 基于数据库映射动态接口的前端页面应用开发方法及装置
CN113761024A (zh) * 2021-08-27 2021-12-07 德邦证券股份有限公司 分布式sql的实时查询方法和系统
CN113761024B (zh) * 2021-08-27 2023-12-08 德邦证券股份有限公司 分布式sql的实时查询方法和系统
CN114077609A (zh) * 2022-01-19 2022-02-22 北京四维纵横数据技术有限公司 数据存储及检索方法,装置,计算机可读存储介质及电子设备
CN117648212A (zh) * 2024-01-29 2024-03-05 深圳市飞泉云数据服务有限公司 基于rpc的数据库调用方法、装置、设备及存储介质
CN117648212B (zh) * 2024-01-29 2024-04-09 深圳市飞泉云数据服务有限公司 基于rpc的数据库调用方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110162408B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN110162408A (zh) 一种数据处理方法、装置、设备和机器可读介质
US7441188B1 (en) Web construction framework presentation tier
CN105630522B (zh) 一种Web应用的更新方法、装置和系统
CN103049271A (zh) 自动生成api接口的描述文档的方法和装置
CN109716331A (zh) 符合应用程序数据共享和决策服务平台模式的应用程序部署
CN107644286A (zh) 工作流处理方法及装置
WO2018045489A1 (zh) 一种数据采集方法、装置及系统
CN107943547A (zh) 多服务集成方法、装置、智能终端、服务器和操作系统
CN108399088A (zh) 页面展示方法、用户终端、页面服务器及样式配置服务器
US10705949B2 (en) Evaluation of library test suites using mutation testing
CN111414369B (zh) 一种数据处理方法、装置及设备
CN107016282A (zh) 一种信息处理方法及装置
CN107766307B (zh) 一种表单元素联动的方法和设备
CN109254709A (zh) 截屏处理方法、装置、设备和机器可读介质
CN103326930B (zh) 开放平台接口自动巡检方法和系统
CN110213105A (zh) 一种跨平台微应用创建方法
CN103885878A (zh) 一种生成浏览器测试脚本的方法及装置
CN114816377A (zh) 脚本获取方法及装置
CN106201859A (zh) 一种回归测试方法及系统
US10680901B2 (en) Configuration management in a multisystem environment
CN111679828B (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN115221033A (zh) 接口协议测试方法、装置、计算机可读介质及电子设备
CN113408254A (zh) 一种页面表单信息填写方法、装置、设备和可读介质
RU2677563C2 (ru) Способ, терминал и сервер для отображения информации
CN111916164B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40012703

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20201218

Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China

Applicant after: Zebra smart travel network (Hong Kong) Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant