CN114064690A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN114064690A CN114064690A CN202111360049.4A CN202111360049A CN114064690A CN 114064690 A CN114064690 A CN 114064690A CN 202111360049 A CN202111360049 A CN 202111360049A CN 114064690 A CN114064690 A CN 114064690A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- queried
- field
- condition
- 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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供数据处理方法及装置。该处理方法包括:获取终端设备发送的数据查询请求,该数据查询请求携带有待查询数据的统一资源定位系统URL标记;根据该URL标记,在预设的数据结构中确定该URL标记对应的目标信息,该目标信息包括待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用;根据该目标信息,构造结构化查询语句;然后执行该结构化查询语句,得到待查询数据;最后向终端设备返回待查询数据。本申请的方法可以避免数据请求过度冗余的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及数据处理方法及装置。
背景技术
随着信息技术的不断发展,数据呈爆炸式趋势增长,并产生了大量需要存储和查询的数据。在数据查询时,目前相关技术中,一般会用到表述性状态转移(representational state transfer,RESTful)风格的接口来实现。
RESTful是一种网络应用程序的设计风格和开发方式,由于其接口请求规范结构清晰、符合标准及易于理解且扩展方便的特点,RESTful应用程序接口(applicationprogramming interface,API)应用架构得到了广泛使用。
然而,随着应用的多场景和多终端服务的不断出现,基于RESTful接口在查询数据时,其本身的结构比较固定,一般情况下,输入和输出的代码设置固定,不易更改,也就是说,终端设备在调用RESTful接口进行数据查询时,有一套标准和规范的传输格式,即RESTful API要求终端设备以一种预定义的语法格式发送请求,服务器定义一个统一的响应接口,最终服务器给终端设备返回一个完整的数据模型。例如,在查询一个交易表格时,在设定好查询后输出表里的300个字段时,RESTful接口就会输出300个字段,尽管在查询的过程中,用户输入只查询其中的100个字段,但是RESTful接口还会输出300个字段。这种方式针对输入对应用户想要的结果而言,存在请求数据冗余的问题。
发明内容
本申请提供数据处理方法,用以解决数据请求过度冗余的问题。
第一方面,本申请提供一种数据处理方法,该方法包括:获取终端设备发送的数据查询请求,所述数据查询请求携带有待查询数据的统一资源定位系统URL标记;根据所述URL标记,在预设的数据结构中确定所述URL标记对应的目标信息,所述目标信息包括所述待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,所述API基本信息包括所述URL标记对应的接口信息和控制信息,所述查询逻辑的类型指示所述待查询数据对应的关键字的类型,所述查询的字段列表指示所述待查询数据的字段列表,所述查询的表或者引用指示所述待查询数据所在的表或者与所述待查询数据所在的表具有关联关系的表;根据所述目标信息,构造结构化查询语句;执行所述结构化查询语句,得到所述待查询数据;向所述终端设备返回所述待查询数据。
该方法中,服务器根据终端设备发送的数据请求中携带的URL标记,与预设的数据结构内容进行适配,得到待查询数据的目标信息,进一步的,根据该目标信息构造结构化查询语句,执行结构化查询语句后得到待查询数据,最终返回给终端设备,该方法可以避免数据请求过度冗余的问题。
结合第一方面,在一种可能的实现方式中,所述预设的数据结构包括本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
该实现方式中,描述了预设的数据结构的构成,预设的数据结构中存储的是本地数据库中所有数据的信息,这样才可以在预设的数据结构中查找与待查询数据相关的信息。
结合第一方面,在一种可能的实现方式中,所述结构化查询语句包括字段列表、字段列表前缀、查询来源列表、关联条件、逻辑条件、分组字段和条件和排序字段,所述查询来源列表为存储数据的物理表,所述关联条件为所述待查询数据所在的表和与所述待查询数据所在的表具有关联关系的表之间的关联关系,所述逻辑条件为对应的查询类的关键字拼接的条件,所述分组字段和条件为代表分组的字段和条件,所述排序字段为代表排序关系的字段。
该实现方式中,描述了结构化查询语句的构成,该语句包含了获取待查询数据所需要的信息,通过该结构化查询语句,可以准确得到待查询数据。
第二方面,本申请提供一种数据处理装置,该装置包括:获取模块,用于获取终端设备发送的数据查询请求,所述数据查询请求携带有待查询数据的统一资源定位系统URL标记;确定模块,用于根据所述URL标记,在预设的数据结构中确定所述URL标记对应的目标信息,所述目标信息包括所述待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,所述API基本信息包括所述URL标记对应的接口信息和控制信息,所述查询逻辑的类型指示所述待查询数据对应的关键字的类型,所述查询的字段列表指示所述待查询数据的字段列表,所述查询的表或者引用指示所述待查询数据所在的表或者与所述待查询数据所在的表具有关联关系的表;构造模块,用于根据所述目标信息,构造结构化查询语句;执行模块,用于执行所述结构化查询语句,得到所述待查询数据;返回模块,用于向所述终端设备返回所述待查询数据。
结合第二方面,在一种可能的实现方式中,所述预设的数据结构包括本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
结合第二方面,在一种可能的实现方式中,所述结构化查询语句包括字段列表、字段列表前缀、查询来源列表、关联条件、逻辑条件、分组字段和条件和排序字段,所述查询来源列表为存储数据的物理表,所述关联条件为所述待查询数据所在的表和与所述待查询数据所在的表具有关联关系的表之间的关联关系,所述逻辑条件为对应的查询类的关键字拼接的条件,所述分组字段和条件为代表分组的字段和条件,所述排序字段为代表排序关系的字段。
第三方面,本申请提供一种数据处理装置,包括:存储器和处理器;所述存储器用于存储程序指令;所述处理器用于调用所述存储器中的程序指令执行如第一方面或者其中任意一种可能的实现方式所述的方法。
第四方面,本申请提供一种服务器,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器用于存储程序指令;所述处理器用于调用所述存储器中的程序指令执行如第一方面或者其中任意一种可能的实现方式所述的方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面或者其中任意一种可能的实现方式所述的方法
第六方面,本申请提供一种计算机程序产品,所述计算机程序产品中包括计算机程序,所述计算机程序被处理器执行时实现如第一方面或者其中任意一种可能的实现方式所述的方法。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一个实施例提供的应用场景架构示意图;
图2为本申请一个实施例提供的数据处理方法的流程图;
图3为本申请一个实施例提供的灵活查询的示意图;
图4为本申请一个实施例提供的API集群构建的示意图;
图5为本申请一个实施例提供的服务器端处理数据的示意图;
图6为本申请一个实施例提供的基于GraphQL的处理数据的流程示意图;
图7为本申请一个实施例提供的数据处理装置的示意性框图;
图8为本申请另一个实施例提供的装置示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请具体的应用场景架构如图1所示,该场景架构包括终端设备101和服务器102。在数据查询的过程中,终端设备101发送一个数据查询请求至服务器102,服务器102接收到来自终端设备的数据查询请求后,根据该数据查询请求中的信息在服务器102的本地数据库中进行查找,得到该数据查询请求所请求查询的数据,最后服务器102将该数据返回至终端设备101,其中,服务器102的本地数据库中预存了大量数据。
随着信息技术的不断发展,数据呈爆炸式趋势增长,并产生了大量需要存储和查询的数据。在数据查询时,目前相关技术中,一般会用到RESTful风格的接口来实现。RESTful是一种网络应用程序的设计风格和开发方式,基于超文本传输协议(hyper texttransfer protocol,HTTP),适用于移动互联网厂商作为业务接口的场景,实现第三方调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。由于其接口请求规范结构清晰、符合标准及易于理解且扩展方便的特点,RESTful API应用架构得到了广泛使用。
然而,随着应用的多场景和多终端服务的不断出现,基于RESTful接口在查询数据时,由于RESTful有一套标准和规范的传输格式,即RESTful API要求终端设备以一种预定义的语法格式发送请求,服务器定义一个统一的响应接口,最终服务器给终端设备返回一个完整的数据模型,且RESTful可以供任何接入互联网的终端调用,各种平台,各种终端都可以用RESTful传输和交换数据,所以格式更加通用化。例如,在查询一个交易表格时,在设定好查询后输出表里的300个字段时,RESTful接口就会输出300个字段,尽管在查询的过程中,用户输入只查询其中的100个字段,但是RESTful接口还会输出300个字段。这种方式针对输入对应用户想要的结果而言,存在请求数据冗余的问题。
有鉴于此,本申请提供数据处理方法,旨在解决现有技术的如上技术问题。
本申请提供的数据处理方法基于服务于前端的后端(Backend for Frontend,BFF)架构,依赖于图表化查询语言(graph query language,GraphQL)标准来实现。BFF架构是在终端设备与服务器之间搭建用于进行服务器服务接口聚合、剪裁和格式适配等逻辑操作的中间层,可以看做是一个服务器端微服务的代理服务。GraphQL是由脸书(FaceBook)开源的旨在提供RESTful架构体系的替代方案,GraphQL自身具有的请求合并、数据筛选和响应格式自定义能力基本满足了BFF架构能力,因此,基于GraphQL可以快速实现和简化BFF架构。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一个实施例提供的数据处理方法的流程图。如图2所示,本申请实施例提供的方法包括S201、S202、S203、S204和S205。下面详细说明图2所示的方法中的各个步骤。
S201,获取终端设备发送的数据查询请求,该数据查询请求携带有待查询数据的统一资源定位系统(uniform resource locator,URL)标记。
该步骤中,终端设备向服务器发送一个数据查询请求,该数据查询请求中携带了待查询数据的URL标记,相应地,服务器通过网关接收该数据查询请求。
需要说明的是,终端设备可以是全球广域网(web)端、手机终端或其他API调用端。URL是因特网的万维网服务程序上用于指定信息位置的表示方法,因特网上的可用资源可以用简单字符串来表示,这些字符串则被称为URL。
S202,根据URL标记,在预设的数据结构中确定URL标记对应的目标信息。
其中,目标信息包括待查询数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,API基本信息包括URL标记对应的接口信息和控制信息,查询逻辑的类型指示待查询数据对应的关键字的类型,查询的字段列表指示所述待查询数据的字段列表,查询的表或者引用指示待查询数据所在的表或者与待查询数据所在的表具有关联关系的表。
该步骤中,服务器根据接收到的数据查询请求中携带的URL标记,在服务器中预设好的数据结构中适配信息,得到该URL标记对应的目标信息。
其中,预设的数据结构的构建基于GraphQL架构提供的一个可视化服务编排的平台进行构建,该平台可以显示出一些基础的业务人员能够理解的非技术性内容,例如需要查询哪个表格,业务人员通过该平台把查询需求维护进来,最终得到两个方面的内容:一是根据业务人员维护的内容生成查询逻辑配置,例如维护一张表中的复杂关系,需要查询这张表中的什么字段以及对应的复杂关系的配置;二是得出相应的服务配置,例如实际要部署的接口交互形式等。
可选地,构建预设的数据结构也相当于构建灵活查询引擎,灵活查询引擎基于GraphQL,其运行时通过图形模式组织数据,对服务接口的响应数据提供易于理解且完整的描述,为终端设备精准的获取数据提供了保障。灵活查询引擎包括数据筛选,精准获取,查询总是返回可预测的结果,避免数据冗余,另外还可以做到请求合并,数据组合,且在设计数据接口及数据组合的条件时可以规定,把相似场景的数据服务整合成一个,这样查询不仅能够获取资源属性,仍可沿着资源间引用进一步查询,可以通过一次数据请求就获取应用所需的所有数据。灵活查询引擎的主要设计为数据库的组织和结构(Schema)的信息自动生成和查询接口的格式相关联。
灵活查询引擎使用的是强类型语言,该强类型语言可以理解为是一种可配置化的强制性的语言类型,其内置的类型系统在终端设备与服务器之间数据模式约定、终端设备数据请求数据模式字段、类型校验及服务端响应数据模式类型校验具有重要作用。该语言基于字段及其类型定义数据模式,其强类型特性保证其对请求字段及响应类型进行校验,并提供清晰的辅助性错误信息。
图3为本申请实施例提供的灵活查询的示意图。灵活查询基于灵活查询引擎进行查询,灵活查询以API形式对外提供服务。如图3所示,来自不同渠道的查询请求通过网关接入到API引擎集群,不同渠道可以是来自web端、手机终端或API调用接口端;API引擎通过规则模块获取结构化查询逻辑和API流控、降级、熔断等参数信息,规则模块中的具体执行步骤分为规则读取、动态构建、API装载和规则装载,规则模块在执行过程中生成的数据存储在数据字典中,数据字典中包括表管理、模型管理和字典管理。
其中,API流控指的是对接入数据查询的流量的控制或者对接口访问数量的控制,主要是对并发数据的控制;数据查询时,如果调用服务器的数据出现调用失败,失败到一定次数或者一定比例后,服务器会熔断查询,做应急处理,例如禁止访问,降级处理等。动态构建指的是,根据查询请求中携带的待查询数据的相关参数和预设好的数据结构中的规则做一个动态构建,其中,待查询数据的相关参数如需要查询哪个客户,客户号是多少,查询的起止时间或条件等信息。
图3的灵活查询的示意图中还包括执行模块和RDS服务集群,在后面的步骤中进行详细介绍。
可选地,API引擎按照领域进行划分,可以分为普惠集群(信贷)、金融市场集群、资管集群等,集群以租户形式接入,租户是一种管理形式,集群支持横向扩展。查询引擎接入各领域的读库集群,各领域读库根据租户和库名的场景接入。
作为一种示例,API引擎集群的构建如图4所示,API引擎集群是从大数据服务平台(big data service platform,BDSP)获取数据,通过关系型数据库服务(relationaldatabase service,RDS)服务集群,将获取到的数据传输至API引擎集群,API引擎按照领域进行划分为普惠集群、金融市场集群和资管集群等,其中普惠集群里包括借据查询和合同查询等,金融市场集群中包括收益排序和历史损益等,资管集群包括研报分析等等,API引擎集群还支持横向扩展。
通过上述方式,最终得到一个通用的服务编排对应的数据结构,该数据结构包括服务器本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。其中,API基本信息指的是API在网关层面会涉及到的一些控制信息,例如根据API定义的领域信息,将查询请求路由到哪个节点;API请求路径,即URL对API服务进行唯一的标识,网关同时定义领域信息、限流、并发控制、鉴权等参数。另有参数结构对查询条件参数进行必输性、类型、默认值的控制。查询逻辑的类型指诸如一些关系型数据库语句的关键字等信息。字段列表指的是本地数据库中所有数据对应的字段列表。查询的表或者引用指的是本地数据库中所有数据对应的表以及与之具有关联关系的表,可以进行关联查询。
可选地,基于高效的数据查询系统(Druid)结构化查询语言(structured querylanguage,SQL)对此数据结构进行SQL的构造与解析,一个服务对应的SQL的抽象,将SQL的各个部分分为设计表中的各个字段,在服务进行调用的时候,会对SQL的抽象,即服务对应的记录,进行SQL的构造。另有参数结构对查询条件参数进行必输性、类型、默认值的控制。逻辑引用数据结构是动态拼接语句的核心,其中refid可以用作子查询,selectType是查询的类型,可以是from、union等类型,fields包含要查询的字段列表,fromRefs包含要查询的表或者引用,然后基于Druid SQL对此数据结构进行SQL的构造与解析,将服务的查询逻辑进行对应SQL的抽象。
其中,Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。
理解性地,数据结构中存储的本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用之间具有一定的关联关系,根据查询请求中的待查询数据的URL标记,可以适配出于待查询数据的目标信息,即API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
S203,根据目标信息,构造结构化查询语句。
该步骤中,根据上个步骤得到的待查询数据的目标信息,进行结构化查询语句SQL的构造,构造的过程分为构造字段列表、构造字段列表前缀、构造查询来源列表、构造关联条件、构造逻辑条件、构造分组字段和条件和构造排序字段,其中,字段列表为待查询数据对应的字段列表,字段列表前缀为待查询数据对应的字段列表前缀,查询来源列表为存储数据的物理表,关联条件为待查询数据所在的表和与待查询数据所在的表具有关联关系的表之间的关联关系,逻辑条件为对应的查询类的关键字拼接的条件,分组字段和条件为代表分组的字段和条件,排序字段为代表排序关系的字段。
可选地,查询引擎无需对不同查询开发不同执行查询的代码,进行了统一的抽象,在进行查询调用的时候,会统一从网关路由到具体服务的查询引擎,由引擎的执行器去查询对应服务,并对对应服务进行一个SQL的构造。
S204,执行结构化查询语句,得到待查询数据。
该步骤中,将构造好的SQL传给执行器(JdbcTemplate)查询返回统一的查询结果。
具体地,将构造好的结构化查询语句输入至图3中的执行模块,执行模块首先对该结构化查询语句进行语法解析,解析出要查询的数据对应的内容以及查询逻辑,再进行语法检查,没问题就将结构化执行信息和查询逻辑传递给执行器进行统一执行。数据字典中存储有用于执行、解释过程中所需要用到的表信息、字段信息和模型信息等。
服务在查询的时候,基于GraphQL语法自定义数据请求格式,可以满足数据的灵活查询,聚合查询。在查询的时候,不同服务背后的数据源可以是多样化的,查询引擎根据不同服务路由到对应的数据查询源。
可选地,接口层使用统一的访问语法,统一了对各种不同数据来源的访问。适配多种异构数据源,通过数据接口(DataFetcher)扩展对接各类异构数据源。支持的数据源包括:非关系型的数据库(not only SQL,NoSQL)、RDS和流数据,NoSQL包括非关系型参数(KVA)和搜索服务器(ElasticSearch);RDS包括关系型数据库系统(MySQL)和列式数据库管理系统(ClickHouse);流服务数据包括开源流处理平台(Kafka)和开源流处理框架(Flink),具体地,也可以参照图3中的服务集群,例如,RDS服务集群包括MySQL和ClickHouse,NoSQL服务集群包括KVA和ElasticSearch,流服务集群包括Kafka和Flink。
其中,Elasticsearch是一个搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。ClickHouse是一个真正的列式数据库管理系统,在ClickHouse中,数据始终是按列存储的,包括矢量(向量或列块)执行的过程;只要有可能,操作都是基于矢量进行分派的,而不是单个的值,它有利于降低实际的数据处理开销。Kafka是一个开源流处理平台,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。Flink是开源流处理框架,其核心是分布式流数据流引擎,Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序,此外,Flink的运行时本身也支持迭代算法的执行。
作为一种示例,服务器在接收到终端设备经过网关发送过来的数据查询请求后的操作如图5所示,首先,通过可视化服务平台维护进来的规则预先存储在服务器中,经过网关传输至服务器的数据查询请求先传输至API接口定义层,再到API逻辑的定义层,最后进行API逻辑信息分组,具体分为普惠集群、金融市场集群和资管集群等。这个过程是根据数据查询请求中携带的URL标记与预设的数据结构中的信息进行适配的过程,可以获取到网关控制信息,即需要把该查询请求发送至哪个执行节点等,然后将构造好的结构化查询语句传输至语法解释器,解析出具体的查询步骤,再到API执行层、API执行器中执行该语句,执行器在执行的过程中会对接各类异构数据源。例如,非关系型的数据库、RDS和和流数据,最终输出所查询的数据。
S205,向终端设备返回待查询数据。
该步骤中,将最终得到的待查询数据的信息原路返回至终端设备中。
作为一种示例,图6为本申请一个实施例提供的基于GraphQL的处理数据的流程示意图。如图6所示,来自手机终端、web端或API接口端的数据查询请求经过网关,传输至服务器,与服务器中预设的数据结构进行适配,也即进入查询模式和数据模式,利用数据查询请求中携带的URL标记与在数据结构中进行查询,得到待查询数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用以及接口信息,动态构建器根据适配得到的相关信息构建结构化查询语句,并发送至执行器进行执行,执行过程中会调用不同的数据接口,查找对应的数据源,进行数据的摄取,例如非关系型数据库、RDS和流数据等,最终将执行得到的待查询数据原路返回至手机终端、web端或API接口端。
本申请提供的数据处理方法,根据终端设备发送的数据请求中携带的URL标记,与预设的数据结构内容进行适配,得到待查询数据的目标信息,进一步的,根据该目标信息构造结构化查询语句,执行结构化查询语句后得到待查询数据,最终返回给终端设备,该方法可以避免数据请求过度冗余的问题,同时,该方法抽象出一种通用的数据结构,支持灵活查询,一次配置,可以支持多场景复用,降低资源消耗和成本,使得服务更加轻量自由化。
图7示出了本申请实施例提供的数据处理装置700,该装置700包括:获取模块701、确定模块702、构造模块703、执行模块704和返回模块705。
其中,获取模块701,用于获取终端设备发送的数据查询请求,该数据查询请求携带有待查询数据的URL标记;确定模块702,用于根据该URL标记,在预设的数据结构中确定该URL标记对应的目标信息,该目标信息包括待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,所述API基本信息包括URL标记对应的接口信息和控制信息,查询逻辑的类型指示待查询数据对应的关键字的类型,查询的字段列表指示待查询数据的字段列表,查询的表或者引用指示待查询数据所在的表或者与待查询数据所在的表具有关联关系的表;构造模块703,用于根据目标信息,构造结构化查询语句;执行模块704,用于执行结构化查询语句,得到待查询数据;返回模块705,用于向终端设备返回待查询数据。
作为一种示例,装置700可以用于执行图2所示的方法,例如,获取模块701用于执行S201,确定模块702用于执行S202,构造模块703用于执行S203、执行模块704用于执行S204和返回模块705用于执行S205。
在一种可能的实现方式中,预设的数据结构包括本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
在一种可能的实现方式中,结构化查询语句包括字段列表、字段列表前缀、查询来源列表、关联条件、逻辑条件、分组字段和条件和排序字段,查询来源列表为存储数据的物理表,关联条件为待查询数据所在的表和与待查询数据所在的表具有关联关系的表之间的关联关系,逻辑条件为对应的查询类的关键字拼接的条件,分组字段和条件为代表分组的字段和条件,排序字段为代表排序关系的字段。
图8为本申请另一个实施例提供的装置示意图。图8所示的装置可以用于执行前述任意一个实施例所述的方法。
如图8所示,本实施例的装置800包括:存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
存储器801可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802用于执行上述实施例中所示的方法的各个步骤。
处理器802可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例中所示的各个方法。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器802还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请装置包括的单元所需执行的功能。
通信接口803可以使用但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。
总线804可以包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
应理解,本申请实施例所示的装置800可以是电子设备,或者,也可以是配置于电子设备中的芯片。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取终端设备发送的数据查询请求,所述数据查询请求携带有待查询数据的统一资源定位系统URL标记;
根据所述URL标记,在预设的数据结构中确定所述URL标记对应的目标信息,所述目标信息包括所述待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,所述API基本信息包括所述URL标记对应的接口信息和控制信息,所述查询逻辑的类型指示所述待查询数据对应的关键字的类型,所述查询的字段列表指示所述待查询数据的字段列表,所述查询的表或者引用指示所述待查询数据所在的表或者与所述待查询数据所在的表具有关联关系的表;
根据所述目标信息,构造结构化查询语句;
执行所述结构化查询语句,得到所述待查询数据;
向所述终端设备返回所述待查询数据。
2.根据权利要求1所述的方法,其特征在于,所述预设的数据结构包括本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
3.根据权利要求1所述的方法,其特征在于,所述结构化查询语句包括字段列表、字段列表前缀、查询来源列表、关联条件、逻辑条件、分组字段和条件和排序字段,所述查询来源列表为存储数据的物理表,所述关联条件为所述待查询数据所在的表和与所述待查询数据所在的表具有关联关系的表之间的关联关系,所述逻辑条件为对应的查询类的关键字拼接的条件,所述分组字段和条件为代表分组的字段和条件,所述排序字段为代表排序关系的字段。
4.一种数据处理装置,其特征在于,包括:
获取模块,用于获取终端设备发送的数据查询请求,所述数据查询请求携带有待查询数据的统一资源定位系统URL标记;
确定模块,用于根据所述URL标记,在预设的数据结构中确定所述URL标记对应的目标信息,所述目标信息包括所述待查询数据的应用程序接口API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用,所述API基本信息包括所述URL标记对应的接口信息和控制信息,所述查询逻辑的类型指示所述待查询数据对应的关键字的类型,所述查询的字段列表指示所述待查询数据的字段列表,所述查询的表或者引用指示所述待查询数据所在的表或者与所述待查询数据所在的表具有关联关系的表;
构造模块,用于根据所述目标信息,构造结构化查询语句;
执行模块,用于执行所述结构化查询语句,得到所述待查询数据;
返回模块,用于向所述终端设备返回所述待查询数据。
5.根据权利要求4所述的装置,其特征在于,所述预设的数据结构包括本地数据库中所有数据的API基本信息、查询逻辑的类型、查询的字段列表和查询的表或者引用。
6.根据权利要求4所述的装置,其特征在于,所述结构化查询语句包括字段列表、字段列表前缀、查询来源列表、关联条件、逻辑条件、分组字段和条件和排序字段,所述查询来源列表为存储数据的物理表,所述关联条件为所述待查询数据所在的表和与所述待查询数据所在的表具有关联关系的表之间的关联关系,所述逻辑条件为对应的查询类的关键字拼接的条件,所述分组字段和条件为代表分组的字段和条件,所述排序字段为代表排序关系的字段。
7.一种数据处理装置,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至3中任一项所述的方法。
8.一种服务器,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至3中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至3中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111360049.4A CN114064690A (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111360049.4A CN114064690A (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064690A true CN114064690A (zh) | 2022-02-18 |
Family
ID=80273297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111360049.4A Pending CN114064690A (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064690A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372081A (zh) * | 2022-03-22 | 2022-04-19 | 广州思迈特软件有限公司 | 数据准备方法、装置和设备 |
CN114816403A (zh) * | 2022-04-19 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、设备及存储介质 |
CN114996539A (zh) * | 2022-07-29 | 2022-09-02 | 昆仑智汇数据科技(北京)有限公司 | 一种信息处理方法、装置及设备 |
CN115599983A (zh) * | 2022-12-09 | 2023-01-13 | 思创数码科技股份有限公司(Cn) | 数据查询方法、装置、可读存储介质及电子设备 |
CN116644103A (zh) * | 2023-05-17 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据排序方法和数据排序装置、计算机设备、存储介质 |
CN116756253A (zh) * | 2023-08-18 | 2023-09-15 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储、查询方法、装置、设备和介质 |
CN117370493A (zh) * | 2023-09-22 | 2024-01-09 | 中国司法大数据研究院有限公司 | 一种基于大语言模型的系统智能交互方法与装置 |
-
2021
- 2021-11-17 CN CN202111360049.4A patent/CN114064690A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372081A (zh) * | 2022-03-22 | 2022-04-19 | 广州思迈特软件有限公司 | 数据准备方法、装置和设备 |
CN114816403A (zh) * | 2022-04-19 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、设备及存储介质 |
CN114996539A (zh) * | 2022-07-29 | 2022-09-02 | 昆仑智汇数据科技(北京)有限公司 | 一种信息处理方法、装置及设备 |
CN115599983A (zh) * | 2022-12-09 | 2023-01-13 | 思创数码科技股份有限公司(Cn) | 数据查询方法、装置、可读存储介质及电子设备 |
CN116644103A (zh) * | 2023-05-17 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据排序方法和数据排序装置、计算机设备、存储介质 |
CN116644103B (zh) * | 2023-05-17 | 2023-11-24 | 本原数据(北京)信息技术有限公司 | 基于数据库的数据排序方法和装置、设备、存储介质 |
CN116756253A (zh) * | 2023-08-18 | 2023-09-15 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储、查询方法、装置、设备和介质 |
CN116756253B (zh) * | 2023-08-18 | 2023-10-27 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储、查询方法、装置、设备和介质 |
CN117370493A (zh) * | 2023-09-22 | 2024-01-09 | 中国司法大数据研究院有限公司 | 一种基于大语言模型的系统智能交互方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114064690A (zh) | 数据处理方法及装置 | |
US8140680B2 (en) | Machine-processable semantic description for resource management | |
KR102097881B1 (ko) | 단축 링크를 처리하는 방법 및 장치, 및 단축 링크 서버 | |
CN111198901B (zh) | 基于多数据源的统一数据服务开放方法及系统 | |
US9398069B2 (en) | Stateless microkernel web server architecture | |
CN109033406B (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN109033403B (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
US8745096B1 (en) | Techniques for aggregating data from multiple sources | |
US10262066B2 (en) | Crowd-sourced native application crawling | |
CN109101607B (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
US11263542B2 (en) | Technologies for auto discover and connect to a rest interface | |
US20170011128A1 (en) | Dynamic domain query and query translation | |
US11068402B2 (en) | Externalized configurations and caching solution | |
CN113760948A (zh) | 一种数据查询的方法及装置 | |
CN109086414B (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
KR20170112889A (ko) | 클라우드 서비스 호환성 검증 장치 및 그 방법 | |
CN113760961B (zh) | 数据查询方法和装置 | |
CN112905600A (zh) | 数据查询方法、装置和存储介质及电子设备 | |
US20170286523A1 (en) | Apparatus and method for verifying cloud service compatibility | |
US9971849B2 (en) | Method and system for retrieving legal data for user interface form generation by merging syntactic and semantic contraints | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
US20160188716A1 (en) | Crowd-Sourced Crawling | |
CN113271334B (zh) | 基于SaaS场景下的业务策略分发方法、装置及电子设备 | |
CN115017185A (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 |